Hierarchische Modelle in dbt

Einführung in dbt

Mike Metzger

Data Engineer

Was ist eine Hierarchie in dbt?

  • Stellt Abhängigkeiten innerhalb eines dbt-Projekts dar
  • Auch bekannt als gerichteter azyklischer Graph (DAG) oder Lineage-/Abstammungsgraph
    • Spezifisch für dbt und nicht allgemeingültig für DAGs
  • Ermöglicht das Erstellen/Aktualisieren von Modellen gemäß Abhängigkeiten

dbt DAG / Lineage-Graph

Einführung in dbt

Hierarchiedetails

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

dbt DAG / Lineage graph

Einführung in dbt

Wie werden Hierarchien definiert?

  • Erstellung mittels Jinja-Vorlagensprache in den Modell-Dateien
  • Meist mit der Funktion ref
  • Ersetzen von Tabellennamen durch {{ ref('model_name') }} im SQL-Code
  • (Re-)Materialisierung einer Tabelle mit dbt run
  • ref-Vorlagen werden durch tatsächliche Tabellennamen ersetzt
Einführung in dbt

Hierarchiebeispiel

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

Probier es aus!

Einführung in dbt

Preparing Video For Download...