Jinja 樣板

dbt 入門

Mike Metzger

Data Engineer

什麼是樣板?

  • 定義好的格式,可替換資訊
  • 常為純文字檔
  • 方便存取與重複使用
dbt 入門

什麼是 Jinja?

  • 簡單的文字樣板語言
  • 不只 dbt,許多工具都會用
  • {{ ... }} 表示樣板替換
  • dbt 提供多種 Jinja 函式可用於專案
  • 讓 dbt 使用更具動態性
  • 可用 for 迴圈精簡程式碼
dbt 入門

dbt 的 Jinja 函式

  • 常見的 Jinja 函式範例:
    • ref:以名稱存取模型
    • config:存取組態設定
    • docs:存取文件資訊
    • 計算、迴圈等
dbt 入門

Jinja 範例

  • 不使用 Jinja 時
    SELECT
    COALESCE(start_date, '2025-01-01') as start_date,
    COALESCE(update_date, '2025-01-01') as update_date,
    COALESCE(end_date, '2025-01-01') as end_date
    FROM Events
    
  • 使用 Jinja 時
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
dbt 入門

一起來練習吧!

dbt 入門

Preparing Video For Download...