DBT项目结构

Dazdata MDS

关于DBT项目

dbt 项目告知 dbt 项目的上下文以及如何转换数据(构建数据集)。根据设计,dbt 强制执行 dbt 项目的顶级结构,如文件、目录、目录等。在顶级目录中,可以满足组织和数据管道需求的任何方式组织项目。

dbt_project.yml

models

snapshots

至少,项目需要的只是项目配置文件。DBT 支持许多不同的资源,因此项目还可能包括:dbt_project.yml

  • 模型 models
    每个模型都位于单个文件中,并包含将原始数据转换为可供分析的数据集的逻辑,或者更常见的是,是此类转换的中间步骤。

  • 快照 snapshots
    一种捕获可变表状态的方法,以便稍后可以参考它。

  • 种子 seeds
    CSV 文件包含静态数据,您可以使用 dbt 将其加载到数据平台中。

  • 测试 tests
    可以编写的 SQL 查询来测试项目中的模型和资源。

  • 宏 macros
    可以多次重用的代码块。

  • 文档 docs
    您可以生成的项目文档。

  • 来源 sources
    一种命名和描述通过提取和加载工具加载到仓库中的数据的方法。

  • 暴露 exposures
    一种定义和描述项目下游使用的方法。

  • 指标 metrics
    一种为项目定义指标的方法。

  • 分析 analysis
    一种在项目中组织分析 SQL 查询的方法,例如 QuickBooks 中的总账。

在构建项目结构时,应考虑对组织工作流的以下影响:

  • 人们将如何运行 dbt 命令 — 选择路径

  • 人们如何在项目中导航 — 无论是作为 IDE 中的开发人员还是文档中的利益干系人

  • 人们将如何配置模型 – 一些批量配置在目录级别更容易完成,因此人们不必记住在每个新模型的配置块中执行所有操作

项目配置

每个 dbt 项目都包含一个名为 的项目配置文件。它定义了 dbt 项目的目录和其他项目配置。dbt_project.yml

  • name 项目名称

  • version 项目的版本

  • require-dbt-version 将项目限制为仅使用一系列 dbt 核心版本

  • profile dbt用于连接到数据平台的配置文件

  • model-paths 模型和源文件所在的目录

  • seed-paths 种子文件所在的目录

  • test-paths 测试文件所在的目录

  • analysis-paths 分析所在的目录

  • macro-paths 宏所在的目录

  • snapshot-paths 快照所在的目录

  • docs-paths 文档块所在的目录

  • vars 要用于数据编译的项目变量

新建项目

您可以创建新项目并通过在托管的 git 存储库(如 GitHub、GitLab 和 BitBucket)上提供它们来与其他人共享它们。

设置与数据平台的连接后,您可以在 dbt Cloud 中初始化新项目并开始开发。或者,从命令行运行 dbt init 来设置新项目。

在项目初始化期间,dbt 会在项目目录中创建示例模型文件,以帮助您快速开始开发。

示例项目

如果你想更深入地探索dbt项目,你可以在GitHub上克隆dbt Lab的Jaffle商店。这是一个可运行的项目,包含示例配置和有用的说明。

如果想要了解成熟的生产项目是什么样子的,请查看 GitLab 数据团队公共存储库