Что нового в Loginom 6.4

9 ноября 2020
1 комментарий

Крупное обновление аналитической платформы Loginom. Реализован функционал мониторинга пользователей и пакетов. Добавлена поддержка Python. Оптимизированы существующие алгоритмы. Появился новый обработчик и визуализатор, а также улучшены существующие.

В обновление вошло большое количество изменений и новых возможностей. Ниже приведен список наиболее важных, на наш взгляд, изменений:

  1. Поддержка Python.
  2. Формирование выходного набора данных из кода в компоненте JavaScript.
  3. Компонент Экспорт в Хранилище данных, а также механизм наследования для компонента Импорт из Хранилища данных.
  4. Обработчик Дубликаты и противоречия.
  5. Задание весов и калибровка моделей Логистической регрессии.
  6. Мониторинг активных пользователей и занятых пакетов.

Поддержка языков программирования

Python

В Loginom 6.4 появилась возможность встраивать в сценарий расчеты, сделанные при помощи кода на языке программирования Python. В качестве среды исполнения используется CPython, а работа с компонентом Python в сценарии идентична работе с компонентом JavaScript. Поддерживается преобразование данных в структуру Pandas DataFrame и обратно. Доступны для импорта популярные библиотеки, используемые при анализе данных на Python: NumPy, Pandas, Scikit-learn и другие.

Использование скриптов на языке Python

Использование скриптов на языке Python

В Loginom не содержится инструментов разработки, аналогичных PyCharm и другим специализированным продуктам. Основной кейс использования Python — встраивание расчетов, реализованных на Python в существующий сценарий анализа данных.

В связи с тем, что компонент выполняет код Python на сервере, на его использование накладывается ряд ограничений:

  1. Нельзя выполнять команды для работы с GUI (graphical user interface, графическим пользовательским интерфейсом).
  2. Код, вызываемый в компоненте Python выполняется в один поток, а одновременно может выполняться только один узел Python. Узел Python, активированный в процессе выполнения другого узла Python, будет ожидать завершения работы первого узла, даже если не является зависимым от него.
  3. Не поддерживаются модули пакета multiprocessing, используемые для реализации параллельной работы через создание нескольких процессов, а также зависимые от них сторонние пакеты.
  4. Если в процессе выполнения кода Python возникнут критические ошибки, то приложение может аварийно завершится. В связи с этим рекомендуется использовать для выполнения ранее отлаженный код Python.
  5. При конвертации набора данных в структуру Pandas DataFrame используется весь обрабатываемый набор данных, что в некоторых случаях может приводить к существенному замедлению работы сценариев.

Также есть несколько особенностей, касающихся безопасности. Работа Python, в отличие от JavaScript, не ограничивается средой исполнения, а выполняемый код имеет полный доступ к операционной системе и сетевым протоколам. В связи с этим, администратор должен явно предоставить возможность использования на сервере компонента Python. Весь код выполняется на сервере с правами пользователя операционной системы, от имени которого запущен Loginom Server.

Активация возможности выполнения Python

Активация возможности выполнения Python

Для работы компонента Python на сервере должен быть установлен Python версии 3.4 или выше, а также все пакеты, которые планируется использовать в работе. Более подробная информация о работе компонента доступна в соответствующем разделе справки, а также всегда можно задать вопрос в Loginom Q&A или обратиться в службу технической поддержки.

JavaScript

Существенно расширены возможности использования компонента JavaScript, а также исправлено несколько ошибок, которые могли возникать ранее.

Появилась возможность задавать из кода структуру выходного набора данных. Такое поведение может потребоваться, если структура данных заранее не известна и формируется в процессе выполнения узла. Например, при разборе ответа от веб-сервиса. Для формирования набора выходных столбцов могут использоваться следующие методы:

  • AssignColumns — создание столбцов выходного набора из коллекции имен/описаний столбцов;
  • AddColumn — добавление столбца в конец списка столбцов выходного набора;
  • InsertColumn — вставка столбца по заданному индексу в выходной набор;
  • DeleteColumn — удаление столбца по имени или индексу;
  • ClearColumns — очистка списка столбцов.
Структуру выходных полей можно задавать непосредственно из кода

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

Исправлены ошибки, связанные с некорректной индексацией строк, в результате которых при выполнении кода JavaScript могла возникать ошибка «Номер строки 0 вне диапазона [0; -1]» или некорректно отображаться набор данных в окне предварительного просмотра.

Хранилище данных

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

Древовидная структура при импорте из Хранилища данных

Древовидная структура при импорте из Хранилища данных

Добавлена возможность наследования для Импорта из Хранилища данных, что может быть полезно в случае, если в нескольких местах используются подключения к одному и тому же Хранилищу данных, но с различными параметрами настройки. В мастерах подключения к Хранилищу данных на СУБД MS SQL и Oracle добавлена возможность указать имя схемы, в которой находятся метаданные и данные ХД.

Появилась возможность экспорта в Хранилище данных. Теперь в Loginom можно выполнить весь цикл ETL операций, связанных с Хранилищами данных.

Настройка экспорта в Хранилище данных

Настройка экспорта в Хранилище данных

Дубликаты и противоречия

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

Визуализатор «Дуликаты и противоречия»

Визуализатор «Дуликаты и противоречия»

Логистическая регрессия

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

  1. Задание весов для отдельных записей, используемых при обучении модели позволяет получить более точную модель в том случае, если требуется учитывать значимость отдельной записи в наборе данных. Например, такой подход может использоваться при построении модели оценки рисков в кредитовании, когда в качестве веса может быть задана сумма кредита.
  2. Калибровка модели при помощи поправки на априорную вероятность позволяет скорректировать искажения, которые могут вноситься на этапе построения модели при балансировке классов. Пропорции «событий» и «не событий» могут задаваться автоматически на основе данных обучающего или тестового множества, а также задаваться вручную в мастере настройки или интерактивно в визуализаторе Качество бинарной классификации.
Задание весов для записей при настройке Логистической регрессии

Задание весов для записей при настройке Логистической регрессии

Настройка поправки на соотношение событий к не-событиям

Настройка поправки на соотношение событий к не-событиям

REST-запрос

Добавлена поддержка методов PUT, DELETE и PATCH в мастерах настройки подключения REST-запроса. Ранее были доступны только методы POST и GET. Такие методы могли требоваться для работы с некоторыми веб-сервисами.

Ранее никак не учитывался http-статус полученного от сервера ответа, и его значение не возвращалось ни в одном из выходных портов. В выходном наборе «Дополнительные данные» добавлен столбец, содержащий код ответа веб-сервера. Столбец содержит целочисленные значения с именем HttpStatusCode и меткой «Код состояния HTTP».

Loginom Server

В некоторых случаях внутри сценария могло потребоваться значение идентификатора запроса, полученного при выполнении узла сценария через Loginom Integrator. Ранее не было возможности получить и использовать этот идентификатор. Теперь в узел «Переменных сценария» в порт «Переменные сессии» добавлена переменная RequestId. Ее значение соответствует либо пропущенному значению null по умолчанию, либо значению идентификатора запроса при выполнении узла сценария через Loginom Integrator.

Администрирование

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

Для решения этих задач в раздел Администрирование добавлен «Диспетчер», который может использоваться для просмотра открытых сессий и пакетов, мониторинга и управления их активностью. Также в этом разделе можно принудительно остановить выполнение сценария или сбросить сессию пользователя.

Панель Диспетчер раздела Администрирования

Панель Диспетчер раздела Администрирование

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

Работа с базами данных

В мастере настройки подключения добавлена проверка строки подключения и обязательных параметров. Добавлена поддержка PostgreSQL 12.

Исправлен пакетный экспорт в базу данных Firebird строк длиной 9 и более символов в поля с типом BLOB SUB_TYPE TEXT. Исправлена ошибка «столбец "value" имеет тип money, а выражение - double precision», возникавшая при попытке экспорта вещественных чисел в поле money базы данных PostgreSQL. Исправлена ошибка «столбец "value" имеет тип time with time zone, а выражение - timestamp without time zone», возникавшая при попытке экспорта значения типа Дата/Время в поле time with timezone базы данных PostgreSQL.

Куб

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

При фильтрации по уникальным значениям в Кубе снято ограничение в отображении не более 10000 уникальных элементов. Аналогичное ограничение снято для Фильтра строк. Ранее это могло доставлять неудобство, если производилась настройка фильтров по большому количеству записей, например, SKU.

Несколько менее существенных, но важных улучшений пользовательского интерфейса:

  • добавлена возможность изменять цвет серий на графике в диаграмме;
  • добавлено контекстное меню в диаграмме;
  • добавлена возможность группового управления видимостью серий в диаграмме: «Показать все серии», «Скрыть все серии», «Инвертировать серии».

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

Конечные классы

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

Сравнение распределения фактических долей интервалов с теми, которые были при обучении

Сравнение распределения фактических долей интервалов с теми, которые были при обучении

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

Пакетное выполнение

Для запуска узла в режиме Пакетного выполнения требуется задать для него имя, при этом узел не обязательно должен быть опубликован. Ранее это можно было сделать только следующим образом: в окне настройки модификатора доступа выбираем статус «Опубликованный», затем задаем имя узла, затем возвращаем прежний статус. Теперь добавлена возможность задать имя для узла модели с модификатором доступа «Открытый». Для сброса имени узла достаточно оставить поле пустым (возможно только для модификатора доступа «Открытый»).

Прочие изменения

Добавлена анимированная иконка статуса процессов при наличии активных процессов.

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

Добавлено автоматизированное end-to-end тестирование, что позволит существенно повысить надежность приложения. Подробнее об изменениях можно узнать из выступления Георгия Киселева на Loginom Days 2020.

Ранее в процессе вырезания/вставки узлов могла возникнуть блокировка узлов, в результате чего могли происходить ошибки. Механизм блокировки был сделан более надежным.

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

Исправлены названия показателей моделей в отчетах по Линейной и Логистической регрессиям, добавлены недостающие показатели в Отчет по линейной регрессии, дополнены названия методов и факторов отбора моделей.

В обработчике Заполнение пропусков добавлена возможность заменять пропущенные числовые значения на 0, а также оптимизирована работа обработчика, а из списка допустимых методов для Логического типа данных убран вариант Не задано.

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

В окне быстрого просмотра удалена нижняя панель с единственной кнопкой «Закрыть», вместо этого окно может быть закрыто кликом по любому месту вне окна быстрого просмотра или по нажатию на «×» (кнопку закрытия окна).

Добавлена группа компонентов «Программирование» (включает в себя Python и JavaScript).

Исправлены обнаруженные ранее ошибки, повышена стабильность работы приложения, оптимизировано потребление оперативной памяти.

#loginom#release notes#6.4

Смотрите также