Jinja-Templates

Einführung in dbt

Mike Metzger

Data Engineer

Was ist ein Template?

  • Ein definiertes Format mit Platzhaltern
  • Meist eine Textdatei
  • Vereinfacht Zugriff und Wiederverwendung
Einführung in dbt

Was ist Jinja?

  • Einfache, textbasierte Template-Sprache
  • In vielen Tools über dbt hinaus genutzt
  • {{ ... }} steht für eine Template-Ersetzung
  • dbt bietet viele Jinja-Funktionen für Projekte
  • Erlaubt dynamischere Nutzung von dbt
  • Schleifen vereinfachen Code
Einführung in dbt

dbt-Jinja-Funktionen

  • Einige der vielen verfügbaren Jinja-Funktionen
    • ref: Modelle per Name referenzieren
    • config: Konfiguration abrufen
    • docs: Doku-Infos abrufen
    • Berechnungen, Schleifen, usw.
Einführung in dbt

Jinja-Beispiel

  • Ohne 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
    
  • Mit Jinja
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
Einführung in dbt

Lass uns üben!

Einführung in dbt

Preparing Video For Download...