摘要
dbt项目形成dbt有关项目的上下文以及如何转换数据(构建数据集)。通过设计,dbt强制执行dbt项目的顶层结构,如dbt_project.yml文件、models目录、snapshots目录等。在顶层目录中,您可以以满足组织和数据管道需求的任何方式来组织项目。
至少,项目所需要的只是dbt_project.yml配置文件。dbt支持许多不同的资源,因此一个项目也可能包括:
| 资源 | 描述 |
|---|---|
| models模型 | 每个模型都存在于一个文件中,并包含将原始数据转换为可供分析的数据集的逻辑,更常见的是,是数据转换的一个中间步骤。 |
| snapshots快照 | 一种捕获可变表状态的方法,以便以后可以引用它。 |
| seeds种子 | 带有静态数据的CSV文件,您可以使用dbt将其加载到数据平台中. |
| 测试 | 您可以编写SQL查询来测试项目中的模型和资源. |
| 宏 | 可以多次重用的代码块. |
| 文档 | 生成项目文档. |
| 数据源 | 一种命名和描述由提取和加载工具加载到仓库中的数据的方法. |
| 暴露 | 一种定义和描述项目下游用途的方法. |
| 度量 | 为您的项目定义指标的方法. |
| 分析 | 一种在项目中组织分析SQL查询的方法. |
在构建项目结构时,您应该考虑这些对组织工作流程的影响:
- 人们将如何运行dbt命令 — 选择一个路径
- 人们将如何在项目中导航 — 无论是IDE中的开发人员还是文档中的利益相关者
- 们将如何配置模型 — 一些批量配置在目录级别更容易完成,因此人们不必记住在配置块中对每个新模型执行所有操作
项目配置¶
每个dbt项目都包括一个名为dbt_project.yml的项目配置文件。它定义了dbt项目和其他项目配置的目录。
修改dbt_project.yml设置常见的项目配置,例如:
| YAML key | Value描述 |
|---|---|
| name | 项目名称蛇形 |
| version | 项目版本 |
| require-dbt-version | 项目dbt限制版本[dbt Core版本] |
| (/dbt-versions/core) | |
| profile | dbt用于连接到数据平台的配置文件 |
| model-paths | 模型和源文件所在的目录 |
| seed-paths | 种子文件所在的目录 |
| test-paths | 测试文件所在的目录 |
| analysis-paths | 分析文件所在的目录 |
| macro-paths | 宏文件所在的目录 |
| snapshot-paths | 快照文件所在的目录 |
| docs-paths | 文档所在的目录 |
| vars | 要用于数据编译的项目变量 |
有关项目配置的完整详细信息,请参阅dbt_project.yml
创建新项目¶
您可以创建新项目,并通过在托管的git存储库(如GitHub、GitLab和BitBucket)上提供这些项目来与其他人共享。
在您与数据平台建立连接后,您可以在dbt Cloud中初始化您的新项目并开始开发。或者,从命令行运行dbt init来设置新项目。
在项目初始化期间,dbt会在项目目录中创建示例模型文件,以帮助您快速开始开发。
示例项目¶
如果你想更深入地探索dbt项目,你可以克隆dbt Lab在GitHub上的Jaffle shop。这是一个可运行的项目,包含示例配置和有用的注释。
如果你想看看一个成熟的生产项目是什么样子的,请查看GitLab数据团队公共仓库.