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-средах.