Создание единичных тестов

Средний уровень dbt

Mike Metzger

Data Engineer

Что такое единичный тест?

  • Пользовательский тест данных
  • Записывается в виде SQL-запроса
    • Должен возвращать строки с ошибками
  • Определяется как файл .sql в директориях tests

Изображение теста

1 Фото: Antoine Dautry, Unsplash
Средний уровень dbt

Пример единичного теста

  • Создайте тест для проверки:
    • order_total >= subtotal
select *
from order
where order_total < subtotal
  • Помните: нужны строки, которые не проходят тест — если строки возвращаются, тест считается проваленным.
  • Сохраните файл как assert_order_total_gte_subtotal.sql

Схема таблицы order_table

Средний уровень dbt

Единичный тест с Jinja

  • В тестах можно использовать Jinja
    • Функция ref
    • Другие функции — по необходимости
  • dbt подставляет результат при запуске теста
    • Перезапустите проект при изменении профиля dbt
select *
from {{ ref('order') }}
where order_total < subtotal
Средний уровень dbt

Отладка тестов

  • Используйте SQL-редактор для составления первоначального тестового запроса
  • Поместите запрос в нужный файл
  • Убедитесь, что имя теста уникально
  • Используйте параметр dbt test --select <testname>
  • Проверьте ошибки и внесите необходимые исправления
Средний уровень dbt

Давайте потренируемся!

Средний уровень dbt

Preparing Video For Download...