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:
Description | Equivalent 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 содержит тип измененной единицы.
При конфигурации данного узла необходимо указать следующие поля:
- Папка кнопка с выбором расположения файла: File System - наблюдает за файлами на сервере. Distributed Document Storage - наблюдает за файлами в хранилище NATS.
- Путь к файлу (необходимо указать как минимум корневую директорию
/
) - Файлы - перечисление файлов через запятую. В случае, если файлы не указаны - следит за всеми файлами в директории
Снизу под узлом отображается его статус. Ниже представлены варианты статусов узла:
- желтый индикатор, надпись “connecting” - узел подключается к серверному приложению Appserver;
- зеленый индикатор, надпись “listening” - узел подключен к серверному приложению Appserver;
- красный индикатор, надпись “error” - ошибка Appserver;
- синий индикатор, надпись “received {имя файла}” - файл создан или изменен;
Узел 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 для запуска потока с помощью HTTP запроса извне. В отличие от узла HTTP IN, узел HTTP IN Auth создает уникальную ссылку для всего инстанса Data Boring за счет использования в URL уникального ключа инстанса пользователя. Без специальных настроек не требует авторизации.
Поля:
- GUID - генерируется автоматически
- Метод - HTTP метод
- Адрес - последняя часть URL запроса, например /flow/etl_process1. Адрес должен быть уникальным в рамках текущего пользователя
- Группы пользователей - если указаны, то будет определяться пользователь по сессии Luxms BI (по Cookie) и прверяться принадлежность пользоватяля выбранным группам пользователей
- Логин и пароль - если заполнены, то при обращении по данной ссылке в браузере будет отображаться WEB форма для ввода Логина и Пароля
Выводит:
payload
– дляGET
-запроса содержит объект с любыми параметрами строки запроса. В противном случае содержит тело HTTP-запроса.req
объект – объект HTTP-запроса. Этот объект содержит несколько свойств, которые предоставляют информацию о запросе:body
- тело входящего запроса. Формат будет зависеть от запроса.headers
- объект, содержащий заголовки HTTP-запроса.query
- объект, содержащий любые параметры строки запроса.params
- объект, содержащий любые параметры маршрута.cookies
- объект, содержащий куки запроса.files
- если включено в узле, объект, содержащий любые файлы, загруженные как частьPOST
-запроса.
Для запросов, которые содержат тело, такие как POST
или PUT
, содержимое запроса доступно в msg.payload
.
Если тип содержимого запроса может быть определен, тело будет преобразовано в любой подходящий тип. Например, application/json будет преобразован в объект JavaScript.
Этот узел не отправляет никакого ответа на запрос. Поток должен включать узел ответа HTTP Response для завершения запроса.
Узел Kafka потребитель сообщений в Data Boring
Этот узел можно использовать для работы с сообщениями Kafka. Узел-потребитель сообщений.
Потребитель тематических сообщений kafka, которые генерируются в сообщениях Data Boring.
Предоставляет типы базового и высокого уровня.
Поля:
- Имя - имя узла
- ID источника - ID источника данных Kafka
- Тема - название topic в Kafka
- Параметры - параметры Kafka Consumer. Описание можно посмотреть по ссылке
Узел 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
Использует 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 содержит следующие параметры для настройки:
- Имя - наименование узла
- 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 страницы). Для это необходимо воспользоваться узлом “Кубы обновлены” и поставить его в конце потока.
В настройках данного узла необходимо выбрать те кубы, уведомеления об обновлении которых необходимо отправить.