iT邦幫忙

2024 iThome 鐵人賽

DAY 9
0
DevOps

我獨自升級:從水管工走向 DataOps系列 第 9

【Day 9】數據轉換最悪の世代:DBT 簡介

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20240923/201354271pkMxXd2HF.png

DBT 的由來

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 模式,數據先進入雲端倉庫,再進行轉換,並依照需求再行擴展,相較傳統更強調即時性、靈活性、擴展性和模組化的概念。

DBT 是什麼?

開始之前我們可以到他的官網看一下官方介紹

  • The new standard for data transformation (數據轉換的新標準)
  • Transform your data where it lives (在數據所在的位置轉換數據)

這兩句 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) 原則提高開發效率。

使用 DBT 的原因

話說我當初會 survey 到 dbt,主要的動機是過去的 CTE 太多太雜了,CTE (Common Table Expression)簡單說就是 sql 當中的暫存表,通常太複雜的 sql 就會分成多個 CTE,方便辨別且後續可重複利用,而當初 CTE 應該有上百個,後續的維護非常的繁瑣,後來發現 dbt 這個寶藏工具就完全解決我的困擾,可以從 lineage 查看所有 sql 的上下游關係,超方便。

此外,DBT 這些特點也是非常的吸引人,推薦常常玩數據的朋友一定要試試:

  1. dbt Core 是 Open Source
  2. 只需要會 SQL,簡單好上手
  3. 文件完整
  4. 社群活躍

台灣的 #local-taipei channel 也很活躍,可以加入 slack 看看,幾乎每月都有活動,我已經參加好幾場了!!
meetup 連結
slack 加入連結

數據專案的特點:

  1. 多種 DB 都支援,PostgreSQL、BigQuery、Redshift、Snowflake
  2. 版本控制
  3. dbt docs 可以把上下游關係視覺化,也能針對 table 的 schema 寫詳細的說明,快速幫助團隊了解數據模型及其關聯。
  4. dbt test 用於檢查數據的完整性和品質做進一步的檢查。

DBT Core vs DBT Cloud

dbt 有兩個版本,分別是 dbt Core 和 dbt Cloud,適合不同需求

dbt Core

是免費的開源版本,適合技術團隊使用。它提供基本的數據建模和轉換功能,主要通過寫 SQL 來操作。公司需要自行管理工具的運行環境,比如在自己的電腦或伺服器上執行。

dbt Cloud

這是付費的雲端版本,不需要公司自己管理伺服器,所有工具都由 dbt 提供託管服務。它還提供更方便的圖形化介面和 CI/CD 自動化部署功能,適合技術程度較低的使用者。

結語

明天就會介紹整體架構和更多專有名詞,DBT~GO~GO~/images/emoticon/emoticon08.gif


上一篇
【Day 8】Airflow 卍解 -自訂 XCom 後端解除限制
下一篇
【Day 10】DBT 新手村入門:架構說明
系列文
我獨自升級:從水管工走向 DataOps30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言