iT邦幫忙

2023 iThome 鐵人賽

DAY 15
1

在前面我們已經談論了,在現代資料棧裡的轉換層 (transformation layer) 的主角其實是 SQL ,而 dbt 則是擔任輔助生成 SQL 的角色。而 dbt 用來輔助 SQL 生成的眾多功能之中,最重要的功能,莫過於動態組合 SQL。

實際上,在一般的軟體開發,也有一種類型的軟體,擔任類似的角色,它們通常稱之為建置工具 (build tool) ,比方說,在 C 語言可能是用 Make,在 Java 是用 Maven 。在軟體開發,當程式語言經過了編譯之後,會產生一個又一個的物件檔 (object file),建置工具會去解析釐清,這些物件檔之間的依賴關系,而後串接眾多的物件檔,進而產生最後的程式。

承上所述,dbt 可以視為是『資料領域的建置工具 (build tool)』,也因此,它的全名叫做 data build tool 。

安裝 dbt

dbt 也有提供雲端版本的,所以如果可以考慮雲端版本的讀者們,我也推荐使用雲端版本,畢竟維護本地端版本的軟體,還是滿費心的。

簡易安裝步驟:

  1. 準備好 python 環境,即 python 直譯器。
  2. 執行 pip install dbt-core 這一步是安裝 dbt 的核心程式
  3. 執行 pip install dbt-duckdb 這一步是安裝 dbt 對於 DuckDB 的轉接器 (adapter), dbt 可以支援各種的資料倉儲、甚至是 SQL 引擎,只要安裝了對應的轉接器即可。

上述的步驟裡,最棘手的一步,其實是「準備好 python 環境」。一旦系統有超過一個 python 直譯器,管理或是切換不同的 python 直譯器 ,就是一大麻煩。我認為,合理的解決之道,應該是要先安裝 python 直譯器的管理器,比方說,pyenv

討論

在 dbt 官網的安裝說明,與這邊提供的安裝方式大同小異。官網的安裝說明比較強調要用 python virtual environment (venv)去管理 pip modules ,這是很好的習慣,特別是當你也同時會用 python 來開發應用軟體時,多安裝了一些 pip modules 之後,很容易產生 modules 之間的衝突,所以最好要用 venv 之類的程式去管理。

dbt + SQL

由於 dbt 沒有辦法單獨運作,它一定要搭配上 SQL 才能發揮它的功能。於是,在我們開始透過一些實際的案例來展現 dbt 的功能之前,我們還要先安裝好一個可以提供我們 SQL 的資料倉儲軟體,先預告一下,我們接下來要安裝的軟體是 DuckDB 。


其它資源

  1. 對 dbt 或 data 有興趣 👋?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加
  2. 歡迎訂閱 PruningSuccess 電子報,主要談論軟體開發、資料處理、資料分析等議題。

上一篇
Tranformation layer: SQL & dbt
下一篇
Tranformation layer: DuckDB 安裝
系列文
當代資料工程與資料分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言