You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Tableau Metadata API获取工作表关联表及图表类型

解决方案

要解决你的两个需求,只需扩展Metadata API的GraphQL查询,添加对应的关联字段即可:

1. 获取工作表关联的数据源表

通过sheets下的datasources关联到数据源,再通过datasources的tables或upstreamTables获取关联的物理表——其中upstreamTables会包含所有上游依赖的表,适合联合数据源、自定义SQL等复杂场景。

2. 获取工作表的图表类型

使用sheets的visualizationType字段,该字段返回枚举值,比如BAR_CHART、PIE_CHART、LINE_CHART、TABLE等,对应实际的图表类型。

修改后的完整代码

# Authentication and server connection
tableau_auth = TSC.TableauAuth(username, password, site_id=siteName)
server = TSC.Server(
    tableau_server_url, use_server_version=True, http_options={"verify": False}
)

with server.auth.sign_in(tableau_auth):
    # 扩展后的GraphQL查询,包含所需字段
    query = """
    query workbooks {
      workbooks {
        name
        sheets {
          name
          # 获取图表类型
          visualizationType
          # 获取关联的数据源及对应表
          datasources {
            name
            # 直接关联的物理表
            tables {
              name
              schema
              database {
                name
              }
            }
            # 上游依赖的所有底层表(适合联合数据源/自定义SQL场景)
            upstreamTables {
              name
              schema
              database {
                name
              }
            }
          }
        }
      }
    }
    """

    # Execute the query and get results
    resp = server.metadata.query(query)
    print(resp)

关键字段说明

  • visualizationType:直接返回工作表的可视化类型枚举值,与你需要的饼图、柱状图等一一对应。
  • datasources.tables:返回当前数据源直接关联的物理表,包含表名、Schema和所属数据库名称。
  • datasources.upstreamTables:若工作表使用了联合数据源或自定义SQL,该字段会返回所有上游依赖的底层表,覆盖更复杂的数据源场景。

注:如果你的Tableau Server版本较低,部分字段可能不支持,建议对照对应版本的Metadata API定义确认可用性。

内容的提问来源于stack exchange,提问作者SnowGirl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:57:11