Hiërarchische modellen in dbt

Introductie tot dbt

Mike Metzger

Data Engineer

Wat is een hiërarchie in dbt?

  • Geeft afhankelijkheden binnen een dbt-project weer
  • Ook wel een directed acyclic graph (DAG) of lineage graph
    • Specifiek voor dbt, niet een algemene DAG
  • Laat modellen bouwen/updaten volgens afhankelijkheden

dbt DAG / Lineage-graph

Introductie tot dbt

Details van de hiërarchie

  • avg_fare_per_day en total_creditcard_riders_per_day hangen af van taxi_rides_raw
  • dbt bouwt eerst taxi_rides_raw
  • Zonder lineage-graph maakt dbt items alfabetisch aan
    • avg_fare_per_day faalt zonder taxi_rides_raw

dbt DAG / Lineage-graph

Introductie tot dbt

Hoe definieer je hiërarchieën?

  • Gedefinieerd met de Jinja-template-taal in modelbestanden
  • Meestal met de functie ref
  • Vervang tabelnaam door {{ ref('model_name') }} in SQL
  • (Her)materialiseer tabel met dbt run
  • ref-templates worden vervangen door echte tabelnamen
Introductie tot dbt

Voorbeeld van een hiërarchie

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introductie tot dbt

Laten we oefenen!

Introductie tot dbt

Preparing Video For Download...