理解dbt artifacts及其实际应用

dbt是数据分析领域的一种变革性工具,它使数据专业人员能够对仓库中的数据进行转换和建模。它的强大功能之一是生成dbt artifacts:dbt运行的结构化输出,提供对dbt项目及其操作的深入了解。

dbt 构件介绍

dbt构件是每次dbt运行时生成的JSON文件。它们包括:

  • semantic_manifest.json:包含为每个模型编译的SQL代码。
  • manifest.json:提供dbt项目上次运行的全面结果清单视图。
  • catalog.json:提供有关数据库模式的详细信息,包括列数据类型和描述。
  • run_results.json:包含上次dbt运行的结果,包括成功或失败状态。
  • sources.json:项目中使用的source数据表的详细信息。

这些构件对于文档、查看dbt项目状态以及可视化source的新鲜度都是必不可少的。

生成并访问构件

每次调用dbt时,它都会生成构件。例如,当你运行:

shell 复制代码
dbt run

DBT将在DBT项目的target/目录中生成构件。你可以直接访问这些JSON文件,并利用dbt的内置文档站点等工具可视化其内容。

dbt artifacts 包实际应用

brooklyn-data提供的dbt_artifacts是非常强大的工具,可以对dbt项目及其运行的元数据进行建模。目前该包支持下面几种数仓:

  • Databricks ✅
  • Spark ✅
  • Snowflake ✅
  • Google BigQuery ✅
  • Postgres ✅
  • SQL Server ✅

生成模型包括:

  • dim_dbt__current_models

  • dim_dbt__exposures

  • dim_dbt__models

  • dim_dbt__seeds

  • dim_dbt__snapshots

  • dim_dbt__sources

  • dim_dbt__tests

  • fct_dbt__invocations

  • fct_dbt__model_executions

  • fct_dbt__seed_executions

  • fct_dbt__snapshot_executions

  • fct_dbt__test_executions

  • 安装依赖

    packages:
    - package: brooklyn-data/dbt_artifacts
    version: 2.7.0

执行 dbt deps命令安装依赖。

  • 配置

在dbt_project.yml中指定数据上传位置:

yaml 复制代码
models:
  dbt_artifacts:
    +database: your_destination_database
    +schema: your_destination_schema

我们还可以分类设置:

yml 复制代码
models:
  ...
  dbt_artifacts:
    +database: your_destination_database # optional, default is your target database
    +schema: your_destination_schema # optional, default is your target schema
    staging:
      +database: your_destination_database # optional, default is your target database
      +schema: your_destination_schema # optional, default is your target schema
    sources:
      +database: your_sources_database # optional, default is your target database
      +schema: your sources_database # optional, default is your target schema
  • 增加run-end hook
yml 复制代码
on-run-end:
  - "{{ dbt_artifacts.upload_results(results) }}"

建议增加条件,保证仅在生产环境启用:

yml 复制代码
on-run-end:
  - "{% if target.name == 'prod' %}{{ dbt_artifacts.upload_results(results) }}{% endif %}"
  • 运行

设置完成后,可以直接运行。

复制代码
dbt run --select dbt_artifacts

总结

DBT 构件是一项极为强大的特性,它能够让我们对 DBT 项目及运行请看有更深理解。如果我们能够有效地理解并利用这些构件,就可以对数据转换流程进行优化,从而确保数据的可靠性。期待您的真诚反馈,更多内容请阅读数据分析工程专栏。

相关推荐
智码看视界10 小时前
大数据架构解析—数据血缘:从 SQL 解析到字段级溯源,搭建大数据平台数据治理底座
数据治理·neo4j·元数据·sql解析·数据血缘·datalineage·sqlglot
森山冶仁1 天前
把专家抽检变成分钟级全量初审:科学数据审核智能体的召回率与证据链怎么设计
人工智能·数据治理·数据质量·元数据
蒸鱼Yuzheng2 天前
RenderDoc 跨版本回放治理:驱动、API、资源与兼容性矩阵
数据治理·gpu·兼容性测试·vulkan·renderdoc
森山冶仁3 天前
DCMM 2.0 数据安全域权重提到 25%:申报资格硬门槛怎么过
数据治理·数据安全·dcmm·数据管理能力成熟度·贯标
递归尽头是星辰4 天前
企业级数据治理六层架构方法论
数据治理·数据治理体系·数据治理架构·数据治理方法论
zhenye19867 天前
《Web 3.0时代数据资产管理》——学习笔记
数据治理
森山冶仁9 天前
数据资产摊销年限与减值测试实操:从“一律三年”到按授权期限与迭代频率估计
数据治理·数据资产·数据资产入表·无形资产摊销·减值测试
制造数据与AI践行者老蒋9 天前
智联工坊实战:工业数据质量自动检测方案 3σ 原则 + Agent 编排 + 分层容错完整实践
数据治理·ai agent·智能工厂·工业大数据·python实战·制造业数据·数据质量巡检
森山冶仁9 天前
EU AI Act 第 10 条落地前:训练数据的治理文档怎么准备
数据集·数据治理·数据质量·合规·ai治理
大大大大晴天️10 天前
元数据目录到数据资产运营:让好数据被看见、被复用、被持续经营
大数据·数据治理