Этим летом вышел новый релиз платформы данных InterSystems IRIS Data Platform 2021.1.
Основные «темы» в этом релизе связаны с расширением доступности платформы для разработчиков на различных технологиях и новыми возможностями по анализу данных.
Расширяется выбор доступных языков разработки, как серверных, так и клиентских, а также новые компоненты для аналитики больших объемов данных. Но, обо всём по порядку.
InterSystems IRIS 2021.1 является релизом с расширенной поддержкой, который выпускается один раз в год. Он включает в себя все изменения и улучшения промежуточных релизов (2020.2, 2020.3, 2020.4), выходивших в виде docker-контейнеров, а также новый функционал.
Полную версию описания новых возможностей на английском можно прочитать на этой странице, а далее приведем краткий обзор на русском.
Аналитика
Новый компонент InterSystems IRIS Adaptive Analytics
Вместе с платформой InterSystems IRIS 2021.1 можно использовать дополнительный продукт InterSystems IRIS Adaptive Analytics. Он обеспечивает создание единой виртуальной модели данных на основе данных InterSystems IRIS для различных инструментов бизнес-аналитики (BI), таких как Microsoft Excel, Microsoft Power BI, Tableau, и инструментов искусственного интеллекта (AI). Продукт ускоряет выполнение аналитических запросов по этой модели за счет того, что в фоновом режиме создаются и поддерживаются в актуальном состоянии независимые промежуточные структуры данных.
Оконные функции
В SQL появилась поддержка оконных функций, которые позволяют делать сложные вычисления в рамках одного запроса на отдельных диапазонах рядов. Синтаксис работы с такими функциями выглядит следующим образом:
window-function() OVER (
[ PARTITION BY partfield ]
[ ORDER BY orderfield ]
[ ROWS framestart ] | [ ROWS BETWEEN framestart AND frameend ]
)
Ускорение запросов во встроенном BI
Значимые улучшения были сделаны во встроенном BI-компоненте в InterSystems IRIS Data Platform за счет изменений в «движке» MDX-запросов.
Новые возможности для разработки приложений
Интеграция с R и Python
В 2021.1 расширяется линейка языков программирования доступных для использования совместно с InterSystems IRIS Data Platform. К уже имеющимся Java Gateway и .NET Gateway добавляются шлюзы для R и Python. Код на этих языках может вызываться в отдельном процессе или на внешнем сервере. Python Gateway поддерживает виртуальные среды, тем самым давая возможность использовать, например, разные версии Python на каждом отдельном Gateway.
Обновления в External Language Servers (ELS)
Помимо R и Python Gateway, улучшена работа ELS в целом. Для всех внешних сред поддерживается автоматический запуск шлюза при первом использовании и безопасное повторное использование установленных соединений. Таким образом, внешнее приложение может прозрачным образом обратиться к InterSystems IRIS за данными и вернуть исполнение обратно, без необходимости явно создавать новое соединение.
.NET Gateway
.NET Gateway теперь поддерживает .NET Core 2.1
Внешние хранимые процедуры в SQL
Для SQL сделали расширение в виде поддержки внешних хранимых процедур. Это дает возможность вызывать фрагменты кода, написанные на Java, .NET, Python, прямо из SQL-запросов. Внешний код вызывается с использованием соответствующего Gateway и имеет следующий синтаксис для создания:
CREATE FUNCTION name(parameter_list) [characteristics]
LANGUAGE { JAVA | PYTHON | DOTNET }
EXTERNAL NAME external-stored-procedure
Подробнее можно почитать тут.
Пользовательские функции агрегирования
Необходимую логику агрегации можно теперь реализовывать в пользовательских функциях агрегирования, поддержка которых также появилась в текущем релизе. В SQL работа с ними происходит при помощи CREATE AGGREGATE и DROP AGGREGATE
Улучшения в клиентских API
В этом релизе добавлен полностью «нативный» клиентский SDK для Python работающий на всех платформах, поддерживающих Python.
Также все доступные Native API теперь поддерживают работу с $list и $order.
В ODBC-драйвере расширена поддержка T-SQL, а в XEP добавлена поддержка отложенного индексирования (deferred indexing).
IntegratedML
В InterSystems IRIS 2021.1 получил широкую доступность (впервые появившийся в версии 2020.3) новый функционал IntegratedML. Простой и интуитивно-понятный SQL-синтаксис, помогает аналитикам и разработчикам использовать машинное обучение. IntegratedML позволяет обучать и использовать модели непосредственно в платформе данных InterSystems IRIS. Выглядит это вот так:
Создаем модель:
CREATE MODEL HousePriceModel PREDICTING (Price) FROM HouseData
Обучаем модель:
TRAIN MODEL HousePriceModel FROM HouseData
Извлекаем предсказание:
SELECT *, PREDICT(HousePriceModel) FROM NewHouseData
Подробнее и с примерами в можно найти тут, и посмотреть на видео вот тут.
А также
Добавляется поддержка Java SE 11 LTS. Во всех своих Java-компонентах InterSystems поддерживает и Oracle OpenJDK, и AdoptOpenJDK.
В JDBC-driver добавили поддержку пула соединений (connection pooling) для более эффективной работы.
Для VSCode вышла версия 1.0 расширения поддерживающего работу с ObjectScript - VSCode-ObjectScript
Обновилась поддерживаемая версия Spark, теперь поддерживается - 2.4.4
Администрирование и операции
InterSystems Kubernetes Operator (IKO)
Добавлен новый компонент для конфигурирования и развертывания динамических кластеров с InterSystems IRIS в Kubernetes – InteSystems Kubernetes Operator. Он впервые появился в 2020.2, а начиная с 2021.1 добавилась возможность развертывания инструмента мониторинга InterSystems System Alerting & Monitoring (SAM).В InterSystems Cloud Manager (ICM) добавили поддержку InterSystems API Manager и SAM.
Другие изменения одним списком
Добавилась поддержка зеркалирования (синхронного и асинхронного) для кластеров с распределенным хранилищем данных («шардинг»). Начиная с версии 2020.3 можно настроить зеркалирование для отдельных узлов или для всего кластера в целом. Подробнее о сценариях найдете по этой ссылке.
В SQL появились новые возможности для администрирования базы данных. В синтаксис были добавлены такие операции как “BUILD INDEX,” “FREEZE PLANS,” “PURGE CACHED QUERIES,” “CREATE INDEX”. Это может быть полезно в сценариях, когда у пользователя есть только JDBC- / ODBC-доступ без возможности выполнить эти действия через Терминал или Портал Управления.
Добавлен новый образ iris-lockeddown для создания контейнеров с InterSystems IRIS с максимальными настройками безопасности для развертывания «чувствительных» приложений в сложных средах и окружениях.
Начиная с 2021.1 InterSystems IRIS доступна на платформах ARM и как полноценная установка и как контейнер. Больше информации можно найти в описании поддерживаемых платформ.
Новые интеграционные возможности
Новая версия InterSystems API Manager
Вместе с новой версией InterSystems IRIS 2021.1 становится доступной новая версия InterSystems API Manager 2.3, в которой содержится множество улучшений функционала, в том числе новые «плагины». Подробнее про это можно почитать в отдельном описании этого компонента.
Компоненты для работы с X12
Появились Бизнес служба и Бизнес операция (EnsLib.EDI.X12.Service и EnsLib.EDI.X12.Operation), которые позволяют через SOAP обмениваться сообщениями в формате X12.
Новый block-level механизм сжатия хранилища (экспериментальный функционал)
В InterSystems IRIS 2021.1 доступен (впервые появившийся в 2020.2) новый механизм сжатия хранимых данных на уровне блоков (block-level), который позволяет значительно снижать занимаемое место в зависимости от кардинальности данных в глобалах. Особенно хорошо это работает, когда в данных есть много нулей и пробелов.
Сжатие на уровне блоков – экспериментальный механизм и не должен быть использован в промышленной эксплуатации. Он достаточно хорошо протестирован и способен давать значимый выигрыш в занимаемом месте, но есть риски, что в ряде случаев он может оказать негативное влияние на производительность. В некоторых сценариях производительность может увеличиваться за счет того, что меньше данных необходимо перемещать между хранилищем и памятью, но в некоторых сценариях может наблюдаться обратный эффект из-за затрат на сжатие и декомпрессию. Конечный результат сильно зависит от конкретного приложения и платформы, на которой оно работает. По этой ссылке есть подробное описание.
Другие интересные новшества
Добавлена поддержка PKCE (Proof Key for Code Exchange) в OAuth-аутентификации. PKCE позволяет безопасно осуществлять OAuth-аутентификацию с открытых клиентов и сильно снижает риски перехвата кода авторизации.
В SQL сделали реорганизацию утилит и функций для администрирования – их вынесли в отдельные пакеты: %SYSTEM.SQL.Functions, %SYSTEM.SQL.Schema и %SYSTEM.SQL.Stats.Runtime. Ранее все они находились в пакете %SYSTEM.SQL. (добавлено в 2020.3)
Transact-SQL стал доступен при подключении через JDBC (добавлено в 2020.3)
Класс для работы со списками List стал доступен в Node.js Native API (добавлено в 2020.3)
Большое количество улучшений было сделано в SQL-движке. На достаточно широком наборе запросов на тестовом стенде наблюдается прирост в 6% в производительности при переходе на 2021.1 с более ранних релизов.
В этом релизе также добавляется новый алгоритм для оценки селективности полей в процессе сборки статистики таблиц. Это приводит к тому, что SQL-оптимизатор выбирает более быстрый план выполнения запроса для всех SQL-запросов (впервые в 2020.2).
Скачать
Если у Вас есть поддержка - добро пожаловать в раздел Software Distribution портала WRC.
Если вы только хотите попробовать InterSystems IRIS — https://www.intersystems.com/ru/try-intersystems-iris-for-free/
Одной строкой через Docker:
docker run --name iris21 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2021.1.0.215.0