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

一分钟运行DBT入门示例项目(Jaffle Shop)

前面写了关于数据分析工程的dbt系列博客,但却没有介绍dbt官方提供的入门示例项目。今天带你完整运行该项目,包括数据源配置、运行dbt相关命令,最后生成项目文档。通过实际项目学习,会加深对dbt理解,也建议你卷起袖子,行动起来。

Jaffle Shop项目介绍

  • 什么是dbt?

DBT(数据构建工具)是一个开源命令行工具,可以帮助数据分析师和数据工程师更有效地转换数据仓库中的数据。用户可以编写模块化的SQL查询,执行查询生成数据模型。dbt采用工程化理念,管理数据转换的生命周期,包括模型文档和数据测试等。

  • 什么是Jaffle Shop?

Jaffle Shop是一个虚构的电子商务公司,用作演示dbt功能示例教程项目。这个项目是学习dbt的官方入门项目,非常适合初学者。它包括数据建模、数据测试和模型文档编写等内容。本文展示的项目也可以从我的资源中下载。

  • 项目结构
├── dbt_packages
├── dbt_project.yml
├── docker-compose.yml
├── profiles.yml
├── requirements.txt
├── models
│   ├── marts
│   │   ├── customers.sql
│   │   ├── docs.md
│   │   ├── orders.sql
│   │   └── schema.yml
│   └── staging
│       ├── schema.yml
│       ├── stg_customers.sql
│       ├── stg_orders.sql
│       └── stg_payments.sql
├── profiles.yml
├── requirements.txt
└── seeds├── raw_customers.csv├── raw_orders.csv└── raw_payments.csv
  1. models/:包含staging和mart两层的模型文件。
  2. seeds/: dbt项目中的“seeds”文件夹用于将静态数据加载到数据仓库中。这些数据通常采用CSV文件的形式,通常用于查询字典表、引用数据或其他不经常更改的小型静态数据集。因为该项目是示例,为了简化,我们直接把原始数据以文件方式加载。
  3. dbt_project.yml:是dbt项目的全局配置文件。
  4. profiles.yml : 是数据源配置,支持配置多个数据源,如开发环境和生产环境。
  5. docker-compose.yml :PostgreSql的dockerfile文件,如果你已经安装了数据库,可以忽略。
  6. requirements.txt : python 包,dbt-core 和 dbt-postgres

环境准备

  • 依赖安装
  1. Git
  2. Python 3.9 or higher
  3. Docker Desktop or Docker Compose
  • 环境安装
  1. 直接下载项目,或到官方克隆:git clone

  2. 进入项目文件夹:cd jaffle-shop-dbt-demo

  3. 安装python虚拟环境:$ python3 -m venv venv; 激活虚拟环境:$ source venv/bin/activate

  4. 更新pip:$ python3 -m pip install - upgrade pip

  5. 安装依赖:$ python3 -m pip install -r requirements.txt

  6. 运行docker:

    $ docker compose build
    $ docker compose up -d
    

    准备就绪,我们开始运行项目,执行dbt相关命令。

运行项目

  1. 设置数据源,连接数据仓库
jaffle_shop:target: devoutputs:dev:type: postgreshost: localhostuser: dbtpassword: dbtport: 5432dbname: dbtschema: jaffle-shop-classicthreads: 4
  1. 确保数据连接正确,dbt-core 安装正确:
$ dbt debug

执行后会生成 .user.yml 文件。

  1. 载入csv文件,即演示数据。下面命令会在target schema中生成表,并加载数据。

注意:实际项目中,通常原始数据通过sources加载,这里仅为了演示方便。

  1. 下面是剩余依次执行的命令:
$ dbt seed
# 运行模型
$ dbt run
# 测试模型
$ dbt test
# 生成文档
$ dbt docs generate
# 查看文档
$ dbt docs serve

最终生成文档可以在浏览器中查看。示例截图:

在这里插入图片描述
可以看到每个模型及其字段信息,每个字段都包括了文档描述信息。还可以看到数据血缘关系。


http://www.mrgr.cn/news/55774.html

相关文章:

  • HarmonyOS NEXT 应用开发实战(六、组件导航Navigation使用详解)
  • Android Camera2在textureView中的预览和拍照
  • 如何计算表格中重复项有多少?
  • 排序02 Multi-gate Mixture-of-Experts (MMoE)
  • 数据结构与集合源码
  • 探索光耦:光耦——不间断电源(UPS)系统中的安全高效卫士
  • 新的类Rufus应用可带来简单的Windows 11 24H2安装旁路
  • 【07】z检验
  • Redis在实践的关键点
  • autMan框架对接飞书机器人
  • Golang | Leetcode Golang题解之第500题键盘行
  • Flutter Container容器组件实战案例
  • 精选录屏软件下载工具:记录精彩每一刻
  • 基于leaflet-polygon.fillPattern的面状对象图片填充实现
  • SQL CHECK 约束:确保数据完整性的关键
  • 【星闪技术】WS63E模块实时显示当前环境温湿度
  • ARL 灯塔 | CentOS7 — ARL 灯塔搭建流程(Docker)
  • AI学习指南深度学习篇-对比学习(Contrastive Learning)简介
  • 用malloc申请空间的开辟和free空间的释放
  • 计算机网络基本命令
  • 《深度学习》 了解YOLO基本知识
  • Java全栈经典面试题剖析2】JavaSE面向对象1
  • 复盘秋招22场面试(四)形势重新评估与后续措施
  • 【论文学习与撰写】,论文word文档中出现乱码的情况,文档中显示的乱码,都是英文字母之类的,但打印预览是正常的
  • ARL 灯塔 | ARL 灯塔 — 指纹添加
  • Java最全面试题->Java主流框架->Srping面试题