【问题标题】:Store DBT run execution output for auditing / analytics存储 DBT 运行执行输出以供审计/分析
【发布时间】:2023-01-11 17:33:05
【问题描述】:

我想知道我是否可以将 DBT 运行的输出(成功或失败、模型名称、执行时间,也许是一些“执行 ID”)存储到表中,以便我可以对成功/错误进行分析。

19:15:19  1 of 3 START table model dataset.table_1 ......... [RUN] 
19:15:19  1 of 3 ERROR table model dataset.table_1 ......... [ERROR in 999s]
19:15:20  2 of 3 SKIP relation dataset.table................ [SKIP]
19:15:20  3 of 3 start table dataset.table_3................ [RUN]
19:15:20  3 of 3 OK created dataset.table_3................. [CREATE TABLE (1M rows, 10TB processed)]

有什么办法可以将这些信息制成表格吗?也许有一些包可以做到这一点?

model_name      | started_at | finished_at | status
-----------------------------------------------------
dataset.table_3 | 19:15:20   | 19:15:20    | success
-----------------------------------------------------
dataset.table_2 | 19:15:19   | NULL        | skip
-----------------------------------------------------
dataset.table_1 | 19:15:19   | 19:15:19    | error

【问题讨论】:

    标签: sql data-warehouse dbt


    【解决方案1】:

    我相信最好的方法是使用 Brooklyn Data 出色的dbt-artifacts包。您会对它生成的 fct_dbt__model_executions 表特别感兴趣。

    当 dbt 运行时,它会将结构化数据记录到 run_results.jsonmanifest.json 文件中。这个包读取这些文件,然后根据它们的内容将数据插入到您的数据仓库中。这比在每个模型执行结束时直接添加 insert 数据的模型挂钩更快更好。

    【讨论】:

      【解决方案2】:

      听起来你在描述基本数据可靠性 DBT 包。 来自官方文档:

      该包会自动将 dbt 工件和运行结果上传到数据仓库中的表:

      运行结果表:

      • dbt_run_results
      • 模型运行结果
      • snapshot_run_results
      • elementary_test_results(所有 dbt 测试结果)

      元数据表:

      • dbt_models
      • dbt_tests
      • dbt_sources
      • dbt_exposures
      • dbt_metrics
      • sbt_sbapshots

      【讨论】:

        猜你喜欢
        • 2012-12-01
        • 1970-01-01
        • 2017-09-10
        • 1970-01-01
        • 1970-01-01
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多