如何使用Python获取Tableau工作簿的最后提取时间
获取Tableau工作簿自身的最后提取刷新时间
要获取工作簿本身的最后提取刷新时间(而非关联数据源的),可以通过以下几种方式实现:
方法1:利用Tableau元数据API查询
使用GraphQL查询工作簿的extracts字段,直接获取其自身的提取刷新时间:
query WorkbookExtractDetails { workbooks(filter: {name: "目标工作簿名称"}) { name luid projectName createdAt updatedAt extracts { lastRefreshTime } } }
返回结果中,workbooks.extracts.lastRefreshTime就是工作簿自身的最后提取刷新时间,和上游/嵌入式数据源的刷新时间完全区分。
方法2:直接查询Tableau Server后台数据库
如果有权限访问Tableau Server的PostgreSQL元数据库,执行以下SQL查询:
SELECT w.name AS workbook_name, w.luid, p.name AS project_name, w.created_at, w.updated_at, COALESCE(e.last_refresh_time, '无提取') AS workbook_extract_last_refresh FROM workbooks w INNER JOIN projects p ON w.project_id = p.id LEFT JOIN extracts e ON w.id = e.workbook_id WHERE w.name = '目标工作簿名称';
这里通过关联workbooks和extracts表,直接拿到工作簿对应的提取刷新记录,避免和数据源的提取时间混淆。
更新后的JSON结构
可以在现有返回结构中为workbooks新增extractLastRefreshTime字段,用来存储工作簿自身的提取刷新时间:
{ "workbooks": { "name": "", "luid": "", "project name": "", "CreatedAt": "", "updatedAt": "", "extractLastRefreshTime": "" }, "UpstreamDatasources": { "name": "", "extractLastRefreshTime": "" }, "embedded data sources": { "name": "", "extractLastRefreshTime": "" } }
内容的提问来源于stack exchange,提问作者Pankaj M
相关产品推荐
相关产品推荐

