上一篇講到利用 dbt init
開始 dbt 專案。這篇則是要開始 dbt 專案的開發:
利用 dbt init
開始專案後,可以用 vscode 開啟專案資料夾,下面是我開啟 dbt_demo
這個專案之後的畫面,可以看到左邊列出了一些 dbt 專案預設的資料夾,其中 models
下面的 .sql
檔出現了 dbt 的 logo 圖示,這就代表 dbt power user 已經正確啟用了。:
如果沒有看到,可能會發現 dbt is not installed 的通知出現在畫面右下方,這是因為我們剛剛是把 dbt 安裝在虛擬環境下,vs code 預設的 python 路徑沒辦法找到他。這時可以先在 python terminal 再輸入一次 dbt debug,將 python 的路徑複製,然後貼上到 dbt power user 的設定中。
第一步:利用 dbt debug 找到 python 路徑,複製下來:
第二步:點擊 settings 進到 vs code 設定畫面
第三步:更改 dbt power user python interpreter 的位置,貼上剛剛的 python interpreter 路徑
設定好後,重新開啟 VScode ,看到螢幕左下角的 dbt-core 有一個 √,就代表 dbt power user 偵測到 dbt 了, 就可以正常運作了。
這邊要來介紹 dbt 最常用的 command: dbt run
。dbt 的全名是 data build tool,顧名思義當他開始跑之後,他就會開始在資料庫中,建立一張張的表格 (Table 或是 View)。 只要是在 models 資料夾下的 *.sql
檔案,都會變成在資料庫中的一張表格。
而使用 dbt init
啟動專案時,dbt 都會幫我們預設建好兩個 model 作為範例:my_first_dbt_model
以及 my_second_dbt_model
。 這時我們點進 my_first_dbt_model
的 SQL 檔案,VScode 就會幫我們開啟這個檔案,可以看到裡面的程式碼如下圖:
{{ config(materialized = "table") }}
的意思就是這張 SQL 的結果會以 table 的形式存在在資料庫中,如果改成 view 就會以 view 的形式存在在資料庫中。(當然 materialized 還有其他選項,詳情可以參考上一屆團友的文章),但我相信以分析師本身的職責以及台灣中小企業的規模來說, view 跟 table 就很夠用了。
這時如果我們按一下上圖第一個跑步小人的往下展開選單,點選 Run dbt Model,就會在下面的 Terminal 看到下圖。
這時候就代表 dbt 成功在我們資料庫中的 public
這個 schema 建立 my_first_dbt_model
這張表了。這時候可以到資料庫檢查看看,public schema 下是不是真的出現 my_first_dbt_model
這張表。下圖就是我的資料庫中,已經有這張表了,而且裡面的資料就是 my_first_dbt_model.sql
這個 model 的 SQL 邏輯所呈現的結果。