Hierarkiska modeller i dbt

Introduktion till dbt

Mike Metzger

Data Engineer

Vad är en hierarki i dbt?

  • Representerar beroenden inom ett dbt-projekt
  • Kallas även directed acyclic graph (DAG) eller linjegraf
    • Notera att detta är specifikt för dbt, inte en generell DAG
  • Gör att modeller kan byggas/uppdateras enligt beroenden

dbt DAG / Lineage graph

Introduktion till dbt

Hierarkidetaljer

  • avg_fare_per_day och total_creditcard_riders_per_day är beroende av taxi_rides_raw
  • dbt bygger taxi_rides_raw först
  • Utan en linjegraf skapar dbt poster i alfabetisk ordning
    • avg_fare_per_day skulle misslyckas utan taxi_rides_raw

dbt DAG / Lineage graph

Introduktion till dbt

Hur definieras hierarkier?

  • Definieras med Jinja-mallspråket i modellfilen/filerna
  • Oftast med funktionen ref
  • Ersätt tabellnamnet med {{ ref('model_name') }} i SQL
  • Materialisera tabellen (om) med dbt run
  • ref-mallar ersätts med faktiska tabellnamn
Introduktion till dbt

Hierarkiexempel

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Introduktion till dbt

Nu kör vi en övning!

Introduktion till dbt

Preparing Video For Download...