Выбор ответа Senior dbt обновлено

CI для большого dbt-проекта

Вопрос

В проекте 1500 моделей, полная сборка в CI идёт 3 часа. Как ускорить проверку merge request?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Собирать только изменённые модели и потомков (state:modified+) с --defer на прод во временной схеме. Slim CI сравнивает проект с манифестом прода, строит только изменённое и зависимое, а неизменённые родители читаются из прода через defer.

Варианты ответа

  1. Собирать только изменённые модели и потомков (state:modified+) с --defer на прод во временной схемеправильный ответ
  2. Отключить CI на merge request и проверять проект только ночной полной сборкой, уже после мержа в основную ветку
  3. Запускать в CI только dbt compile: если SQL компилируется, модели почти наверняка корректны
  4. Удалить из проекта медленные тесты и оставить только тесты на not null по ключам

Разбор

Slim CI сравнивает проект с манифестом прода, строит только изменённое и зависимое, а неизменённые родители читаются из прода через defer. Отключение CI переносит ошибки в прод. Компиляция не проверяет данные и логику. Удаление тестов убирает защиту.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.