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

01 Data Boring

Кратко о Luxms Data Boring

Luxms Data Boring — ELT/ETL инструмент визуального программирования класса dataflow programming. Предназначен для инженеров данных и аналитиков. Инструмент полезен для:

  • формирования слоя «горячих» данных рядом с хранилищем;
  • получения данных из разнородных источников и хранение их в одном месте;
  • запуска задач обработки данных по расписанию;
  • визуальной разработки ELT/ETL задач силами дата инженеров со знанием SQL без привлечения специалистов DevOps.

Инструмент оптимизирован под работу с Luxms BI, но может использоваться и самостоятельно для задач по обработке данных.

осторожно

DataBoring не предназначен для тяжёлых вычислений. При решении задач обработки больших данных требуется использовать подход ELT и использовать вычислительные возможности СУБД.

Список выполняемых функций

Наличие средств для автоматизации корпоративных задач ELT/ETL:

  • выгрузка данных из исходных систем-источников;
  • преобразование и обогащение данных;
  • валидация и очистка данных;
  • загрузка в различные системы-приемники (JDBC, Kafka, Redis и др.);
  • загрузка во внутреннее хранилище данных Luxms BI;
  • возможность настройки расписания запуска алгоритмов ELT/ETL в визуальном интерфейсе;
  • возможность просмотра ELT/ETL процессов в виде схемы в визуальном интерфейсе с отображением этапов и связей между ними;
  • возможность просмотра результатов в визуальном интерфейсе, полученных на каждом из этапов ELT/ETL процессов.

Поддержка ETL и ELT в DataBoring

ETL – это последовательный процесс извлечения (Extract), преобразования (Transform) и загрузки (Load) данных. Преобразование данных происходит после выгрузки их из источника на стороне DataBoring. Возможен запуск внешних скриптов для обработки данных. После преобразований, готовые данные загружаются в целевую систему хранения.

ELT – это последовательный процесс извлечения (Extract), загрузки (Load) и преобразования (Transform) данных. При этом DataBoring только запускает команды на преобразование данных в целевой системе, выступая в качестве оркестратора.

В Data Boring возможны оба варианта.

При работе с Luxms BI мы рекомендуем реализовывать ELT-процессы, т.к. операция преобразования данных требует высоких вычислительных мощностей. Таким образом, при преобразовании данных во внутреннем хранилище Luxms BI, вы сможете добиться высокой скорости обработки данных.

Во время работы в BI системе фоном идёт выполнение заданий на загрузку и обработку данных в инструменте Data Boring.

Источники данных

  • данные можно брать из JDBC-источника, например: PostgreSQL, ClickHouse, Oracle, Greenplum и др. При работе с платформой Luxms BI тип источника должен быть настроен в административной панели Luxms BI;
  • загружать/выгружать данные из/в файлы: csv, xml, json, xslx, xls, txt и др.;
  • HTTP сервисы: REST, SOAP и др.

Преобразование данных

При подходе ELT для преобразования данных используется вариант языка запросов, поддерживаемых источником. Чаще всего это язык SQL.

При подходе ETL используется встроенный в Data Boring язык программирования JavaScript и стандартные узлы для обработки данных.

Приёмники данных

Список систем-приёмников практически не ограничен.

Например:

  • JDBC (PostgreSQL, ClickHouse, Oracle, Greenplum и др.);
  • HTTP;
  • MQTT;
  • Kafka;
  • Redis;
  • TCP/UDP.

Используемые языки программирования

При настройке узлов в Data Boring, вы можете использовать язык SQL-запросов или JavaScript, в зависимости от назначения узла.

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

Также скрипты можно запускать на удалённых серверах с помощью SSH.

Окно редактора Luxms Data Boring

  • Вверху – «шапка». На ней находится кнопка «Развернуть», кнопка главного меню «Гамбургер» (с тремя полосками), а также меню пользователя
  • Слева – «палитра». В ней содержатся узлы, которые можно использовать в редакторе
  • Посередине – «холст», главная рабочая область. В нём создаются потоки
  • Справа – «боковая панель»

Палитра

Палитра

Палитра содержит все узлы, установленные в редактор и готовые к использованию.

Они сгруппированы в несколько категорий:

  • Общие;
  • Функция;
  • Сеть;
  • Последовательность;
  • Анализатор;
  • Хранилище;
  • Luxms BI;
  • Jupiter;
  • Redis;
  • Telegram.

В самом верху находятся категории «Общие», «Функция», но если у вас есть подпотоки, то самой верхней категорией будет «Подпотоки». Узлы в категории можно развернуть и свернуть – для этого щёлкните по ее «шапке».

В верхней части палитры есть поле для ввода текста, предназначенное для поиска нужных узлов.

Чтобы развернуть/свернуть все категории, воспользуйтесь двумя кнопками в самом низу «палитры» – они изображены в виде двойных стрелочек, направленных вниз и вверх.

Боковая панель

Боковая панель

Содержит несколько полезных инструментов редактора:

  • Вкладка «Информация» – содержит информацию об узле.
  • Вкладка «Справка» – содержит вспомогательную справку для узла.
  • Вкладка «Отладочные сообщения» – показывает сообщения, отправляемые узлами «отладка» (группа узлов «общие»).
  • Вкладка «Узлы конфигурации» – для управления конфигурационными узлами.
  • Вкладка «Контекстные данные» – показывает содержимое контекстов.

Чтобы открыть нужную вкладку, щёлкните по её иконке или выберите её в выпадающем меню, открываемое при щелчке по кнопке с перевёрнутым треугольником в правой верхней части боковой панели.

Размер боковой панели можно изменить, зажав левой кнопкой мыши на её левом краю, а затем потянув влево или вправо. Если потянуть её до максимума вправо, это спрячет боковую панель. Чтобы снова показать её, либо щёлкните по меню «Гамбургер» справа вверху, а затем на «Вид» > «Показывать боковую панель», либо просто нажмите горячие клавиши Ctrl + Пробел. Кроме того, убрать или развернуть боковую панель можно, кликнув по стрелке в середине её левой грани.

Холст и Потоки

Холст и Потоки

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

Холст выглядит как тетрадный лист в клеточку. Таких листов в одной системе может быть много. В верхней части холста находятся вкладки – по одной на каждый открытый поток и подпоток.

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

Инструменты для просмотра холста

Инструменты для просмотра холста

В нижней части холста находятся кнопки масштабирования – для приближения, отдаления, и возврата к масштабу по умолчанию

Кроме того, здесь есть кнопка, включающая навигатор по холсту.

Окно навигатора выполнено в виде уменьшенной версии всего холста, в котором прерывистой линией выделено место, которое мы видим в данный момент. Это место можно поменять и благодаря этому быстро переместиться к другой зоне холста. Кроме того, навигатор полезен, если вам нужно найти узлы, «потерявшиеся» за краями холста.

Настройка холста

Настройка холста

Холст можно настроить в меню «Параметры» во вкладке «Вид».

Добавление потока

Добавление потока

Чтобы добавить новый поток, щёлкните на кнопку с плюсиком в правой верхней части холста. Либо на меню со стрелкой в правой верхней части холста. Кроме того, это можно сделать, нажав на меню «Гамбургер» справа вверху, а затем на «Потоки» > «Добавить».

Редактирование свойств потока

Редактирование свойств потока

Чтобы открыть меню редактирования свойств потока «Изменить поток», сделайте двойной щелчок по его вкладке в верхней части холста. Кроме того, это можно сделать, нажав на меню «Гамбургер» справа вверху, а затем на «Потоки» > «Переименовать».

В этом меню можно задать название и описание потока. Описание потока показывается в боковой панели на вкладке «инфо». Для создания описания можно использовать язык разметки Markdown.

Переменные среды для потока

Также вы можете задать переменные среды для потока.

Удаление потока

Удалить поток можно несколькими способами. Во-первых, вы можете нажать на кнопку «Удалить» в меню «Изменить поток», а во-вторых, щёлкнуть на меню «Гамбургер» справа вверху, а затем на «Потоки» > «Удалить».

Узлы

Узлы

Узлы можно добавить на холст, перетянув их из «палитры»

Подробнее об узлах

Узлы соединяются друг с другом при помощи «связей», подключенных к портам. У узла может быть лишь один входной порт и несколько выходных портов. У порта может быть описание, которое появляется, если навести на него курсор мыши. Узлы могут сами задавать эти описания – например, узел «Переключатель» показывает правило, соответствующее выходному порту. Кроме того, вы сами можете задать описания для портов в меню редактирования узла.

У некоторых узлов внизу также показывается статусное сообщение и иконка. Они нужны для того, чтобы показать текущее состояние узла – к примеру, MQTT-узлы с помощью этих элементов показывают, подключены они или нет.

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

У некоторых узлов слева или справа есть кнопка, которая позволяет взаимодействовать с ним прямо в редакторе. Единственные стандартные узлы с кнопками – это «запуск» и «отладка».

Редактирование настроек узлов

Редактирование настроек узлов

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

Меню редактирования узла состоит из 3 секций – «Свойства», «Описание» и «Внешний вид».

В секции «Свойства» показываются элементы редактирования, соответствующие выбранному узлу (например, если это узел «функция», то в этой секции будет текстовый редактор для введения кода)

В «Описание» – текстовый редактор описания узла

Во «Внешний вид» задается иконка узла, названия для портов и то, нужно ли показывать название узла или нет.

Конфигурационные узлы

Конфигурационные узлы

Это специальный тип узлов, содержащий многократно используемые настройки, которые могут использовать несколько обычных узлов потока.

К примеру, узлы «mqtt in» и «mqtt out» используют конфигурационный узел «mqtt broker», чтобы воспользоваться одним и тем же соединением с MQTT-брокером.

Конфигурационные узлы добавляются через меню редактирования узла, которому нужен конфигурационный узел. В нём есть специальное меню, где вы можете выбрать либо конфигурационный узел нужного типа, либо добавить новый экземпляр.

Чтобы открыть это меню добавления (и редактирования) конфигурационного узла или добавления нового экземпляра, щёлкните на кнопку с иконкой карандаша справа от поля конфигурации.

В меню добавления конфигурационного узла нет секции «Внешний вид», поскольку у конфигурационного узла нет ни иконки, ни портов. Впрочем, две другие секции – «Свойства» и «Описание» – по-прежнему присутствуют.

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

Для управления всеми конфигурационными узлами можно использовать вкладку «Узлы конфигураций» в боковой панели.

Подпотоки

Создание подпотоков

Подпоток – это набор узлов, объединённых в один узел.

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

осторожно

Подпоток не может содержать экземпляр самого себя – ни напрямую, ни косвенно.

Список подпотоков

Когда вы создадите подпоток, он будет добавлен в палитру существующих узлов. Индивидуальные экземпляры подпотока могут быть добавлены на холст аналогично всем другим узлам.

Создание пустого подпотока

Создание пустого подпотока

Чтобы создать подпоток, щёлкните на меню «Гамбургер» справа вверху, а затем на «Подпотоки» > «Создать подпоток». Это создаст пустой подпоток и откроет его в холсте.

Объединение узлов в подпоток

Объединение узлов в подпоток

Вы также можете конвертировать несколько выбранных узлов в подпоток, щёлкнув на меню «Гамбургер» справа вверху, а затем на «Подпотоки» > «Выделение в подпоток». Выбранные узлы будут перемещены в новый подпоток и заменены на узел-экземпляр подпотока.

Создать подпоток при помощи этого метода можно лишь, если все входящие связи подключены только к одному узлу, т.к. узел создаваемого подпотока может иметь только одну входную точку.

Редактирование подпотока

Есть два способа открыть подпоток и начать редактировать его содержимое. Вам нужно либо дважды щёлкнуть мышкой на узел этого подпотока в «палитре», либо нажать на кнопку «Изменить шаблон подпотока» в меню редактирования узла подпотока.

В результате на холсте откроется новая вкладка для этого подпотока. В отличие от вкладок для обычных потоков, у вкладок для подпотоков справа есть крестик, с помощью которого их можно закрыть (спрятать).

Вход и выходы

Вход и выходы подпотока

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

Cвойства подпотока

Cвойства подпотока

В верхней панели также есть кнопка «редактировать свойства», которая открывает меню редактирования свойств подпотока. Здесь тоже можно задать название и описание подпотока – как и у обычных потоков. Кроме того, здесь можно задать, в какой категории «палитры» будет находиться этот подпоток. Вы можете либо задать одну из уже имеющихся категорий, либо создать новую.

Удаление подпотока

Удаление подпотока

В верхней панели инструментов также есть кнопка «Удалить подпоток», с помощью которой можно удалить подпоток и все его экземпляры.

Импорт и экспорт потоков

Импорт и экспорт потоков

Потоки можно импортировать в Luxms Data Boring и экспортировать из него при помощи JSON-кода, что заметно упрощает обмен потоками между пользователями.

Чтобы импортировать/экспортировать поток, откройте меню импорта/экспорта. Для этого щёлкните по меню «Гамбургер» справа вверху, а затем на «Импорт» или «Экспорт».

Окно импорта

Окно импорта потока

Вставьте JSON-код в поле посередине и щёлкните на кнопку «Импорт».
Кнопка «Импорт» будет активна только, если в окно будет вставлен корректный JSON-код.
Здесь также можно задать, куда импортировать поток – в текущий поток или создать новый поток.

Окно экспорта

Окно экспорта потока

Здесь находится JSON-код, который можно скопировать и поделиться с другими.

Здесь также можно выбрать, что именно нужно экспортировать – выделенные узлы, текущий поток или все потоки сразу.

Кроме того, здесь можно задать формат экспортируемого JSON-кода – его можно сделать либо компактным, либо упорядоченным. В компактном формате JSON-код будет преобразован в одну строчку без пробелов. В упорядоченном формате JSON-код примет удобочитаемый вид – со строчками, имеющими правильные отступы.

Вкладка «Информация»

Вкладка «Информация»

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

Если никакого узла не выбрано, в этой вкладке показывается описание текущего потока (его можно поменять в меню редактирования свойств потока). Чтобы открыть его, щёлкните на меню «Гамбургер» справа вверху, а затем на «Потоки» > «Переименовать».

Вкладка «Справка»

Вкладка «Справка»

Эта вкладка содержит вспомогательную справку для узла.

Вкладка «Отладочные сообщения»

Вкладка «Отладочные сообщения»

На этой вкладке показываются сообщения, отправляемые узлами «отладка» в потоке, а также некоторые сообщения от редактора.

По умолчанию вкладка «Отладочные сообщения» показывает все отладочные сообщения. Но их можно отфильтровать – для этого щёлкните на кнопку «все узлы», в результате чего откроется меню фильтрации отладочных сообщений. Это меню поделено на три части:

  • «Все узлы» – будут показаны все сообщения.
  • «Выбранные узлы» – здесь можно выбрать узлы «отладка» из списка всех доступных узлов.
  • «Текущий поток» – будут показаны сообщения только от тех узлов, что находятся в потоке, в данный момент открытом в холсте.
к сведению

Вкладка «Отладка» может показать только 100 последних сообщений. Если сообщения отфильтрованы, то скрытые сообщения тоже будут идти в зачет этих 100 сообщений. Если в потоке есть узлы «отладка», выдающие мусорную информацию, их лучше не отфильтровывать, а просто отключить, щёлкнув на их кнопку в холсте.

Кроме того, содержимое вкладки «Отладка» можно в любой момент очистить, нажав на кнопку с иконкой мусорной корзины.

Если нажать на кнопку с иконкой монитора, которая находится в правой нижней части вкладки «Отладка», это откроет вкладку «Отладка» в новом отдельном окне браузера.