Перейти к основному содержимому

08 Группа “LuxmsBI”. Описание узлов

Узел Планировщик задач

Узел Планировщик задач в Палитре
Узел Планировщик задач на Холсте

Данный узел позволяет планировать запуск выполнения задач, используя полный синтаксис crontab. Не имеет входов. На выходе будет подан стартовый сигнал на следующий в указанный период времени и с заданным интервалом и промежутком.

Принимает:

  • Pattern строка – период запуска задается согласно синтаксису CRON:
    ┌───────────── second (0–59) (optional)
    │ ┌───────────── minute (0–59)
    │ │ ┌───────────── hour (0–23)
    │ │ │ ┌───────────── day of the month (1–31)
    │ │ │ │ ┌───────────── month (1–12)
    │ │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday; 7 is also Sunday on some systems)
    │ │ │ │ │ │
    │ │ │ │ │ │
    │ │ │ │ │ │
    *  *  *  *  *  *

  • You may use multiples values separated by comma:

1,2,4,5 * * * *
  • You may also define a range of values:
1-5 * * * *
  • Step values can be used in conjunction with ranges, following a range with ‘/’ and a number. e.g: 1-10/2 that is the same as 2,4,6,8,10. Steps are also permitted after an asterisk, so if you want to say “every two minutes”, just use */2:
*/2 * * * *

Examples:

DescriptionEquivalent to
Run once a year at midnight of 1 January* 0 0 1 1 *
Run once a month at midnight of the first day of the month* 0 0 1 * *
Run once a week at midnight on Sunday* 0 0 * * 0
Run once a day at midnight* 0 0 * * *
Run once an hour at the beginning of the hour* 0 * * * *

Узел Следить за изменениями файлов (watch files)

Узел Следить за изменениями файлов в Палитре
Узел Следить за изменениями файлов в Холсте

Наблюдает за изменениями файла в директории.

Вы можете ввести список разделенных запятыми файлов.

Полное имя фактически измененного файла помещается в msg.payload.file, msg.payload.status содержит тип измененной единицы.

При конфигурации данного узла необходимо указать следующие поля:

watchfile поля узла
  • Папка кнопка с выбором расположения файла: File System - наблюдает за файлами на сервере. Distributed Document Storage - наблюдает за файлами в хранилище NATS.
  • Путь к файлу (необходимо указать как минимум корневую директорию /)
  • Файлы - перечисление файлов через запятую. В случае, если файлы не указаны - следит за всеми файлами в директории

Снизу под узлом отображается его статус. Ниже представлены варианты статусов узла:

  • желтый индикатор, надпись “connecting” - узел подключается к серверному приложению Appserver;
  • зеленый индикатор, надпись “listening” - узел подключен к серверному приложению Appserver;
  • красный индикатор, надпись “error” - ошибка Appserver;
  • синий индикатор, надпись “received {имя файла}” - файл создан или изменен;

Узел SQL источник

Узел SQL источник в Палитре
Узел SQL источник на Холсте

Узел запроса данных с произвольным sql-запросом. Данный узел выполняет запрос в заданном Datasource с помощью RSocket и с указанными параметрами, статус выполнения запроса будет отображен в статусе узла

Принимает:

  • msg.payload.query – строку sql-запроса, если не установлен в самом узле.

Выводит:

  • Результат выполнения sql-запроса сохраняется в объекте msg.

Параметры:

  • Имя строка - наименование узла на холсте.
  • Источник данных дропдаун – заданный источник данных, для которого будет выполнен запрос.
  • Размер чанка число - результаты запроса к бд собираются в группы указанного размера.

Причечание. Результаты выдаются массивом в окно отладчика, иначе выдаются в payload по одномую

Editor:

  • Строка - тело запроса который должен быть выполнен при инициализации узла.

Пример запроса:


select 1 as num, 'one' as text_num

Результат запроса, выведенный в окно отладки:


{
"_msgid": "ad90d997b8ae0ac4",
"payload": {
"num": 1,
"text_num": "one"
},
"topic": "",
"end_of_stream": true
}

Узел HTTP IN Auth

Узел HTTP IN AUTH

Создает конечную точку HTTP для запуска потока с помощью HTTP запроса извне. В отличие от узла HTTP IN, узел HTTP IN Auth создает уникальную ссылку для всего инстанса Data Boring за счет использования в URL уникального ключа инстанса пользователя. Без специальных настроек не требует авторизации.

Поля:

  • GUID - генерируется автоматически
  • Метод - HTTP метод
  • Адрес - последняя часть URL запроса, например /flow/etl_process1. Адрес должен быть уникальным в рамках текущего пользователя
  • Группы пользователей - если указаны, то будет определяться пользователь по сессии Luxms BI (по Cookie) и прверяться принадлежность пользоватяля выбранным группам пользователей
  • Логин и пароль - если заполнены, то при обращении по данной ссылке в браузере будет отображаться WEB форма для ввода Логина и Пароля

Выводит:

  • payload – для GET-запроса содержит объект с любыми параметрами строки запроса. В противном случае содержит тело HTTP-запроса.

  • req объект – объект HTTP-запроса. Этот объект содержит несколько свойств, которые предоставляют информацию о запросе:

    1. body - тело входящего запроса. Формат будет зависеть от запроса.
    2. headers - объект, содержащий заголовки HTTP-запроса.
    3. query - объект, содержащий любые параметры строки запроса.
    4. params - объект, содержащий любые параметры маршрута.
    5. cookies - объект, содержащий куки запроса.
    6. files - если включено в узле, объект, содержащий любые файлы, загруженные как часть POST-запроса.

Для запросов, которые содержат тело, такие как POST или PUT, содержимое запроса доступно в msg.payload.

Если тип содержимого запроса может быть определен, тело будет преобразовано в любой подходящий тип. Например, application/json будет преобразован в объект JavaScript.

к сведению

Этот узел не отправляет никакого ответа на запрос. Поток должен включать узел ответа HTTP Response для завершения запроса.

Узел Kafka потребитель сообщений в Data Boring

Узел Kafka потребитель сообщений в Data Boring в Палитре
Узел Kafka потребитель сообщений в Data Boring на Холсте

Этот узел можно использовать для работы с сообщениями Kafka. Узел-потребитель сообщений.

Потребитель тематических сообщений kafka, которые генерируются в сообщениях Data Boring.
Предоставляет типы базового и высокого уровня.

Поля:

  • Имя - имя узла
  • ID источника - ID источника данных Kafka
  • Тема - название topic в Kafka
  • Параметры - параметры Kafka Consumer. Описание можно посмотреть по ссылке

Узел Kafka производитель сообщений в Data Boring

Узел Kafka производитель сообщений в Data Boring в Палитре
Узел Kafka производитель сообщений в Data Boring на Холсте

Этот узел можно использовать для работы с сообщениями Kafka. Узел-производитель сообщений.

Преобразует сообщение из Data Boring в тематические сообщения Kafka. Предоставляет типы базового и высокого уровня.

Поля:

  • Имя - имя узла
  • ID источника - ID источника данных Kafka
  • Тема - название topic в Kafka
  • Параметры - параметры Kafka Consumer. Описание можно посмотреть по ссылке

Узел Выполнить произвольный запрос на сервере

Узел Выполнить произвольный запрос на сервере в Палитре
Узел Выполнить произвольный запрос на сервере на Холсте

Выполнение произвольного sql-запроса в заданном источнике данных с указанными параметрами

Принимает:

  • msg.payload.query – строку sql-запроса, если не установлен в самом узле.

Выводит:

  • Результат выполнения запроса или выборки, заданной пользователем.

Параметры:

  • Имя строка – наименование узла на холсте.
  • Источник данных строка – заданный источник данных, для которого будет выполнен запрос.
  • Ошибку в результат чекбокс - если задан, то код ошибки сохраняется в объект msg. Узел в таком случае отображает сообщение warn желтой меткой под узлом и поток оброботки не прерывается.
  • Editor строка – тело запроса, который должен быть выполнен при инициализации узла.

Пример запроса:

INSERT INTO d_date
(dt, plan, fakt)
SELECT t.day::date as dt, random() * 100 + 44 AS plan, random() * 100 AS fakt
FROM generate_series(timestamp '2022-05-01'
, timestamp '2022-10-30'
, interval '1 day') AS t(day)
order by t.day::date;

Результат запроса, выведенный в окно отладки:

{
"_msgid": "b0312aba0ab8f088",
"payload": {
"result": 183,
"counts": [
183
],
"time": 9
},
"topic": ""
}

Узел SAP RFC

Узел SAP RFC в Палитре
Узел SAP RFC на Холсте

Использует RFC протокол для соединения с системами SAP и получения данных.

Принимает:

  • connectorID (строка) – имя источника данных
  • functionName (строка) - название удаленного метода, который будет вызван из SAP.
  • datagateUrl (строка) - адрес datagate в формате http://host:port/path (например, http://localhost:8200/sap). Необязательный параметр.
  • parameters (JSON) - параметры запроса, отправятся в поле body.

Пример запроса:

{
"BUSINESSPARTNER" : 8
}

Выводит:

Результат выполнения запроса в формате JSON.

Узел SOAP

Узел SOAP в Палитре
Узел SOAP на Холсте

Узел SOAP позволяет пользователям выполнять SOAP-запрос.

Узел SOAP содержит следующие параметры для настройки:

  • Имя - наименование узла
  • WSDL - ссылка на WSDL определение SOAP сервиса
  • Method - вызыыввемый SOAP метод
  • msg.payload - тело SOAP запроса
  • msg.headers - заголовки SOAP запроса
  • Auth - способ аутентификации:
  • None - без аутентификация
  • Basic auth - Basic аутентификация с логином и паролем
  • Client certificate - требует заполнения сертификата
  • WS-Security - требует заполнения клиентского ключа
  • Bearer Token - требует указания токена

Узел Перенос данных

Узел Перенос данных в палитре
Узел Перенос данных на Холсте

Типы источников данных:

  • SQL - результат выполнения SELECT-запроса к БД
  • XLS - содержимое Excel-файла. Поддерживаются форматы xls и xlsx
  • CSV - содержимое CSV-файла
  • DBF - содержимое DBF-файла
  • QVD - содержимое QVD-файла
  • Avro - содержимое Avro-файла
  • Parquet - содержимое Parquet-файла

Типы получателей данных:

  • SQL - данные сохраняются в БД (в одну или несколько таблиц)
  • CSV - данные сохраняются в файл в формате CSV

Общие входные параметры:

  • Имя (name) Название узла в потоке
  • Повторы (retryCount) Общее количество попыток выполнения
  • Задержка \(мс\) (retryDelay) Задержка между попытками в мс
  • Тип источника (sourceType) Доступные типы SQL, XLS, CSV, DBF, QVD, Avro, Parquet
  • Тип получателя (destinationType) Доступные типы SQL, CSV

Входные параметры для SQL-источника:

  • ИД соединения (sourceSqlConnIdent) ИД настроенного источника данных. Например, luxmsbi или ch
  • Запрос (sourceSqlQuery) Текст SELECT-запроса для получения данных

Входные параметры для XLS-источника:

  • Путь к файлу-источнику (sourceXlsFilePath) Путь к Excel-файлу, из которого будут переноситься данные
  • Номер строки заголовка (sourceXlsHeaderRow) Если указано, определяет номера строк на листах Excel-файла, в которых находятся заголовки
  • Номер первой строки с данными (sourceXlsFirstDataRow) Если указано, определяет номера строк на листах Excel-файла, с которых начинаются данные
  • Список номеров страниц \(1,3...\) (sourceXlsSheetNumbers) Если указано, определяет номера загружаемых листов из Excel-файла
  • Потоковая обработка (sourceXlsStreamProcessing) Если включено, файл-источник загружается потоковым обработчиком. Подходит для больших файлов, где есть только данные и не надо вычислять формулы и т.п. Доступна только для файлов в формате xlsx
  • Удалить файл по завершении (sourceXlsDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для CSV-источника:

  • Кодировка файла (sourceCsvFileEncoding) Доступные кодировки - utf-8, cp866, cp1251
  • Путь к файлу-источнику (sourceCsvFilePath) Путь к CSV-файлу, из которого будут переноситься данные
  • CSV с заголовками (sourceCsvWithNames) Если включено, первая строка должна содержать заголовки
  • CSV разделитель (sourceCsvDelimiter) Доступные разделители - tab, pipe, comma, semicolon
  • Сжатый (sourceCsvZipped) Если включено, файл-источник должен быть сжат. Формат сжатия - gzip
  • Удалить файл по завершении (sourceCsvDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для DBF-источника:

  • Кодировка файла (sourceDbfFileEncoding) Доступные кодировки - utf-8, cp866, cp1251
  • Путь к файлу-источнику (sourceDbfFilePath) Путь к DBF-файлу, из которого будут переноситься данные
  • Удалить файл по завершении (sourceDbfDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для QVD-источника:

  • Путь к файлу-источнику (sourceQvdFilePath) Путь к QVD-файлу, из которого будут переноситься данные
  • Удалить файл по завершении (sourceQvdDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для Avro-источника:

  • Путь к файлу-источнику (sourceAvroFilePath) Путь к Avro-файлу, из которого будут переноситься данные
  • Удалить файл по завершении (sourceAvroDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для Parquet-источника:

  • Путь к файлу-источнику (sourceParquetFilePath) Путь к Parquet-файлу, из которого будут переноситься данные
  • Удалить файл по завершении (sourceParquetDropFileOnComplete) Если включено, файл-источник будет удалён после переноса данных

Входные параметры для SQL-получателя:

  • ИД соединения (destinationSqlConnIdent) ИД настроенного источника данных. Например, luxmsbi или ch
  • Имя схемы (destinationSqlSchemaName) Имя целевой схемы в БД. Если не указано, будет использоваться имя custom
  • Имя таблицы (destinationSqlTableName) Имя целевой таблицы в БД
  • Режим переноса (destinationSqlMode) Доступные режимы - truncate, append, drop
  • Преобразовывать типы (destinationSqlTryToCast) Если включено, колонки строкового типа будут, при возможности, преобразованы в другие типы
  • Размер чанка (destinationSqlChunkSize) Задаёт количество строк в чанке, которыми будут переноситься данные

Входные параметры для CSV-получателя:

  • CSV с заголовками (destinationCsvWithNames) Если включено, первой строкой будет добавлена строка с заголовками
  • CSV разделитель (destinationCsvDelimiter) Доступные разделители - tab, pipe, comma, semicolon
  • Сжатый (destinationCsvZipped) Если включено, файл-получатель будет сжат. Формат сжатия - gzip

Выходные параметры для SQL-получателя:

Выходное сообщение в поле payload содержит объект:

  • msg.payload.schema - имя схемы в БД, в которой находятся таблицы с полученными данными
  • msg.payload.tables - список имён таблиц в БД, в которые переносились данные

Выходные параметры для CSV-получателя:

  • msg.payload.sink - URI получателя
  • msg.payload.count - Количество строк с данными

CSV-разделители:

РазделительОписание
tabСимвол табуляции
pipeВертикальная черта
commaЗапятая
semicolonТочка с запятой

Режимы переноса данных:

РежимОписание
truncateПредварительно удалить содержимое целевой таблицы
appendДобавить к содержимому целевой таблицы
dropПредварительно полностью удалить целевую таблицу
к сведению

В версии 9.0 Luxms Data Вoring появилось распределенное документное хранилище, работающее по протоколу NATS. Это позволяет удобно передавать сообщения между различными приложениями.
Если схема не указана при указании пути к файлу, то по умолчанию приложение будет работать с хранилищем NATS, что может привести к нежелательным последствиям для Luxms Data Вoring.
По умолчанию NATS использует схему dds:// перед путем к файлу. Если необходимо работать с локальными данными, всегда явно указывайте схему.
Например: file:///tmp/excel_one.xlsx.

Узел Ждать всех

Узел Ждать всех в Палитре
Узел Ждать всех на Холсте

Узел ждёт входящих сообщений от всех присоединённых на вход узлов, собирает их в массив msg.payload и затем передает этот массив для дальнейшей обработки или передачи.

к сведению

Количество ожидаемых сообщений должно соответствовать количеству присоединенных связей

Узел Отправить письмо

Узел Отправить письмо в Палитре
Узел Отправить письмо на Холсте

Узел позволяет отправить электронное письмо со вложением.

Принимает:

  • from - адрес отправителя.
  • fromName - имя отправителя.
  • subject - тема письма.
  • to - адрес получателя.
  • cc - адреса получателей, которым отправятся копии письма, указываются через запятую.
  • body - текстовое содержимое письма.
  • attachment - файлы, приложенные к письму.
к сведению

Для работы узла Отправить письмо необходимо настроить работу с почтовым сервером в конфигурационном файле application.properties сервиса luxmsbi-appserver на каждом сервере. Необходимые настройки описаны по данной ссылке.

Узел SSH EXEC

Узел Отправить письмо в Палитре
Узел Отправить письмо на Холсте

Узел для работы с SSH соединениями. Позволяет установить SSH соединение и выполнить команду на удаленном сервере.

Принимает:

  • Command - команда, которая будет выполнена в терминале на удаленном сервере.
  • Host - Хост удаленного сервера.
  • Port - порт на удаленном сервере, который прослушивается для SSH подключения.
  • MethodAuth - Метод авторизация по паролю или по приватному ключу - password или private key.
  • Username - имя пользователя на удаленном сервере.
  • Password - пароль пользователя на удаленном сервере.
  • TimeOut - максимально время ожидания ответа при попытке подключения или выполнения команды.
  • Keys - приватный ключ для авторизации на удаленном сервере с сохранением исходного форматирования, не передается в msg.
  • Passphrase - парольная фраза, которая была указана при генерации ключа.

Узел Кубы обновлены

После обновления данных в тех таблицах, которые используются в том или ином кубе, может потребоваться автоматически обновить данные на дэшбордах Luxms BI без участия пользователей (без перегрузки WEB страницы). Для это необходимо воспользоваться узлом “Кубы обновлены” и поставить его в конце потока.
В настройках данного узла необходимо выбрать те кубы, уведомеления об обновлении которых необходимо отправить.