Hierarchische Modelle in dbt

Einführung in dbt

Mike Metzger

Data Engineer

Was ist eine Hierarchie in dbt?

  • Stellt Abhängigkeiten in einem dbt-Projekt dar
  • Auch bekannt als gerichteter azyklischer Graph (DAG) oder Lineage-Graph
    • Spezifisch für dbt, nicht ein allgemeiner DAG
  • Ermöglicht Build/Update von Modellen nach Abhängigkeiten

dbt-DAG / Lineage-Graph

Einführung in dbt

Hierarchie-Details

  • avg_fare_per_day und total_creditcard_riders_per_day hängen von taxi_rides_raw ab
  • dbt baut taxi_rides_raw zuerst
  • Ohne Lineage-Graph erstellt dbt Einträge alphabetisch
    • avg_fare_per_day würde ohne taxi_rides_raw fehlschlagen

dbt-DAG / Lineage-Graph

Einführung in dbt

Wie werden Hierarchien definiert?

  • Erstellt mit der Jinja-Templatesprache in den Modelldateien
  • Meist mit der Funktion ref
  • Ersetze Tabellennamen im SQL durch {{ ref('model_name') }}
  • Tabelle mit dbt run (re)materialisieren
  • ref-Templates werden durch echte Tabellennamen ersetzt
Einführung in dbt

Hierarchie-Beispiel

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Einführung in dbt

Lass uns üben!

Einführung in dbt

Preparing Video For Download...