DBT 中的暴露

Exposures in DBT

我是 DBT 的新手,正在尝试探索如何进行曝光。 我已经阅读了文档 ( https://docs.getdbt.com/docs/building-a-dbt-project/exposures ),但我觉得我没有得到问题的答案。

我很清楚您在模型文件夹中创建一个曝光文件,然后声明 table 名称和它所依赖的另一个 tables/sources 的概念。

Q1 - 我应该说明 table 的整个下游还是它所依赖的直接 table?

Q2 - 它有什么确切的好处?你能想出一个具体的场景吗?

Q3 - dbt 运行 -m exposure:name 和 dbt 测试-m exposure:name? 是测试模型还是曝光?

我完全按照文档中的说明进行了操作,只是不知道如何使用它。

提前谢谢你:-)

我不是曝光专家,但希望我的回答能给你一些指导。

Q1 - 据我所知,您只需要指定它所依赖的直接表。 dbt 将自动处理下游引用。重要的是要确保所有模型和源都正确配置,并且在引用它们时使用 refsource 函数。这就是 dbt 跟踪节点和依赖项以生成文档的 DAG 的方式。

Q2 - 曝光的好处之一是它可以改进您的文档并帮助团队了解数据如何流经 reporting/dashboard。假设业务用户要求新需求或需要在仪表板中完成更改,分析师可以轻松地进行公开并查看所有依赖项,并且仪表板正在使用的代码可以从那里做出快速决策和将需求移交给 ETL 团队或其他团队。 另一个例子可能与刷新有关。想象一下,您正在处理来自相同上下文或 tag 的一系列对象,例如项目,并且您只需要刷新项目范围内正在特定项目中使用的对象仪表盘。为此,您可以 运行 仅针对该曝光使用 dbt 命令。

Q3 - 这些命令的目的是 运行 并仅测试特定曝光的模型和参考。您可以将此视为标记报告对象或在曝光中声明的任何内容的不同方式。它在某些情况下非常有用。

希望对您有所帮助,谢谢!