Что нового в Loginom 7.0

24 ноября 2022
0 комментариев

Масштабное обновление аналитической платформы Loginom. Loginom стал кроссплатформенным — серверные редакции Standard и Enterprise доступны для операционных систем Linux и Windows. Появилась интеграция с брокером сообщений Kafka. Новые возможности появились в обработчике JavaScript, при импорте данных из файлов, в визуализаторе OLAP-куб и в Отчетах. Улучшена и оптимизирована работа с базами данных. Повышена производительность.

При подготовке релиза основные усилия были направлены на миграцию Loginom на операционную систему Linux. Изменения коснулись преимущественно технологического стека платформы и связаны с системными вызовами и библиотеками, сторонними библиотеками, работой со строками и различными интеграциями. Вместе с тем 80% серверной части было перенесено с предыдущей версии, а клиентская часть не претерпела значительных изменений, поэтому сценарии, подготовленные в Loginom под Windows, будут работать и под Linux, в некоторых случаях потребуется лишь перенастройка узлов.

Ниже приведено описание наиболее важных изменений.

Ограничения Loginom под Linux

  1. Отсутствует интеграция с 1С:Предприятие через COM-соединение, т.к. COM-сервер работает только под Windows. Для интеграции с 1С:Предприятие можно использовать альтернативные механизмы, например, HTTP-протокол.
  2. К MS Excel нельзя подключиться как к базе данных из-за отсутствия драйверов под Linux. Поддерживается только формат xlsx (MS Excel 2007 и выше).
  3. Нет встроенной интеграции с MS Access из-за отсутствия open source драйверов.
  4. Отсутствует экспорт в Tableau.
  5. Отсутствует обработчик Выполнение программы, который используется для запуска внешних Windows-программ.

Опциональные возможности Loginom под Linux

Под Linux доступно логирование в journald. На странице Администрирование Loginom предусмотрен соответствующие настраиваемый параметр. Для работы метода логирования необходима библиотека systemd.so.0 (она гарантировано имеется, если в дистрибутиве Linux используется система инициализации systemd).

Интеграция с брокером сообщений Kafka

Kafka Apache — популярная распределенная система обмена сообщениями между серверными приложениями в режиме реального времени. Благодаря высокой пропускной способности, масштабируемости и отказоустойчивости применяется в крупных проектах с большими объемами данных.

В Loginom Enterprise появилась возможность импортировать и экспортировать сообщения в очередь Kafka. Интеграция с Kafka построена по тому же принципу, что и интеграция с базами данных. На первом этапе настраивается подключение, а затем в сценарии используются узлы на основе компонентов импорт или экспорт Kafka.

Улучшение в работе с базами данных

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

  • SCRAM-SHA-256 Authentication и SCRAM-SHA-256-PLUS Authentication для PostgreSQL;
  • SHA-256 authentication для MySQL 8 при подключении без использования клиента;
  • подключения к Oracle 18c и старше без использования клиента;
  • клиента Microsoft OLE DB Driver for SQL Server для подключения к MS SQL Server.

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

Добавлена возможность установки встроенного клиента Firebird.

Обновленный мастер настройки импорта из базы данных

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

  • можно выбрать режим представления мастера «Выбор таблицы» или «SQL-запрос»;
  • в режиме SQL-запроса добавлен блок со списком переменных;
  • таблицы, поля и переменные можно перетаскивать в редактор SQL кода drag&drop;
  • значение переменной может быть вставлено в редактор SQL кода как параметр (по умолчанию) или как макроподстановка;
  • в режиме SQL-запрос в дереве объектов БД доступен функционал фильтрации полей (при развернутом дереве);
  • появилась возможность задать имя таблицы через переменные;
  • ускорена загрузка объектов БД в дерево объектов.

Обновленный мастер настройки импорта из базы данных

Импорт из файлов

Реализована возможность в импорте из файлов (txt, csv, XML, Excel) читать данные предварительно выполнив http-запрос. Для этого в мастере настройки импорта из файла вместо имени файла можно указать URL. Поддерживается HTTP Basic Authentication, т.е. в URL можно передать логин и пароль. При импорте форматов txt, csv, xml для предпросмотра или предположения формата скачивается только тот объем данных, который необходим. В случае с xlsx форматом происходит скачивание всего файла в память, поэтому стоит обращать внимание на размер таких файлов.

Работа с Веб-сервисами

Обработчики REST и SOAP-запрос функционируют без изменений. Однако при переносе сценариев между Loginom под Windows и Linux, в некоторых случаях потребуется перенастройка подключений REST и SOAP-сервис. В версии под Linux не поддерживается аутентификация при помощи предоставления сертификата клиента. В Windows он выбирался из хранилища личных сертификатов. При работе под Linux необходимо задать файл сертификата, ключа и пароля.

В мастере настройки подключения REST-сервис изменилось значение по умолчанию для параметра «Допустимый Content-Type ответа». Вместо */* установлено application/json.

Для пакетов, созданных до версии 6.4.0, в порту «Дополнительные данные» узла REST-запрос изменится выходной набор данных. Ранее значение в столбце «Код завершения» равнялось 0 не зависимо от Кода состояния HTTP. Теперь если Код состояния HTTP >= 400, то Код завершения будет равен 6.

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

В обработчик JavaScript добавлен File Storage API, позволяющий безопасно и без настройки прав выполнять все файловые операции:

  • Получение списка файлов.
  • Создание, удаление, перемещение, переименование папок.
  • Удаление, перемещение, переименование файлов.
  • Проверка корректности пути.

Появилась возможность запускать Python в отдельном процессе, в том числе и параллельно. В редакциях под Windows возможен запуск как в рамках процесса Loginom, так и в отдельном процессе, а под Linux поддерживается только вариант работы в отдельном процессе.

В Python при отправке таблицы pandas в output_table для меток столбцов не производится транслитерация в функции prepare_compatible_table. Это актуально, если у столбцов pandas таблицы метки записаны кириллицей.

Улучшения в компонентах обработки

  1. В редакторах «Дата/время» при вводе данных с клавиатуры можно указать только дату без времени. Ранее требовалось обязательно задать время.
  2. В обработчике Подмодель появился необязательный входной табличный порт, что делает проектирование сценариев более гибким. В мастере настройки Подмодели добавлен флаг необязательности портов. Редактирование флага возможно только для табличного порта. При сворачивании узлов в Подмодель флаг необязательности устанавливается только у входных портов типа Таблица, к которым внутри Подмодели подключены необязательные порты.
  3. В Калькуляторе в режиме JavaScript доступны функций преобразования base64-закодированных строк в строки двоичных данных и обратно.
  4. В обработчике Сортировка добавлена опция кэширования данных.
  5. В Редактировании выбросов метод обработки «Заменять заданным значением» стал доступен для всех типов данных. Ранее его можно было использовать только для строкового и логического типов.
  6. В XSD-схему запроса и ответа разрешено вносить изменения, совместимые с ранее настроенными списками выбранных элементов. Такие изменения теперь не приводят к ошибке «XSD-схема на входе не соответствует настройкам обработчика» при активации узлов. Изменения касаются всех узлов, в процессе которых происходит формирование или разбор xml документа по схеме: Импорт XML файлаЭкспорт в XMLИзвлечение XMLФормирование XML, SOAP-запрос.

Удобство использования и повышение информативности

  • Логин и пароль для входа в Loginom теперь можно передать в URL.
  • Появилась возможность добавлять заметки на workflow. Теперь можно документировать сценарий непосредственно при его проектировании, добавляя в произвольном месте блоки текста. Блоки заметок имеют предустановленный набор цветовых стилей.

Блоки заметок

  • В визуализаторе Куб появилась возможность настраивать измерения в отдельном окне. Мастер вызывается кнопкой с панели инструментов Куба и через соответствующий пункт контекстного меню. Ранее после добавления каждого измерения Куб перестраивался, и при больших объемах данных настройка Куба занимала много времени. Теперь настраивать Куб стало удобнее и быстрее.

Настройка измерений Куба в отдельном окне

  • На странице Отчеты появилась возможность создавать в группах подгруппы любой степени вложенности.
  • На странице Переменные пакета стала доступна панель Навигация.
  • В контекстное меню менеджера файлового хранилища был добавлен пункт «Копировать полный путь». При нажатии этого пункта в буфер обмена копируются имена выделенных файлов/папок в том порядке, в котором они представлены в таблице. Копирование в буфер обмена возможно только при подключении по протоколу https.
  • Во всех контекстных меню приложения действие по умолчанию выделено жирным шрифтом.
  • Изменился текст сообщения, которое выводится во время длительной подготовки визуализатора (например, при входе в визуализатор Статистика или Куб, когда в момент активации выполняются вычисления). Теперь вместо «Узел заблокирован» выводится «Загрузка».
  • В Инспекторе свойств убрали иконки для узлов дерева. Это позволило более полно отображать названия свойств в условиях ограниченной ширины окна Инспектора свойств.

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

В свойствах пакета появилась опция «Сравнивать строковые уникальные значения бинарно». Сравнение строк изменится после закрытия пакета и всех зависимых от него открытых пакетов. При изменении настройки «Сравнивать строковые уникальные значения бинарно», может потребоваться переобучение обученных узлов. Действие опции распространяется на компоненты:

а также на визуализаторы:

Значение опции «Сравнивать строковые уникальные значения бинарно» выводится в Инспекторе свойств.

В мастера настройки обработчиков, алгоритмы которых используют генерацию псевдослучайных чисел, добавлена возможность установить Random Seed. Значение Random Seed можно задать через переменную, сгенирировать или установить флаг «Всегда случайно». Доступна команда копирования значения в буфер обмена.

Изменения в Loginom Integrator

Изменился файл конфигурации Loginom Integrator:

  • Имя файла web.config заменено на Integrator.dll.config.
  • Удалены элементы appSettingssystem.websystem.serviceModel и system.webServer вместе со всеми дочерними элементами.
  • Изменился формат элемента configSections:

    было:

      <configSections>
            <section name="log" type="DeductorIntegrationServer.Core.LogConfigurationSection"/>
             <section name="loginom" type="DeductorIntegrationServer.Core.DeductorConfigurationSection"/>
      </configSections>
    

    стало:

      <configSections>
            <section name="log" type="Integrator.Core.LogConfigurationSection, IntegratorCore"/>
            <section name="loginom" type="Integrator.Core.LoginomConfigurationSection, IntegratorCore"/>
      </configSections>
    
  • У элемента loginom добавлен необязательный атрибут urlPathPrefix, значение которого используется как префикс к адресу всех конечных точек REST и SOAP. Значение этого атрибута по умолчанию — пустая строка. Например, если Loginom Integrator развёрнут по адресу: http://localhost/lgi, и атрибут urlPathPrefix не указан, то help-страница для REST доступна по адресу: http://localhost/lgi/rest/help. Если urlPathPrefix="abc", то адрес меняется на: http://localhost/lgi/abc/rest/helpЧтобы в новом Интеграторе использовались те же адреса, что и в старом, нужно указать urlPathPrefix="Service.svc".

  • У элемента loginom добавлен необязательный атрибут swaggerUI, который может принимать значение true или false. Атрибут включает/отключает генерацию страницы openapi/index.html, которая реализует доступ к опубликованным сервисам через Swagger UI.

Добавлена возможность задать расположение файла конфигурации Loginom Integrator. Расположение папки, из которой загружаются конфигурационные файлы Integrator.dll.config и appsettings.json, определяется по следующим правилам:

  • если в командной строке указан параметр configdir, то используется указанная папка (имя параметра можно указать в любом регистре);
  • если параметр не указан, и в текущей папке ($PWD) есть файл Integrator.dll.config, то используется текущая папка;
  • в противном случае используется папка, в которой находится файл Integrator.dll.

Если в указанной папке отсутствует файл Integrator.dll.config, то Integrator не запускается, а пользователь получает сообщение об ошибке.

Для каждого опубликованного пакета генерируется отдельный wsdl-файл (ранее описание SOAP-сервиса включало содержимое всех опубликованных пакетов). Добавлена генерация корневого wsdl-документа, который ссылается на все остальные wsdl-документы. По умолчанию корневой wsdl генерируется по адресу /soap?wsdl. Если в конфигурационном файле Loginom Integrator задать значение атрибута urlPathPrefix="Service.svc", то дополнительно генерируется wsdl по адресу /Service.svc?wsdl, который использовался в старом Интеграторе.

В Loginom Integrator появилась поддержка OpenAPI и Swagger UI. Теперь можно выполнять запросы для тестирования API на странице: http://host/lgi/openapi/index.html.

Добавлена возможность подключаться к Loginom Server по Unix domain socket. Для этого в конфигурационном файле Loginom Integrator у элемента server необходимо добавить атрибут unixsocket, значение которого совпадает со значением параметра «Unix socket», установленного в параметрах подключения на странице «Администрирование» в Loginom Server. Подключение по Unix domain socket при использовании docker контейнеров избавляет от необходимости создавать виртуальную сеть между контейнерами. Кроме того, производительность выше при подключении по UDS как на Linux, так и на Windows.

Добавлена обработка заголовков X-Forwarded-Proto и X-Forwarded-Host. Эти заголовки влияют на генерируемые URL-ы в OpenAPI документах и на help-странице для REST-сервиса.

Изменился формат ответных SOAP-сообщений для старых пакетов, созданных до версии 6.3.0. Для старых пакетов будет использован тот же формат сообщений, что и для новых. При конвертации пользователь получит соответствующее сообщение.

Появилась возможность вывода логов Loginom Integrator в консоль. В секции log файла конфигурации добавлен опциональный элемент console, в котором настраивается уровень логирования в консоль. По умолчанию используется такой же формат сообщений, что и при логировании в файл. Но, если задана переменная окружения DOTNET_RUNNING_IN_CONTAINER со значением true или 1 (т.е. Integrator запущен из Docker контейнера), то в логируемых сообщениях не пишется текущая дата/время. Логи с уровнем Warn и выше пишутся в stderr, а остальные — в stdout. Если логи перенаправляются из консоли контейнера в journald хоста, то многострочные сообщения разбиваются на несколько (каждая строка получается отдельным сообщением в journald).

В Loginom Integrator изменен формат сообщений об ошибке. Для REST ответов реализован формат, соответствующий RFC 7807. При ошибках с кодом 400 в REST-сервисе возвращается JSON с описанием ошибки. Для SOAP-сервисов внесены некоторые изменения в структуру элементов.

Производительность

За счет перехода с UTF16 на UTF-8 увеличилась скорость импорта и экспорта csv-файлов, в некоторых случаях в 1.3 раза.

С переходом на новые библиотеки стали быстрее обрабатываться xml-файлы. Например, при конвертации пакета из старой версии в новую прирост производительности составляет до 1.3 раза.

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

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

Обратите внимание!

  1. В Loginom 7 изменился механизм сравнения и конвертации строк. Вместо встроенных функций Windows используется библиотека ICU — International Components for Unicode, которая обеспечивает одинаковые результаты работы со строками на разных платформах. В сценариях, подготовленных в более ранних версиях Loginom, может измениться порядок сортировки строк.
  2. Изменен алгоритм генерации псевдослучайных чисел. В связи с этим Сэмплинг и Разбиение на множества могут генерировать другое разбиение. В обработчике Заполнение пропусков иначе работает метод «Заполнение случайными значениями». В Квантовании по-другому работает метод разбиения «Плитка» с типом обработки совпадающих наблюдений «Назначить случайно».
  3. Не поддерживается браузер Internet Explorer.
  4. Не поддерживаются 32-разрядные операционные системы семейства Windows. Минимальные требования: Windows 10, Windows Server 2019.
В настоящее время доступны серверные редакции Standard и Enterprise для операционной системы Linux. Другие редакции будут размещены позднее, следите за новостями на нашем сайте и в Telegram.
#release notes#7.0#loginom

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