DQCheck

class DQCheck

Перечисление проверок качества данных (Data Quality).

Наследуется от DQTest и Enum.

Добавлено в версии 0.1.0.

Назначение:

Определяет набор стандартных проверок качества данных, которые можно выполнять после переноса данных между СУБД. Каждая проверка имеет свои характеристики и требования к данным.

Атрибуты DQTest

Каждый элемент перечисления содержит следующие атрибуты:

description: str

Человеко-читаемое описание проверки.

generate_queryes: int

Генерирует ли объект SQL-запросы. 0 - Нет 1 - Да

need_source_table: int

Требует ли проверка доступ к исходной таблице для сравнения. 0 - проверка выполняется только на целевой таблице 1 - требуется сравнение с исходной таблицей

Элементы перечисления

empty = DQTest("Table not empty", 0, 0)

Проверка наличия данных в таблице. Проверка пройдена, если в таблице есть хотя бы одна строка.

Характеристики:

  • 📝 Описание: «Table not empty»

  • 🗃️ SQL запросов: 0 (не генерирует запросы)

  • 🔄 Исходная таблица: ❌ Не требуется

  • ⚡️ Скорость: Мгновенная

Использование: Базовая проверка успешности переноса данных.

uniq = DQTest("Table don't have any duplicate rows", 0, 0)

Проверка на уникальность строк. Проверка пройдена, если в таблице нет полных дубликатов строк.

Характеристики:

  • 📝 Описание: «Table don’t have any duplicate rows»

  • 🗃️ SQL запросов: 0

  • 🔄 Исходная таблица: ❌ Не требуется

  • ⚡️ Скорость: Быстрая

Использование: Для таблиц, где каждая строка должна быть уникальна.

future = DQTest("Table don't have dates from future", 1, 0)

Проверка дат из будущего. Проверка пройдена, если колонки с датами не превышают текущий месяц.

Характеристики:

  • 📝 Описание: «Table don’t have dates from future»

  • 🗃️ SQL запросов: 1

  • 🔄 Исходная таблица: ❌ Не требуется

  • ⚡️ Скорость: Средняя

Использование: Для проверки корректности временных меток.

infinity = DQTest("Table don't have infinity values", 1, 0)

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

Характеристики:

  • 📝 Описание: «Table don’t have infinity values»

  • 🗃️ SQL запросов: 1

  • 🔄 Исходная таблица: ❌ Не требуется

  • ⚡️ Скорость: Средняя

Использование: Для проверки корректности числовых данных.

nan = DQTest("Table don't have NaN values", 1, 0)

Проверка на NaN значения. Проверка пройдена, если в таблице отсутствуют значения NaN.

Характеристики:

  • 📝 Описание: «Table don’t have NaN values»

  • 🗃️ SQL запросов: 1

  • 🔄 Исходная таблица: ❌ Не требуется

  • ⚡️ Скорость: Средняя

Использование: Для проверки корректности числовых данных.

total = DQTest("Equal data total rows count between objects", 0, 1)

Проверка равенства общего количества строк. Сравнивает количество строк в исходной и целевой таблицах.

Характеристики:

  • 📝 Описание: «Equal data total rows count between objects»

  • 🗃️ SQL запросов: 0

  • 🔄 Исходная таблица: ✅ Требуется

  • ⚡️ Скорость: Быстрая

Использование: Для проверки полноты переноса данных.

sum = DQTest("Equal data sums in digits columns between objects", 1, 1)

Проверка равенства сумм числовых колонок. Сравнивает суммы значений в числовых колонках между исходной и целевой таблицами.

Характеристики:

  • 📝 Описание: «Equal data sums in digits columns between objects»

  • 🗃️ SQL запросов: 1

  • 🔄 Исходная таблица: ✅ Требуется

  • ⚡️ Скорость: Медленная (зависит от объема данных)

Использование: Для проверки целостности числовых данных.

Примечание

Является внутренним объектом DBHose и не предназначен внешнего использования.

Проверки с need_source_table=1 работают только если выполняется перенос таблицы.

Предупреждение

Проверка sum может быть очень медленной для больших таблиц с множеством числовых колонок. Используйте ее с осторожностью в production-средах.