dbt(Data Build Tool)一款專為數據分析和工程師設計的開源工具,專注于 ETL/ELT 流程的數據轉換(Transform)環節,幫助用戶以高效、可維護的方式將原始數據轉換為適合分析的數據模型。
用戶只需要編寫查詢(SELECT)語句或者 Python 代碼,dbt 負責將這些語句和代碼轉換為表、視圖或者數據集;多個查詢語句(也稱為模型)組成一個 dbt 項目,一個模型通常基于其他模型構建,dbt 負責管理它們之間的關系和依賴。
dbt 通過將版本控制、模塊化、可移植性、CI/CD 以及測試和文檔化等軟件工程最佳實踐引入數據分析的工作流之中,提升了數據轉換的可靠性和可維護性。dbt 的主要功能包括:
- 簡化開發,通過編輯模塊化的查詢語句或者 Python 代碼,避免了數據轉換過程中重復的表創建和維護;
- 動態 SQL,支持使用 Jinja 模板實現動態 SQL(如變量、循環、條件語句),提升代碼復用性;
- 定義模塊順序,使用 ref 函數基于其他模型定義新的模型,實現模塊之間的依賴和執行順序;
- 文檔生成,支持自動生成項目和數據文檔,可視化表與字段的依賴關系;
- 模型測試,確保轉換模型的準確性和完整性;
- 包管理,模塊化代碼管理和共享;
- 種子文件,通過 CSV 文件加載參考表、配置表等靜態數據;
- 數據快照,通過記錄數據的歷史狀態變化,支持數據回溯。
dbt 支持連接各種數據庫、數據倉庫、數據湖以及查詢引擎,包括 AlloyDB、Apache Spark、Athena、Azure Synapse、BigQuery、Databricks、Dremio、Glue、IBM Netezza、Materialize、Microsoft Fabric、Oracle、PostgreSQL、Redshift、Snowflake、Trino、Teradata、Clickhouse、CrateDB、Databend、Doris、DuckDB、Hive、DB2、Impala、MySQL、SQL Server & Azure SQL、SQLite、Starrocks、TiDB、TimescaleDB、Spark 等數據平臺。
dbt 提供了兩種形式的產品:
- dbt Core:免費開源的 CLI 工具,支持命令行形式開發和運行 dbt 項目。
- dbt Cloud:基于 Web 的托管服務,提供 UI 界面以及各種企業級功能;對個人開發者免費。
dbt Cloud輸入以下網址并注冊一個免費賬號:https://www.getdbt.com/signup
本地安裝可以參考官方文檔:https://docs.getdbt.com/