dbt(data build tool)最初由數據諮詢公司 Fishtown Analytics 創建,目的是解決數據轉換和分析工程中的挑戰。隨著 dbt 迅速成長,2016 年開源,Fishtown 改名為dbt Labs,如今為 dbt 框架背後的公司。自推出以來,dbt 迅速在數據工程和分析界竄紅。它的核心理念是將數據分析師、數據工程師和數據科學家聚集在同一平台上,共同構建高質量的分析模型。開源的特性使得用戶能夠自由修改和擴展功能,促進了社群的合作創新,目前 dbt 已成為現代數據棧(Modern Data Stack, MDS)中不可或缺的工具,推動數據分析的發展。
現代數據堆疊(Modern Data Stack, MDS)是一種新的數據架構,通常包括雲數據倉庫(如 Snowflake 或 BigQuery)、數據集成工具(如 Fivetran)、數據轉換工具(如 dbt)和可視化工具(如 Looker)。 相較傳統的 ETL 過程,MDS 採用 ELT 模式,數據先進入雲端倉庫,再進行轉換,並依照需求再行擴展,相較傳統更強調即時性、靈活性、擴展性和模組化的概念。
開始之前我們可以到他的官網看一下官方介紹:
這兩句 slogan 可以看出 DBT 專注在 ETL 當中的 T(transformation,資料轉換),資料源和轉換過程都在相同的資料庫。
dbt™ is a SQL-first transformation workflow that lets teams quickly and collaboratively deploy analytics code following software engineering best practices like modularity, portability, CI/CD, and documentation. Now anyone on the data team can safely contribute to production-grade data pipelines.
dbt™ 是一種 SQL 優先的轉換工作流,可讓團隊按照軟體工程最佳實踐(如模組化、可移植性、CI/CD 和文檔)快速協作地部署分析代碼。現在,數據團隊中的任何人都可以安全地為生產級數據管道做出貢獻。
接下來官網最上面段話指出了 DBT(Data Build Tool) 的核心是 SQL,數據團隊成員只需撰寫熟悉的 SQL 語句即可完成數據轉換,大幅降低了學習門檻,不管事資料分析師(DA)、資料分工程師(DE)、資料科學家(DS)等角色都能直接參與數據管道的建設。另外,模組化開發可以將轉換邏輯拆分為多個模型或片段,方便於多個項目或數據表中重複使用,滿足 DRY (Don't Repeat Yourself) 原則提高開發效率。
話說我當初會 survey 到 dbt,主要的動機是過去的 CTE 太多太雜了,CTE (Common Table Expression)簡單說就是 sql 當中的暫存表,通常太複雜的 sql 就會分成多個 CTE,方便辨別且後續可重複利用,而當初 CTE 應該有上百個,後續的維護非常的繁瑣,後來發現 dbt 這個寶藏工具就完全解決我的困擾,可以從 lineage 查看所有 sql 的上下游關係,超方便。
此外,DBT 這些特點也是非常的吸引人,推薦常常玩數據的朋友一定要試試:
台灣的 #local-taipei channel 也很活躍,可以加入 slack 看看,幾乎每月都有活動,我已經參加好幾場了!!
meetup 連結
slack 加入連結
數據專案的特點:
dbt 有兩個版本,分別是 dbt Core 和 dbt Cloud,適合不同需求
是免費的開源版本,適合技術團隊使用。它提供基本的數據建模和轉換功能,主要通過寫 SQL 來操作。公司需要自行管理工具的運行環境,比如在自己的電腦或伺服器上執行。
這是付費的雲端版本,不需要公司自己管理伺服器,所有工具都由 dbt 提供託管服務。它還提供更方便的圖形化介面和 CI/CD 自動化部署功能,適合技術程度較低的使用者。
明天就會介紹整體架構和更多專有名詞,DBT~GO~GO~