dbt Semantic Layer
测试版
按 dbt Labs
描述
dbt Semantic Layer 是 dbt Labs 的产品,它允许组织集中定义指标,以确保下游数据应用程序的一致访问。它可以动态查询数据,并通过复杂的 SQL 生成自动处理联接。您可以在此处找到更多关于 dbt Semantic Layer 的文档。
使用 Tableau 中的 dbt Semantic Layer 连接器实时连接到 dbt Semantic Layer,查询代码中定义的指标,并使用来自真实来源的可信数据创建和发布仪表板。通过适用于 Tableau 的 dbt Semantic Layer 连接器,您可以在不影响治理的情况下减少对数据提取的依赖,并通过将更多的业务逻辑转移到代码中,在 Tableau 中创建简化的接口。
安装
先决条件
- 您拥有 dbt Cloud Team 或 Enterprise 帐户,并且您的 dbt 版本为 v1.6 或更高版本。
- 您已经在 dbt Cloud 中配置了 dbt Semantic Layer
- 您使用的是 Tableau Desktop 版本 2021.1 或更高版本
JDBC 驱动程序 将 JDBC 驱动程序下载到基于您的操作系统的文件夹中:
- Windows:
`C:\Program Files\Tableau\Drivers`
- Mac:
`~/Library/Tableau/Drivers 或 /Library/JDBC 或 ~/Library/JDBC`
- Linux:
`/opt/tableau/tableau_driver/jdbc`
Taco 文件 下载 Taco 文件并将其放在默认目录中
- Desktop Windows: C:\用户\[您的用户]\文档\我的 Tableau 存储库\连接器
- Desktop MacOS: /用户/[您的用户]/文档/我的 Tableau 存储库/连接器
- Server Windows: C:\ProgramData\Tableau\Tableau Server\data\tabsvc\vizqlserver\Connectors
- Server Linux: [您的 Tableau Server 安装目录]/data/tabsvc/vizqlserver/Connectors
重启 Tableau Desktop 或 Tableau Server,在左侧找到“dbt Semantic Layer by dbt Labs”连接器。使用 dbt Cloud 在 Semantic Layer 配置期间提供的主机、环境ID 和服务令牌信息进行连接。
注意事项
聚合
- 在 Tableau 的 UI 中,所有指标都显示为使用“SUM”聚合类型,这不能使用 Tableau 的界面进行更改。
- dbt Semantic Layer 控制代码中的聚合类型,它是有意固定的。请记住,dbt Semantic Layer 中的基础聚合可能不是“SUM”(“SUM”是 Tableau 的默认值)。
数据源和显示
- 在“ALL”数据源中,Tableau 在左侧显示来自 dbt Semantic Layer 的所有指标和维度。请注意,并非所有指标和维度都可以组合。如果某个特定的维度无法用某个度量进行切片(反之亦然),您将会收到一条错误消息。您可以对想要合并的较小数据块使用保存的查询。
- 为了显示可用的度量和维度,dbt Semantic Layer 返回伪表的元数据,其中维度和度量作为该表上的“列”。因此,您实际上不能查询该表进行预览或数据提取。
计算和查询
- 当使用以非累加方式聚合的指标时(如非重复计数),某些表计算(如“总计”和“百分比”)可能不准确
- 在我们的任何 Semantic Layer 接口(不仅仅是 Tableau)中,当使用任何具有时间窗口或粒度的累积指标时,您必须包括一个时间维度。
- 我们可以支持用于创建参数筛选器或动态选择指标和维度的计算字段。但是,不支持计算字段的其他用途。
- 注意:对于当前未涵盖的计算字段使用情形,请联系[ dbt 支持部门并分享它们,以便我们进一步了解。
- 当使用包含筛选器的已保存查询时,我们将自动应用查询拥有的任何筛选器。
不支持的功能
目前不支持以下 Tableau 功能,但是 dbt Semantic Layer 可能会在未来的版本中支持其中的一些功能:
- 更新数据源页面
- 使用“数据提取”模式查看您的数据
- 合并表
- 编写自定义 SQL/初始 SQL
- 表扩展程序
- 跨数据库联接
- “分析”->“创建计算字段”中的一些功能
- 根据累积指标类型的日期部分时间维度进行筛选
- 将日期维度更改为使用“周数”
- 在 dbt Semantic Layer 创建的表之间执行联接。它为您处理联接,所以不需要在 dbt Semantic Layer中联接组件。请注意,您可以将 dbt Semantic Layer 的表连接到数据平台之外的表。
有关详细信息,请参见有关连接器的 dbt Labs 文档。