关于 DBT 项目¶
DBT 会从项目会得知上下文以及转换数据(构建数据集)的方式。根据设计,DBT 强制要求项目的顶级结构,例如 dbt_project.yml 文件、models
目录、snapshots
目录等。在顶级目录中,您可以按满足组织和数据管道需求的任何方式组织项目。
项目至少需要的是 dbt_project.yml 项目配置文件。DBT 支持许多不同的资源,因此项目还可能包括:
资源 | 描述 |
---|---|
models |
每个模型都位于单个文件中,并包含将原始数据转换为可用于分析的数据集的逻辑,或者更常见的是,它是此类转换的中间步骤。 |
snapshots |
一种捕获可变表状态的方法,以便我们以后可以参考它。 |
seeds |
CSV 文件,其中包含可以使用 DBT 加载到数据平台中的静态数据。 |
tests |
您可以编写的 SQL 查询来测试项目中的模型和资源。 |
macros |
可以多次重用的代码块。 |
docs |
构建的项目的文档 |
sources |
一种命名和描述通过 Extract (提取)和 Load (加载) 工具加载到仓库中的数据的方法。 |
exposures |
一种定义和描述项目的下游使用的方法。 |
metrics |
一种用于定义项目指标的方法。 |
groups |
组可以在受限集合中实现协作节点组织。 |
analysis |
一种在项目中组织分析 SQL 查询的方法,例如 QuickBooks 中的总账。 |
semantic_models |
语义模型定义 MetricFlow 和 DBT 语义层中的基础数据关系,使您能够使用语义图查询指标。 |
saved_queries |
保存的查询通过将指标、维度和筛选器分组到 DBT DAG 中可见的节点中来组织可重用查询。 |
在构建项目结构时,您应该考虑这些对组织工作流程的影响:
- 如何运行 DBT 命令 —— 选择路径。
- 如何在项目中导航 —— 无论是作为 IDE 中的开发人员还是文档中的利益相关者。
- 如何配置模型 —— 一些批量配置在目录级别更容易完成,因此人们不必记住在每个新模型的配置块中执行所有操作。
1. 项目配置¶
每个 DBT 项目都包含一个名为 dbt_project.yml 的项目配置文件,它定义了 DBT 项目和其他项目配置的目录。
dbt_project.yml 常见的项目配置参数如下:
参数 | 描述 |
---|---|
name |
项目名称 |
version |
项目版本 |
require-dbt-version |
DBT 版本 |
profile |
配置文件名称 |
model-paths |
模型目录 |
seed-paths |
种子文件的目录 |
test-paths |
测试的路径 |
analysis-paths |
分析的目录 |
macro-paths |
宏的目录 |
snapshot-paths |
快照的目录 |
docs-paths |
文档的目录 |
vars |
要用于数据编译的项目变量 |
2. 项目子目录¶
3. 创建新项目¶
使用 dbt init
命令创建新项目,在项目初始化期间,DBT 会在项目目录中创建示例模型文件,以帮助我们快速开始开发。
4. 示例项目¶
如果想更深入地探索 DBT 项目,可以在 GitHub 上克隆 DBT Labs 的 Jaffle shop。它是一个可运行的项目,包含示例配置和有用的注释。
如果您想了解成熟的生产项目是什么样子,请查看 GitLab 数据团队公共存储库。