Ієрархічні моделі в dbt

Вступ до dbt

Mike Metzger

Data Engineer

Що таке ієрархія в dbt?

  • Відображає залежності всередині проєкту dbt
  • Також відома як орієнтований ациклічний граф (DAG) або граф походження
    • Зверніть увагу: це специфічно для dbt, а не загальний DAG
  • Дозволяє будувати/оновлювати моделі за їхніми залежностями

dbt DAG / Граф походження

Вступ до dbt

Деталі ієрархії

  • avg_fare_per_day і total_creditcard_riders_per_day залежать від taxi_rides_raw
  • dbt спершу будує taxi_rides_raw
  • Без графа походження dbt створює об'єкти за абеткою
    • avg_fare_per_day помилиться без taxi_rides_raw

dbt DAG / Граф походження

Вступ до dbt

Як визначаються ієрархії?

  • Будується мовою шаблонів Jinja у файлі(ах) моделі
  • Найчастіше через функцію ref
  • Замініть назву таблиці на {{ ref('model_name') }} у SQL
  • (Пере)матеріалізуйте таблицю командою dbt run
  • Шаблони ref підміняються фактичними назвами таблиць
Вступ до dbt

Приклад ієрархії

SELECT 
  first_name, last_name
FROM taxi_rides_raw
SELECT 
  first_name, last_name
FROM {{ ref('taxi_rides_raw') }}
Вступ до dbt

Давайте потренуємось!

Вступ до dbt

Preparing Video For Download...