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

Unit tests в dbt

Вопрос

Чем unit test в dbt (с версии 1.8) отличается от data test?

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

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

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

Коротко

Правильный ответ: Unit test проверяет логику модели на заданных входах и ожидаемом выходе; data test реальные данные. Unit test описывает мок-строки для входных моделей и ожидаемый результат, это проверка логики трансформации, например сложного CASE или расчёта окна.

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

  1. Unit test проверяет только синтаксис SQL модели и корректность ссылок ref без запуска в базе
  2. Unit test запускается после каждой строки, вставленной в инкрементальную модель, и откатывает её
  3. Unit test проверяет логику модели на заданных входах и ожидаемом выходе; data test реальные данныеправильный ответ
  4. Разницы нет: unit tests это новое имя для data tests, введённое в dbt 1.8 вместе с ключом YAML

Разбор

Unit test описывает мок-строки для входных моделей и ожидаемый результат, это проверка логики трансформации, например сложного CASE или расчёта окна. Data test смотрит на фактические данные: уникальность, NULL, связи. Синтаксис проверяет компиляция. Построчного запуска нет. Data tests это переименованные «тесты» (в YAML ключ data_tests), а unit tests отдельная новая сущность.

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

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