使用 dbt build 自動化

dbt 中級

Mike Metzger

Data Engineer

重點回顧

  • sourcesseeds 提供 dbt 的初始資料
  • models 進行資料轉換(通常來自 sourcesseeds),提供下游使用者使用
  • tests 可驗證 sourcesseedsmodels
    • 內建(uniquenot_nullrelationaccepted_values
    • 單一
    • 通用/可重用
  • dbt build 會執行以上所有工作,通常用於生產環境
dbt 中級

dbt build

dbt build

  • 多項工作的組合
  • 執行 models(dbt run
  • 透過 tests 執行驗證(dbt test
  • 處理任何 seeds(dbt seed
  • 其他可用選項(dbt snapshot
  • 不會執行 dbt docs 相關作業

也可個別執行各指令

建置中

1 Photo by Randy Fath on Unsplash
dbt 中級

為什麼用 dbt build?

  • 單一子指令好用,但無法處理所有潛在問題
    • dbt run 不會先驗證(也就是不會執行 tests)
    • dbt seed 對部分查詢可能不完整
  • dbt build 會判定相依關係,並在生產變更前先執行所有 tests
  • 若只做測試或小幅增量變更,dbt build 可能太重
  • 需要時可改為手動逐步執行
dbt 中級

dbt build 選項

  • dbt build --select <object>
  • dbt build -d
  • dbt build --exclude <object>
dbt 中級

一起來練習吧!

dbt 中級

Preparing Video For Download...