Template Jinja

Introduzione a dbt

Mike Metzger

Data Engineer

Cos'è un template?

  • Formato definito che consente la sostituzione di informazioni
  • Spesso un file di testo
  • Semplifica accesso e riuso
Introduzione a dbt

Cos'è Jinja?

  • Linguaggio di templating semplice, basato su testo
  • Usato in molti strumenti, non solo dbt
  • {{ ... }} indica una sostituzione nel template
  • dbt offre molte funzioni Jinja per i progetti
  • Rende l'uso di dbt più dinamico
  • Puoi usare for loop per semplificare il codice
Introduzione a dbt

Funzioni Jinja in dbt

  • Alcune funzioni Jinja disponibili
    • ref: accedi ai modelli per nome
    • config: accedi alle impostazioni di configurazione
    • docs: accedi alla documentazione
    • Calcoli, loop, ecc.
Introduzione a dbt

Esempio Jinja

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

Passiamo alla pratica !

Introduzione a dbt

Preparing Video For Download...