任何dbt项目至少需要一个 dbt_project.yml项目配置文件
,dbt支持许多不同的资源,因此一个项目可能还包括:
Resource | Description |
---|---|
models | 每个模型都位于单独的文件中,并包含将原始数据转换为可供分析的数据集的逻辑,或者更常见的是此类转换的中间步骤。 |
snapshots | 一种获取可变表状态的方法,以便稍后可以参考它。 |
seeds | 带有静态数据的CSV文件,您可以使用dbt将其加载到数据平台中。 |
tests | 放你编写SQL查询来测试项目中的模型和资源。 |
macros | 可以多次重用的代码块。 |
docs | 可以生成的项目文档 |
sources | 一种命名和描述由提取和加载工具加载到仓库中的数据的方法。 |
exposures | 一种定义和描述项目下游用途的方法。 |
metrics | 为您的项目定义指标的一种方法。 |
groups | 组允许在受限集合中进行协作节点组织。 |
analysis | 一种在项目中组织分析SQL查询的方法,例如QuickBooks中的总账。 |
项目配置
每个dbt项目都包含一个名为dbt_project.yml的项目配置文件。它定义了dbt项目和其他项目配置的目录。
编辑dbt_project.yml以设置常见的项目配置,例如:
YAML key | Value description |
---|---|
name | 项目名称(蛇形命名法) |
version | 项目版本 |
require-dbt-version | 限制您的项目只能使用某些dbt Core版本 |
profile | dbt用于连接到数据平台的配置文件 |
model-paths | 模型和源文件所在的目录 |
seed-paths | 种子文件所在的目录 |
test-paths | 测试文件所在的目录 |
analysis-paths | 您的分析文件所在的目录 |
macro-paths | 宏所在的目录 |
snapshot-paths | 快照所在的目录 |
docs-paths | 文档块所在的目录 |
vars | 要用于数据编译的项目变量 |
dbt_project.yml | dbt Developer Hub
项目子目录
您可以使用dbt Cloud中的Project subdirectory选项来指定git存储库中dbt应该用作项目根目录的子目录。当您在一个存储库中有多个dbt项目,或者希望将dbt项目文件组织到子目录中以便于管理时,这将非常有用。
要在dbt Cloud中使用项目子目录选项,请执行以下步骤:
单击页面右上角的cog图标,然后单击帐户设置。
在“项目”下,选择要配置为项目子目录的项目。
选择页面右下角的“编辑”。
在“项目子目录”字段中,添加子目录的名称。例如,如果您的dbt项目文件位于名为<repository>/finance的子目录中,则输入finance作为子目录。
也可以引用嵌套的子目录。例如,如果您的dbt项目文件位于“存储库”/“团队/财务”中,则输入“团队/财务”作为子目录。注意:在项目子目录字段中不需要前导或尾随/。
完成后单击保存。
配置项目子目录选项后,dbt Cloud将使用它作为dbt项目的根目录。这意味着dbt命令(例如dbt run或dbt test)将对指定子目录中的文件进行操作。如果项目子目录中没有dbt\u project.yml文件,系统将提示您初始化dbt项目。
New projects
您可以创建新项目并与其他人共享这些项目,方法是在托管的git存储库(如GitHub、GitLab和BitBucket)中提供这些项目。
建立与数据平台的连接后,可以在dbt云中初始化新项目并开始开发。或者,从命令行运行dbt init来设置新项目。
在项目初始化期间,dbt在项目目录中创建示例模型文件,以帮助您快速开始开发。