Правила ККД

Правила ККД предоставляют возможность описания правил для проверки файлов системы по заданным настройкам и позволяют описать правила, которые выполняются на стороне 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 - Привести атрибуты к типу