Выбор ответа Senior dbt обновлено
CI для большого dbt-проекта
Вопрос
В проекте 1500 моделей, полная сборка в CI идёт 3 часа. Как ускорить проверку merge request?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Собирать только изменённые модели и потомков (state:modified+) с --defer на прод во временной схеме. Slim CI сравнивает проект с манифестом прода, строит только изменённое и зависимое, а неизменённые родители читаются из прода через defer.
Варианты ответа
- Собирать только изменённые модели и потомков (
state:modified+) с--deferна прод во временной схемеправильный ответ - Отключить CI на merge request и проверять проект только ночной полной сборкой, уже после мержа в основную ветку
- Запускать в CI только
dbt compile: если SQL компилируется, модели почти наверняка корректны - Удалить из проекта медленные тесты и оставить только тесты на not null по ключам
Разбор
Slim CI сравнивает проект с манифестом прода, строит только изменённое и зависимое, а неизменённые родители читаются из прода через defer. Отключение CI переносит ошибки в прод. Компиляция не проверяет данные и логику. Удаление тестов убирает защиту.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.