当前位置: 首页 > news >正文

理解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时,它都会生成构件。例如,当你运行:

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_artifactsversion: 2.7.0

执行 dbt deps命令安装依赖。

  • 配置

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

models:dbt_artifacts:+database: your_destination_database+schema: your_destination_schema

我们还可以分类设置:

models:...dbt_artifacts:+database: your_destination_database # optional, default is your target database+schema: your_destination_schema # optional, default is your target schemastaging:+database: your_destination_database # optional, default is your target database+schema: your_destination_schema # optional, default is your target schemasources:+database: your_sources_database # optional, default is your target database+schema: your sources_database # optional, default is your target schema
  • 增加run-end hook
on-run-end:- "{{ dbt_artifacts.upload_results(results) }}"

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

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

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

dbt run --select dbt_artifacts

总结

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

http://www.lryc.cn/news/470737.html

相关文章:

  • 100种算法【Python版】第15篇——KMP算法
  • 【软件工程】软件项目管理/工程项目管理复习资料
  • C语言基础题(大合集2)
  • Stable Diffusion视频插件Ebsynth Utility使用方法
  • Ubuntu忘记密码
  • 使用Python实现深度学习模型:智能极端天气事件预测
  • cJson函数解析
  • 基于SSM+微信小程序的跑腿平台管理系统(跑腿3)
  • mit6824-02-Lab1:MapReduce分布式实现
  • 【NOIP普及组】 装箱问题
  • Flutter主题最佳实践
  • 计算机网络:网络层 —— IPv4 数据报的首部格式
  • MySQL 之 索引
  • 手动探针台的用途及组成部分
  • ❤️算法笔记❤️-(每日一刷-5、最长回文串)
  • nginx 路径匹配,关于“/“对规则的影响
  • 安全知识见闻-网络安全热门证书
  • Pandabuy事件警示:反向海淘品牌如何规避风险
  • 【纯血鸿蒙】安装hdc工具
  • TensorFlow面试整理-给定一个任务(如图像分类、文本分类),如何从头构建一个TensorFlow模型?
  • unity中出现一些莫名其妙的问题
  • Python爬虫-汽车投诉排行榜单数据
  • [C++][数据结构][哈希表]详细讲解
  • Android Gradle
  • Vue2自定义指令及插槽
  • 【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket
  • 1GS/s 4通道14bit PCIE采集卡
  • 动态IP是什么?
  • 51单片机完全学习——红外遥控
  • 群控系统服务端开发模式-应用开发-业务架构逻辑开发BaseAPI