Modelli gerarchici in dbt

Introduzione a dbt

Mike Metzger

Data Engineer

Cos'è una gerarchia in dbt?

  • Rappresenta le dipendenze in un progetto dbt
  • Anche detto grafo aciclico diretto (DAG) o grafo di lineage
    • Specifico di dbt, non un DAG generico
  • Consente di creare/aggiornare i modelli in base alle dipendenze

DAG dbt / Grafo di lineage

Introduzione a dbt

Dettagli della gerarchia

  • avg_fare_per_day e total_creditcard_riders_per_day dipendono da taxi_rides_raw
  • dbt costruisce prima taxi_rides_raw
  • Senza grafo di lineage, dbt crea le entità in ordine alfabetico
    • avg_fare_per_day fallirebbe senza taxi_rides_raw

DAG dbt / Grafo di lineage

Introduzione a dbt

Come si definiscono le gerarchie?

  • Definite con il linguaggio template Jinja nel file dei modelli
  • Di solito con la funzione ref
  • Sostituisci il nome tabella con {{ ref('model_name') }} in SQL
  • (Ri)materializza la tabella con dbt run
  • I template ref vengono sostituiti con i nomi tabella reali
Introduzione a dbt

Esempio di gerarchia

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introduzione a dbt

Passiamo alla pratica!

Introduzione a dbt

Preparing Video For Download...