Использование интерфейса WorkFlow

ModusETL развивается в концепции low-code, что подразумевает возможность настраивать ETL-операции в визуальных интерфейсах и без необходимости написания кода. Появившийся в релизе ETLv.1.5 (май 2021) интерфейс WorkFlow - является альтернативой настройке шагов сценария в виде таблицы, для которого возможно только последовательное выполнение шагов; в WorkFlow появилась возможность параллельного выполнения нескольких веток сценария, что обеспечивает большую производительность.

Интерфейс WorkFlow дает возможность проектировать сценарии обработки данных

  • размещая шаги (обработчики) на холсте, связывая их друг с другом для передачи между шагами данных или потока управления;
  • настраивая для шага правила обработки данных в визуальном мастере - сейчас возможно использовать десятки готовых мастеров (шаблонов) для выборки, группировки, соединения, объединения, дополнения, отбора данных и других ETL-операций.
  • настраивая в нужных точках выполнения сценария сбор и сохранение статистики для профилирования и проверки качества данных (шаблон [Просмотр]).

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

Далее описан интерфейс WorkFlow - правила для настройки и использования.

Описание интерфейса WorkFlow

Для открытия интерфейса в Сценарии обработки данных выбрать кнопку [WorkFlow] как показано на Рисунок 1.

Рисунок 1. Открытие интерефейса WorkFlow из Сценария обработки данных

Рисунок 1. Открытие интерефейса WorkFlow из Сценария обработки данных

Для настройки процесса обработки данных необходимо разместить шаги на холсте, выбирая шаблоны обработчика из списка шаблонов (см. Рисунок 2 1,2 ) и связывая шаги друг с другом.

Список с кратким описанием назначения и основных функций шаблонов/мастеров обработки данных см. этот раздел.

Шаги связываются стрелкой, которая означает передачу управления иили передачу данных (см.Рисунок 2, 3 ).

Для шага возможно изменить Наименование в текстовом поле над шагом (см.Рисунок 2, 4).

Рисунок 2. Настройка шагов обработки данных в интерфейсе WorkFlow

Рисунок 2. Настройка шагов обработки данных в интерфейсе WorkFlow

Для настройки параметров шага – необходимо запустить мастер, воспользовавшись контроллом [Редактировать шаг] (см.Рисунок 2, 5 ). Настройка с использованием шаблонов мастеров описана в этом разделе, пример - см. Рисунок 3.

Рисунок 3. Настройка шага обработки данных на примере шаблона [Группировка]

Рисунок 3. Настройка шага обработки данных на примере шаблона [Группировка]

Как правило, в мастере настройки имеются закладки [Выбора источника], [Настройки полей запроса] и просмотра [Результата]. На закладке [Результат] отображается Текст запроса и Результат запроса см. Рисунок 4.

Рисунок 4. Шаблон шага - закладка с результатом и текстом запроса

Рисунок 4. Шаблон шага - закладка с результатом и текстом запроса

Элемент управления [Просмотр] (см.Рисунок 2, 6 ) предназначен для просмотра образца (сэмпла) данных (см.Рисунок 4). Если при открытии отобразится инфо Нет данных, то для выполнения сценария до текущего шага и получения сэмпла данных необходимо нажать [Выполнить до текущего цикла] Также возможно изменить количество отображаемых строк, установив параметр “Размер выборки”.

Рисунок 5. Дополнительные параметры шага

Рисунок 5. Дополнительные параметры шага

Элемент управления для шага [Выполнить до текущего шага] (см.Рисунок 2, 7 ) предназначен для запуска выполнения сценария до текущего шага – при выполнении отображается прогресс и лог выполнения (см.Рисунок 4).

Рисунок 6. Запуск выполнения сценария до текущего шага, прогресс и лог выполнения

Рисунок 6. Запуск выполнения сценария до текущего шага, прогресс и лог выполнения

Шаблон [Просмотр].В сценарии возможно настраивать в нужных точках сбор и сохранение статистики для профилирования и качества данных, используя специальный шаблон [Просмотр] - см. Рисунок 7. В этом шаблоне настраиваются:

  • опция Сохранять статистику по полям таблицы (по умолчанию – Да) и параметр Количество строк образца данных (по умолчанию – 100 строк);
  • из таблицы со списком полей шага, к которому присоединен шаблон [Просмотр], возможно выбирать поля для сохранения статистики и проверки качества данных -выбранные поля отмечаются признаком соответствующего цвета в колонке слева
    • вкладка [Статистика] предназначена для сбора и сохранения количества значений для каждого из выбранных полей ;
Рисунок 7. Шаблон [Просмотр] для настройки сохранения статистики по данным

Рисунок 7. Шаблон [Просмотр] для настройки сохранения статистики по данным

  • вкладка [Качество данных] - для настройки полей и правил проверки Качества данных. Для одного поля возможно настроить одну или несколько проверок, выбирая тип (см. Рисунок 8, 1 ) и настраивая условие ( 2 ) проверки.
Рисунок 8. Шаблон [Просмотр] – настройка проверки Качества данных для полей

Рисунок 8. Шаблон [Просмотр] – настройка проверки Качества данных для полей

Статистика и образец данных собираются и сохраняются при запуске сценария на выполнение ; последние сохраненные значения можно посмотреть, нажав на элемент управления для шаблона [Просмотр] - см. Рисунок 9 и Рисунок 10.

Рисунок 9. Шаблон [Просмотр] – просмотр статистики по полям

Рисунок 9. Шаблон [Просмотр] – просмотр статистики по полям

Рисунок 10. Шаблон [Просмотр] – просмотр образца данных

Рисунок 10. Шаблон [Просмотр] – просмотр образца данных

Другой способ просмотра статистики по данным возможен при позиционировании курсора на шаблоне [Просмотр] - при этом информация отобразится на гистограммах на закладке [ИНФО] в левой панели интерфейса WorkFlow – см. Рисунок 11.

Рисунок 11. Просмотр статистики для шаблона[Просмотр] в панеле [ИНФО]

Рисунок 11. Просмотр статистики для шаблона[Просмотр] в панеле [ИНФО]

Запуск на выполнение. После формирования диаграммы WorkFlow с шагами обработки данных и связями шагов, настройки точек сбора статистики по данным, источниками и приемниками данных - необходимо сохранитьСценарий обработки данных и запустить на выполнение , воспользовавшись кнопками в верхней части WorkFlow [Сохранить], [Запустить], [Авторасстановка] .

После запуска в интерфейсе (см. Рисунок 12, S ), будет отображаться ход выполнения на прогресс-баре ( P ), выполненные шаги выделяются зелеными рамками и в таблице Лог выполнения выводится инфо о времени и длительности выполнения шагов ( L ).

Рисунок 12. Прогресс выполнения сценария

Рисунок 12. Прогресс выполнения сценария

После завершения выполнения сценария возможно анализировать Лог выполнения, для возможной оптимизации наиболее длительных шагов. В случае ошибки - описание ошибки будет выведено в колонке Ошибка лога выполнения.

Список шаблонов шагов сценария

Для реализации концепции low-code - возможности настраивать ETL-операции пользователем без специальной подготовки, в удобных визуальных интерфейсах и без написания кода в Modus ETL доступны мастера визуальной настройки обработки данных – шаблоны шагов сценария. Ниже - список используемых шаблонов. Этот список будет пополнятся и расширятся в новых релизах продукта:

Шаблон шага сценария Описание функционала Есть в Work Flow?
Произвольный код
Произвольный код SQL Для ввода кода на языке SQL Да
Произвольный код 1С Для ввода кода на языке 1С Да
Произвольный запрос 1С Для ввода на языке 1С-запросов
Данные
Источник Присоединяется ко входу шага-обработчика данных. Предназначен для выбора таблицы-источника. Нажав на элемент управления возможно просмотреть сэмпл данных Да
Приемник Присоединяется к выходу обработчика данных. Предназначен для формирования таблицы с набором полей из входящего потока и сохранения данных в таблицу. Элемент управления - для получения и просмотра сэмпла данных из таблицы.
Если установить признак , то приемник может быть источником для последующих шагов сценария
Да
Просмотр Используется для сохранения и просмотра статистики по данным. см.5.1-Шаблон [Просмотр] и Рисунок 7 Да
Примитивы обработки данных Да
Произвольная выборка данных Для настройки выборки данных из одной или нескольких таблиц с функциями выбора полей, соединения таблиц, отбора и сортировки данных.
Возможно применять функции преобразования к полям или добавлять новые поля, используя интерфейс “Конструктор выражений”.
На основании полей с типом Дата и Дата-время возможно добавлять поля с частями даты (год, квартал, месяц, номер недели, день недели и т.д.),воспользоавшись интерфейсом [Части даты]
Да
Группировка Группирует данные, аналогично SQL-функции GROUP BY. Настраиваются: (1)поля группировки и (2)поля агрегатов с выбором функций: sum, min, max, avg, count.
Пример настройки см. Рисунок 3
Да
Соединение
(дополнение данных)
Дополняет данные основной таблицы/потока полями из одной или нескольких таблиц. Соединяет таблицы, аналогично SQL-функции JOIN. Настраиваются -условия соединения таблиц и -поля из таблиц с возможностью применения функций Да
Объединение Объединяет данные таблиц аналогично SQL-функции UNION. Настраиваются соответствия полей основной и добавляемых таблиц Да
Отбор Для отбора/фильтрации данных по условиям. Настраиваются: Поле – Условие – Значения.
Набор условий зависит от типа поля (Cтрока,Число, Дата) и соответствует SQL-операторам: =,≠,>,<,≥,≤, LIKE, IN(список),not IN(список) NULL, IS NOT NULL
Да
Маппинг полей 2х таблиц Копирует данные из одной таблицы в другую по настроенным правилам соответсвия (маппинга) полей Да
Unpivot Транспонирует выбранные столбцы таблицы
При этом заголовки выбранных столбцов переносятся в значения строк, а их значения - в один столбец.
Да
Pivot Для формирования сводной таблицы –
Настраиваются:
-поля группировки - значения выводятся в строках;
-поля для транспонирования строк в столбцы;
-поля значений с функцией агрегации
Да
Временная таблица Предназначен для создания временных таблиц, используемых для передачи данных между шагами сценария Да
Создание таблицы БД Используется для создания таблиц в базе данных хранилища Да
Топ N Для выбора строк по условиям. Настраивается: -размер выборки - N строк,
-поля и направление сортировки
SQL эквивалент: top N / limit N с условием Order by
Да
Выгрузка таблицы в файл Настраиваются параметры для выгрузки данных в файл аналогично описанным в [“Экспорт данных из таблицы SQL”](../14.2 Дополнительные возможности часть 2/index.md#2-экспорт-данных-из-таблицы-sql) Да
НСИ - дополнение данных
Справочник НСИ Эталонный справочник модуля НСИ для дополнения или обновления первичных данных Да
Маппинг НСИ Таблица соответствия между сущностями: справочниками, категориями/группами Да
НСИ. Дополнение из эталонного справочника Дополнение таблицы значениями из эталонного справочника НСИ. Настраиваются -связь таблиц – поля и условия; -поле(я) для дополнения таблицы Да
НСИ. Обновление из эталонного справочника Замена значений в таблице значениями из эталонного справочника НСИ. Настраиваются:
-связь таблиц – поля и условия
-поле(я) для обновления таблицы
Да
НСИ. Дополнение из маппинга Дополнение таблицы значениями из маппинга НСИ. Настраиваются связь таблиц – поля и условия связывания; -поле(я) для дополнения исходной таблицы Да
Python
Кластеризация Кластеризация используется для группировки объектов (наблюдений, событий) на основе данных, описывающих свойства объектов.
Объекты внутри группы (кластера) должны быть похожими друг на друга и отличаться от других, которые вошли в другие кластеры. Возможно выбирать алгоритмы KMean, DbScan.
Да
Линейная регрессия Регрессия используется для решения задач Data Mining, таких, как прогнозирование и численное предсказание. Требуется предварительное обучение на обучающей выборке. Возможно выбрать из пяти линейных (Linear regression, Ridge, Lasso, Elastic Net, Lars) и двух древовидных (Decision tree, Random forest regressor) моделей Да
Сервисные операции
Настройка замены пустых значений Заменяет значения по образцу Да
Выгрузка таблицы в файл Настраиваются параметры для выгрузки данных в файл аналогично описанным в [этой статье](../14.2 Дополнительные возможности часть 2/index.md) Да
Настройка индексов таблицы Создает индексы в таблице для ускорения поиска Да
Мастер настройки расчета фасетов таблицы Расчет статистических данных таблицы (фасетов), котрые используется для быстрого знакомства с данными и профилирования данных Да
Очистка хранилища от бэкапов Удаления архивных копий таблиц, которые копируются-сохраняются при обновлении данных в целевой таблице “Составом выгрузки” в режиме “Скопировать и добавить”. Такие архивные таблицы имеют общий признак: суффикс “_ГГГГММДД_Время” в наименовании Да
Копирование бинарного файла в BASE64 Файлы, подходящие под заданную маску, кодируются по алгоритму BASE64 и сохраняются в текстовый выходной CSV-файл Да
Настройка удаления пробелов/спецсимволов из полей таблицы Очистка строковых полей от «плохих» символов Да
Запуск принудительного обновления куба Настраиваются параметры интеграция с сервером «Полиматики» для обновления кубов по расписанию Да
Сложный сценарий
Вставка результата запроса в таблицу Записывает в выходную таблицу Да
Смена имен таблиц Изменяет имя таблицы по образцу Да
Создание временной таблицы Создает временную таблицу Да
Верификация данных
Начало процесса верификации Осуществляется запись в специальный журнал процессов о начале процесса верификации Нет
Заменить значение Настраивается замена значения при обнаружении ошибки Нет
Записать в лог ошибок Настраивается запись в лог. ошибок описания ошибки при ее обнаружении Нет
Завершение процесса верификации Осуществляется запись в специальный журнал процессов об окончании процесса верификации, количестве обработанных строк и количестве выявленных ошибок Нет
Мэппинг данных с заменой Осуществляет проверку и замену значений поля таблицы в соответствии с предварительно настроенным справочником эталонных значений Нет
Мэппинг предварительный анализ Осуществляет проверку в соответствии с предварительно настроенным справочником эталонных значений. Нет
Проверка символьной строки Осуществляется проверка значений поля на соответствие предопределенным правилам, напр., проверка корректности СНИЛС, ИНН и т.п. Нет
Проверка на NULL Осуществляется поиск незаполненных (NULL) значений в поле таблицы для символьных, числовых или календарных типов данных. Нет
Мэппинг данных с дополнением Осуществляет проверку и дополнение таблицы новым полем в соответствии с предварительно настроенным справочником эталонных значений Нет

Перенос данных

Шаблон шага “Перенос данных” находится в группе шагов “Данные” и предназначен для переноса данных между двумя различными базами внутри одного сценария. Например, перенос данных в базу данных витрин ClickHouse из базы данных Ядра на базе PostgreSQL.

Для работы шага обязательно должен быть установлен агент выполнения сценария (Информация/Основные настройки/Агент для выполнения сценариев).

Настройка мастера

  1. На закладке “Источник и приемник” указываются база данных и имя таблицы источника, а также база данных и таблица модели приемника. Также указывается режим записи данных в таблицу приемника. По гиперссылке “Настроить таблицу” открывается форма настройки таблицы модели приемника.
  2. На закладке “Связь полей” в левой части отражается информация о входящем потоке, а в правой устанавливается соответствие и режим записи данных. Доступны команды автосопоставления и очистки всех сопоставлений.

Перенос данных логируется документом “Перенос данных” (Логи - Переносы данных).

Типы шаблонов и рекомендации по использованию шаблонов

Шаблоны из группы «Произвольный код» используются для ввода кода на языке 1С/SQL.

Шаблоны из группы «Данные» предназначены не для обработки данных, а для настройки источников, приемников и правил сбора статистики по данным.

Шаблоны из группы «Примитивы обработки данных» используются для настройки выборок из таблиц, обработки-трансформации данных определенным способом.

Шаблоны из группы «НСИ-дополнение данных» используются для операций стандартизации и категоризации данных с использованием объектов НСИ – эталонных справочников и маппингов.

Шаблоны из группы «Python» используются для решения задач DataMining сегментации объектов, прогнозирования, предсказания и т.д., с использованием моделей продвинутой аналитики и библиотек Python.

Шаблоны из группы «Сервисные операции» используются для выгрузки таблиц в файлы, настройки индексов, замены значений по определенным правилам, очистки хранилища от архивных копий таблиц, кодирования файла в BASE64 и других сервисных операций.

Шаблоны из группы «Верификация данных» используются для настройки логирования процесса верификации (проверки на установленные условия), настройки правил верификации и обработки выявленных ошибок.

Шаблоны из группы «Сложные сценарий» используются для оптимизации работы с таблицами.