Jinja-mallar

Introduktion till dbt

Mike Metzger

Data Engineer

Vad är en mall?

  • Ett definierat format för informationssubstitution
  • Oftast en textfil
  • Förenklar åtkomst och återanvändning
Introduktion till dbt

Vad är Jinja?

  • Enkelt textbaserat mallspråk
  • Används i många verktyg utöver dbt
  • {{ ... }} representerar en mallsubstitution
  • dbt erbjuder många Jinja-funktioner för projekt
  • Möjliggör mer dynamisk användning av dbt
  • For-loopar kan användas för att förenkla koden
Introduktion till dbt

dbt Jinja-funktioner

  • Några av de tillgängliga Jinja-funktionerna
    • ref: Åtkomst till modeller via namn
    • config: Åtkomst till konfigurationsinställningar
    • docs: Åtkomst till dokumentationsinformation
    • Beräkningar, loopar m.m.
Introduktion till dbt

Jinja-exempel

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

Nu kör vi en övning!

Introduktion till dbt

Preparing Video For Download...