Выбор ответа Junior dbt спрашивают часто обновлено
Зачем ref() в dbt
Вопрос
Почему в моделях dbt пишут {{ ref('stg_orders') }}, а не analytics.stg_orders?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: По ref dbt строит граф зависимостей, задаёт порядок запуска и подставляет схему окружения. Ссылка через ref даёт dbt знание о зависимостях: lineage, порядок запуска, выбор поднаборов моделей (+модель), а также подстановку схемы dev или prod.
Варианты ответа
- ref ускоряет выполнение запроса: dbt подставляет закешированный результат модели
- Без ref dbt не сможет подключиться к базе, где лежит модель, и упадёт при компиляции
- ref автоматически создаёт индексы по ключам, которыми модели соединяются друг с другом
- По ref dbt строит граф зависимостей, задаёт порядок запуска и подставляет схему окруженияправильный ответ
Разбор
Ссылка через ref даёт dbt знание о зависимостях: lineage, порядок запуска, выбор поднаборов моделей (+модель), а также подстановку схемы dev или prod. Хардкод имени ломает и граф, и окружения. На скорость запроса и подключение ref не влияет. Индексы dbt не создаёт.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.