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...