Jinja-templates

Introductie tot dbt

Mike Metzger

Data Engineer

Wat is een template?

  • Een vast formaat waarin je info kunt vervangen
  • Vaak een tekstbestand
  • Maakt hergebruik en toegang eenvoudiger
Introductie tot dbt

Wat is Jinja?

  • Eenvoudige, tekstgebaseerde templatingtaal
  • Gebruikt in veel tools, niet alleen dbt
  • {{ ... }} staat voor een templatesubstitutie
  • dbt biedt veel Jinja-functies voor projecten
  • Maakt dbt dynamischer
  • Gebruik for-loops om code te vereenvoudigen
Introductie tot dbt

dbt Jinja-functies

  • Enkele Jinja-functies
    • ref: Modellen op naam benaderen
    • config: Configuratie-instellingen benaderen
    • docs: Documentatie-info benaderen
    • Berekeningen, loops, enz.
Introductie tot dbt

Jinja-voorbeeld

  • Zonder 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
    
  • Met Jinja
    SELECT
    {% for column in ['start_date', 'update_date', 'end_date'] %}
    COALESCE({{column}}, '2025-01-01') as {{column}}
    {% endfor %}
    FROM Events
    
Introductie tot dbt

Laten we oefenen!

Introductie tot dbt

Preparing Video For Download...