Skip to content

Работа с тестами

Готовые тесты

Готовые тесты представляют собой SQL-запросы, которые покрывают большую часть потребностей при проверке таблиц.

Для создания теста в разделе "Качество данных" во вкладке "Тесты" нажмите "Создать тест".

1️⃣ Выберите таблицу

2️⃣ Выберите столбцы и проверки над ними Пример выбора тестов

Дополнительно можно выбирать тесты над всей таблицей, а не над конкретным столбцом.

3️⃣ Заполните параметры тестов

Для выбранных тестов заполните необходимые параметры Пример выбора тестов

4️⃣ Сохраните с запуском теста или без запуска

Ручные тесты

Ручные тесты - кастомные тесты, которые пользователь задает с помощью своего SQL-запроса. SQL-запрос должен выводить строки с ошибками.

1️⃣ Выберите одну или несколько таблиц, к которым относится ваш тест

2️⃣ Укажите наименование теста Если тест с таким наименованием уже создан, вам будет выведено предупреждение, что в таком случае тест будет перезаписан.

Дополнительно вы можете задать описание теста.

3️⃣ Введите SQL-запрос Пример SQL

4️⃣ Заполните параметры теста

5️⃣ Сохраните с запуском теста или без запуска

Изменение тестов

На текущий момент в Datapulse нет возможности редактировать ранее созданные тесты. Вы можете создать тест заново, и тогда старый тест будет перезаписан.

Типы готовых тестов

В то время как dbt имеет всего 4 готовых теста из коробки, Datapulse может предложить следующий широкий список готовых проверок:

Тест Описание
Не NULL Значение столбца не должно быть NULL
Не равно Значение столбца должно быть не равно указанному значению
Больше Значение столбца должно быть больше указанного значения
Меньше Значение столбца должно быть меньше указанного значения
Включает Значение столбца должно содержать указанное значение
Не включает Значение столбца не должно содержать указанное значение
Только буквы Значение столбца должно содержать только буквы
Диапазон значений Значение должно быть в указанном диапазоне (включительно)
Одно из значений Значение столбца должно быть значением из списка
Тест Описание
ФИО Значение столбца должно соответствовать формату ФИО
Эл. почта Значение столбца должно соответствовать формату электронной почты
Мобильный телефон Значение столбца должно соответствовать формату номера мобильного телефона
Номер паспорта Значение столбца должно соответствовать формату номера паспорта
ИНН Значение столбца должно соответствовать формату ИНН
Тест Описание
Кол-во между Количество по столбцу в разрезе указанной даты должно быть между указанными значениями
Кол-во уникальных между Уникальное количество (count distinct) по столбцу в разрезе указанной даты должно быть между указанными значениями
Персентиль по кол-ву Количество по столбцу в разрезе указанной даты должно не превышать указанный персентиль
Персентиль по кол-ву уникальных Уникальное количество (count distinct) по столбцу в разрезе указанной даты должно не превышать указанный персентиль
Сумма по дате между Сумма по столбцу в разрезе указанной даты должна быть между указанными значениями
Сумма по дате персентиль Сумма по столбцу в разрезе указанной даты должна не превышать указанный персентиль
Тест Описание
Персентиль Значение столбца не должно превышать указанный персентиль
Стандартное отклонение Значение столбца не должно отличаться от стандартного отклонения больше, чем на указанный порядок
Тест Описание
Уникальный Значение столбца не должно дублироваться
Корректная ссылка Значение столбца должно содержаться в указанном столбце другой таблицы
Больше столбца Значение столбца больше значения другого столбца
Меньше столбца Значение столбца меньше значения другого столбца
Тест Описание
Отсутствуют данные Нет разрезов по дате, у которых отсутствовали бы данные
Стандартное отклонение количества строк Количество строк в разрезе даты не должно отличаться от стандартного отклонения больше, чем на указанный порядок

Критичность теста

В Datapulse у теста можно определить его критичность:

  • высокая
  • средняя
  • низкая

Критичность влияет на расчет балла качества данных - чем критичнее тест, тем сильнее на снижение балла качества данных влияет не выполнение теста и количество строк, которое тест не прошло.

Хранение ошибок

В Datapulse есть возможность сохранять в отдельную таблицу строки, которые не прошли проверку.

Перед этим необходимо в файле dbt_project.yml указать схему, в которой будут создаваться таблицы для хранения ошибок.

tests:
  +schema: ваша_схема

Для сохранения ошибок при заполнении параметров теста включите параметр "Хранить ошибки". Также для большинства тестов вы можете выбрать, какие столбцы таблицы сохранять в таблицу с ошибочными строками (в том случае, если вы не хотите хранить все столбцы ошибочной строки для оптимизации памяти).

Ошибочные строки будут сохранены в таблицу - схема_для_тестов.таблица_столбец_имятеста. Наименование таблицы вы всегда можете посмотреть в карточке теста.

Инкрементальное тестирование

Проверяемые таблицы могут содержать большое количество данных, что может сильно сказываться на времени выполнения теста. Также, если данные только записываются и не изменяются (как в большинстве случаев у DWH витрин), каждый раз проверять таблицу целиком может быть неоптимальным решением.

Для этого в Datapulse есть возможность инкрементального тестирования. Для этого укажите столбец инкремента (обычно это столбец даты: дата записи строки в таблицу) и в таком случае проверяться будут только последние записи - строки с наибольшим значением в выбранном столбце инкремента.

where load_dttm = (select max(load_dttm) from "schema"."table")

У некоторых тестов (особенно, которые связаны со статистикой: персентиль и стандартное отклонение) было бы некорректно брать только последние записи, так как это напрямую бы влияло на полученное статистическое значение и на результат теста в целом. Для этого в Datapulse предусмотрена возможность тестирования в рамках окна - тестирование данных, которые входят в последнее окно (N дней/месяцев/кварталов/лет).

where load_dttm >= (select max(load_dttm) from "schema"."table") - (2|| ' month')::interval

Карточка теста

В карточке теста отображает основная информация о нем, а также собранная статистика: календарь с результатами выполнения и статистика по строкам с ошибками Карточка теста

Просмотр SQL-теста

В карточке теста можно посмотреть его SQL, нажав кнопку "Получить SQL-теста".

Наименование готовых тестов

Готовые тесты от Datapulse автоматически сохраняются в папке проекта dbt и имеют префикс dpulse_.

Важно

Редактирование этих файлов может повлиять на работоспособность и появление критических ошибок.