DBT項(xiàng)目結(jié)構(gòu)
關(guān)于DBT項(xiàng)目
dbt 項(xiàng)目告知 dbt 項(xiàng)目的上下文以及如何轉(zhuǎn)換數(shù)據(jù)(構(gòu)建數(shù)據(jù)集)。根據(jù)設(shè)計(jì),dbt 強(qiáng)制執(zhí)行 dbt 項(xiàng)目的頂級(jí)結(jié)構(gòu),如文件、目錄、目錄等。在頂級(jí)目錄中,可以滿足組織和數(shù)據(jù)管道需求的任何方式組織項(xiàng)目。
dbt_project.yml
models
snapshots
至少,項(xiàng)目需要的只是項(xiàng)目配置文件。DBT 支持許多不同的資源,因此項(xiàng)目還可能包括:dbt_project.yml
模型 models
每個(gè)模型都位于單個(gè)文件中,并包含將原始數(shù)據(jù)轉(zhuǎn)換為可供分析的數(shù)據(jù)集的邏輯,或者更常見的是,是此類轉(zhuǎn)換的中間步驟。快照 snapshots
一種捕獲可變表狀態(tài)的方法,以便稍后可以參考它。種子 seeds
CSV 文件包含靜態(tài)數(shù)據(jù),您可以使用 dbt 將其加載到數(shù)據(jù)平臺(tái)中。測(cè)試 tests
可以編寫的 SQL 查詢來測(cè)試項(xiàng)目中的模型和資源。宏 macros
可以多次重用的代碼塊。文檔 docs
您可以生成的項(xiàng)目文檔。來源 sources
一種命名和描述通過提取和加載工具加載到倉庫中的數(shù)據(jù)的方法。暴露 exposures
一種定義和描述項(xiàng)目下游使用的方法。指標(biāo) metrics
一種為項(xiàng)目定義指標(biāo)的方法。分析 analysis
一種在項(xiàng)目中組織分析 SQL 查詢的方法,例如 QuickBooks 中的總賬。
在構(gòu)建項(xiàng)目結(jié)構(gòu)時(shí),應(yīng)考慮對(duì)組織工作流的以下影響:
人們將如何運(yùn)行 dbt 命令 — 選擇路徑
人們?nèi)绾卧陧?xiàng)目中導(dǎo)航 — 無論是作為 IDE 中的開發(fā)人員還是文檔中的利益干系人
人們將如何配置模型 - 一些批量配置在目錄級(jí)別更容易完成,因此人們不必記住在每個(gè)新模型的配置塊中執(zhí)行所有操作
項(xiàng)目配置
每個(gè) dbt 項(xiàng)目都包含一個(gè)名為 的項(xiàng)目配置文件。它定義了 dbt 項(xiàng)目的目錄和其他項(xiàng)目配置。dbt_project.yml
name 項(xiàng)目名稱
version 項(xiàng)目的版本
require-dbt-version 將項(xiàng)目限制為僅使用一系列 dbt 核心版本
profile dbt用于連接到數(shù)據(jù)平臺(tái)的配置文件
model-paths 模型和源文件所在的目錄
seed-paths 種子文件所在的目錄
test-paths 測(cè)試文件所在的目錄
analysis-paths 分析所在的目錄
macro-paths 宏所在的目錄
snapshot-paths 快照所在的目錄
docs-paths 文檔塊所在的目錄
vars 要用于數(shù)據(jù)編譯的項(xiàng)目變量
新建項(xiàng)目
您可以創(chuàng)建新項(xiàng)目并通過在托管的 git 存儲(chǔ)庫(如 GitHub、GitLab 和 BitBucket)上提供它們來與其他人共享它們。
設(shè)置與數(shù)據(jù)平臺(tái)的連接后,您可以在 dbt Cloud 中初始化新項(xiàng)目并開始開發(fā)?;蛘撸瑥拿钚羞\(yùn)行 dbt init 來設(shè)置新項(xiàng)目。
在項(xiàng)目初始化期間,dbt 會(huì)在項(xiàng)目目錄中創(chuàng)建示例模型文件,以幫助您快速開始開發(fā)。
示例項(xiàng)目
如果你想更深入地探索dbt項(xiàng)目,你可以在GitHub上克隆dbt Lab的Jaffle商店。這是一個(gè)可運(yùn)行的項(xiàng)目,包含示例配置和有用的說明。
如果想要了解成熟的生產(chǎn)項(xiàng)目是什么樣子的,請(qǐng)查看 GitLab 數(shù)據(jù)團(tuán)隊(duì)公共存儲(chǔ)庫。