再次檢視你的 customers.sql 檔案時,你會發現為了依訂單狀態計算不同欄位,重複了大量的 CASE WHEN ... 敘述。這讓資料集市模型變得又長又複雜。
customers.sql
CASE WHEN ...
作為第一步,你已將該 CTE 拆出成一個獨立的中介集市模型,命名為 int_customers__pivoted.sql,並把邏輯移到那裡。
int_customers__pivoted.sql
不過愈看愈覺得,這個中介模型其實可以用 Jinja 迴圈來改寫,讓可擴充性更好,也減少重複。
本練習屬於課程
將理論付諸實踐,立即體驗我們的互動練習
從零開始實作建立一個 dbt 專案。把你載入不同型態資料進入 dbt 專案的技能用起來,並設定多種 staging 類型的 dbt 模型。本章聚焦於 ELT 流程中的 E 與 L。
深入探討 dbt 的資料建模。從前期的 staging 模型一路建立到最終的 data mart 模型,用來回應關鍵的商業需求。過程中,你也會實作資料測試,作為防護欄以避免資料品質漂移。
學習用 Jinja 精簡你的 dbt 專案,降低重複並提升可維護性。你將練習使用變數、迴圈與巨集(macro),打造更高效的轉換流程。
當前練習