Modele hierarchiczne w dbt

Wprowadzenie do dbt

Mike Metzger

Data Engineer

Co to jest hierarchia w dbt?

  • Reprezentuje zależności w projekcie dbt
  • Znany również jako skierowany graf acykliczny (DAG) lub graf liniowości
    • Uwaga: pojęcie specyficzne dla dbt, nie ogólny DAG
  • Umożliwia budowanie/aktualizowanie modeli zgodnie z zależnościami

Graf DAG / liniowości dbt

Wprowadzenie do dbt

Szczegóły hierarchii

  • avg_fare_per_day i total_creditcard_riders_per_day zależą od taxi_rides_raw
  • dbt najpierw buduje taxi_rides_raw
  • Bez grafu liniowości dbt tworzy wpisy alfabetycznie
    • avg_fare_per_day zakończyłoby się błędem bez taxi_rides_raw

Graf DAG / liniowości dbt

Wprowadzenie do dbt

Jak definiuje się hierarchie?

  • Definiowane za pomocą języka szablonów Jinja w plikach modeli
  • Najczęściej przy użyciu funkcji ref
  • Zastąp nazwę tabeli przez {{ ref('model_name') }} w SQL
  • Zmaterializuj tabelę poleceniem dbt run
  • Szablony ref są zastępowane rzeczywistymi nazwami tabel
Wprowadzenie do dbt

Przykład hierarchii

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Wprowadzenie do dbt

Czas na ćwiczenia!

Wprowadzenie do dbt

Preparing Video For Download...