Правила ККД
Правила ККД предоставляют возможность описания правил для проверки файлов системы по заданным настройкам и позволяют описать правила, которые выполняются на стороне Polyflow при экстракте.
Для использований правил в системе правила должны быть созданы с провайдером типа DWH.
Правила ККД – это частный случай метаданных Polyflow. Проверки, реализуемые правилом ККД, описываются в метаданных Polyflow в виде JSON-файлов.
Правила ККД позволяют настроить проверку данных на предмет наличия в них различных типов ошибок. При этом задается контролируемая сущность (данные таблицы в базе данных), вспомогательные сущности и правила, которые используются при проверке (например, стандартные и пользовательские SQL-функции).
Результат выполнения ККД, со статусами проверок и описанием ошибок записывается в специализированные таблицы БД, которые затем можно отобразить в Документах.
Форма для работы с правилами ККД доступна через пункт меню «Polyflow» - «Правила ККД».
Через форму можно выбрать провайдер и просмотреть список правил.
В дополнительных параметрах ККД доступен просмотр атрибутов правил.

Создание правила ККД
1.Для создания правила контроля качества данных необходимо перейти в пункт «Правила ККД» в левом меню и на открывшейся форме выбрать провайдер.

2.После выбора провайдера необходимо нажать кнопку «Создать» для создания правила ККД.
3.На форме «Создание нового правила ККД» заполнить поля:

- Наименование: указать наименование правила ККД
- Расположение: например, path/to/qc/file.json
- Статус: выбрать из списка значение Активно
- Описание: описание правил в формате JSON в конструкторе
4.Нажать кнопку «Создать»
Созданный провайдер добавиться в список доступных правил для заданного провайдера.

Запустить созданное правило на провайдете типа DWH можно через Polyflow, в котором пользователь его и создал с помощью POLYHUB.
Правило созданное на провайдере типа JSON можно запустить через раздел Процессы.
Описание правила ККД

Ключевые элементы ККД:
- контроллеры (реализации отдельных типов контролей)
- поддерживаемые типы контроллеров:
ServersideCaseQuerier- строит SQL запросы из чекеров и выполняет их средствами СУБД, результаты контроля сохраняются в таблицы ошибок контроля с указанием столбца, строки и наименования сработавшего юнита, никаких действий по изменению проверяемых данных не производится, т.е. - значения не исправляются и не удаляются, не устанавливаются значения по умолчанию
- контекст - определяет сущность (таблицу), данные которой должны быть проверены ККД
- юниты (единицы контролей) - каждый юнит выполняет одну функцию контроля, указанную в чекере и поддерживает следующие атрибуты:
- наименование - однозначно идентифицирует соответствующий юнит (контроль) соответствующего ККД
- приоритет выполнения - в соответствии с ним контроли группируются при выполнении (с учетом возможностей группировки чекеров между собой)
- серьезность - влияет на порядок контроля
- состояние - включен или выключен
- действие - тег соответствующих данных (строки, записи), присваевыемый им при срабатывании контроля, на основании которого в дальнейшем данные должны быть обработаны (вне ККД), доступные варианты: отметить запись, отбросить запись
- чекеры (функции контролей) - на данный момент поддерживается следующий, пилотный, набор:
- "Значение не пустое" - Значение атрибута не может быть null, доступные параметры:
attribute- Контролируемый атрибут
- "Значение короче чем" - Значение атрибута должно быть короче чем указано в ограничении, доступные параметры:
attribute- Контролируемый атрибутlimit- Ограничение длины значения
- "Значение длиннее чем" - Значение атрибута должно быть длиннее чем указано в ограничении, доступные параметры:
attribute- Контролируемый атрибутlimit- Ограничение длины значения
- "Значение соответствует маске" - Значение атрибута должно соответствовать маске (регулярному выражению), доступные параметры:
attribute- Контролируемый атрибутpattern- Маска
- "Значение не соответствует маске" - Значение атрибута не должно соответствовать маске (регулярному выражению), доступные параметры:
attribute- Контролируемый атрибутpattern- Маска
- "Значение меньше чем" - Значение атрибута должно быть меньше чем указано в ограничении, доступные параметры:
attribute- Контролируемый атрибутlimit- Ограничение величины значения
- "Значение больше чем" - Значение атрибута должно быть больше чем указано в ограничении, доступные параметры:
attribute- Контролируемый атрибутlimit- Ограничение величины значения
- "Запрет дубликатов" - Одинаковых значений атрибута должно быть не больше, доступные параметры:
attribute- Контролируемый атрибутmax_times- Максимальное количество совпадающих значений
- "Запрет дубликатов по набору атрибутов" - Одинаковых комбинаций по переданному набору атрибутов должно быть не больше, доступные параметры:
attributes- Контролируемые атрибутыmax_times- Максимальное количество совпадающих комбинаций
- "Значение из справочника" - Значение атрибута должно присутствовать в справочнике, доступные параметры:
attribute- Контролируемый атрибутref_entity- Наименование сущности-справочникаref_attribute- Наименование атрибута справочникаcast_to- Привести атрибуты к типу
- "Значение не пустое" - Значение атрибута не может быть null, доступные параметры:
- поддерживаемые типы контроллеров: