Релиз СУБД InterSystems Caché 2016.1

Всем привет! Рады представить вам новую версию Caché 2016.1, релиз которой состоялся во второй половине марта. Важных и интересных изменений действительно много, поэтому предлагаю сразу перейти к ним.

c0b8f33de87445c89d4f0774e8543583.jpg


Полный и подробный список изменений доступен здесь: Caché 2016.1 Release Notes

Улучшенная поддержка JSON


Первое и долгожданное нововведение — улучшенная производительность и новые механизмы для работы с JSON в Caché.

Разбор JSON теперь реализован в Caché на уровне ядра, что позволило существенно улучшить производительность при работе с JSON большого объема. А на замену %ZEN.ProxyObject, который ранее использовался для работы с JSON, пришли новые динамические объекты %Object и %Array, которые отличаются большей эффективностью и удобством при написании кода.

Пример:

set object = { "firstName": "Sergey", "lastName": "Sarkisyan", "age": 22 }
set array = [ 1, 2, "string", true ]
do array.$push("InterSystems").$push("Caché").$push("2016.1")
write array.$toJSON()
=> [ 1, 2, "string", true, "InterSystems", "Caché", "2016.1" ]


Более подробную информацию вы можете найти в статье Эдуарда Лебедюка на Хабре и в статье Штефана Виттманна на нашем Developer Community.

Улучшения в SQL


Идём дальше. Следующее важное изменение в Caché 2016.1 — улучшенная производительность исполнения SQL. InterSystems постоянно работает над совершенствованием SQL-доступа в Caché, и этот релиз не стал исключением:

  • Оптимизация производительности для серверного кода xDBC.
  • Улучшения производительности исполнения SQL-запросов. В этом выпуске обработчик SQL-запросов генерирует более эффективный код для большинства распространенных SQL-операций.
  • Улучшены возможности по отмене операций.


DeepSee REST


Дальше по списку идет Business Intelligence. В Caché 2016.1 представлены новые REST-сервисы для доступа к движку DeepSee. Cервисы предназначены для получения данных сводных таблиц и исполнения MDX-запросов с возвратом результата в виде JSON. Так же доступны различные информационные сервисы для получения списков кубов DeepSee, сводных таблиц, и различной информации о кубах (Измерений (Dimensions), членов кубов (Members), Показателей (Measures) и т.д.).

Для JavaScript-разработчиков хорошей новостью будет то, что в этот релиз также включена JavaScript-библиотека, предоставляющая доступ к REST-сервисам DeepSee.

Более подробную информацию можно найти в документации к Caché 2016.1 в разделе «Tools for Creating DeepSee Web Clients».

На этом изменения в DeepSee не заканчиваются! Список наиболее важных из них:

Список изменений
  • Параллельная синхронизация кубов DeepSee — %SynchronizeCube теперь может использовать несколько агентов DeepSee для параллельного обновления кубов.
  • Общие вычисляемые члены кубов — вычисляемые члены, определенные в Analyzer теперь могут быть доступны для других сводных таблиц из того же куба. Подробности можно найти в главе «Defining Calculated Elements» раздела «Using the DeepSee Analyzer» документации.
  • Подробные списки, зависящие от показателей — теперь для Показателя можно указать подробный список (Listing), который будет отображаться при получении детальной информации о ячейке, содержащей данные этого Показателя.
  • Analyzer и Architect теперь позволяют изменять размер панелей интерфейса.
  • Новые системные методы для получения и исполнения MDX-запросов сводных таблиц (Подробности можно найти в документации класса %DeepSee.Utils):
    • %GetMDXFromPivot () — возвращает текст MDX-запроса сводной таблицы. Опционально выполняет запрос.
    • %ExecutePivot () — выполняет запрос сводной таблицы. Опционально возвращает ассоциированный с таблицей %DeepSee.ResultSet
    • %GetResultSetFromPivot () — возвращает %DeepSee.ResultSet для сводной таблицы. Опционально выполняет запрос.
  • Возможность указывать дополнительные параметры фильтрации подробных списков при использовании плагинов — плагины предоставляют возможность определять собственные Показатели в DeepSee. В предыдущих версиях подробные списки из плагина всегда показывали все строки, которые использовались для вычисления Показателя. В этом выпуске добавлена возможность ограничивать такие подробные списки определенным подмножеством строк.
  • Новый метод %OnAfterBuildCube — в дополнение к существующей возможности определять логику перед построением куба, добавлена аналогичная возможность для определения собственной логики после построения.
  • Новый токен $$$VARIABLES — в DeepSee появился новый токен $$$VARIABLES, который можно использовать при получении доступа к дашбордам по URL. Этот токен будет заменен на значение соответствующей переменной сводной таблицы. Пример: someURL&someVARIABLE=$$$VARIABLES заменит $$$VARIABLES на значение переменной someVARIABLE. Больше информации в главе «Accessing Dashboards from Your Application» раздела «DeepSee Implementation Guide» документации.
  • Фильтр по дате и первый день недели — теперь при использовании фильтра по дате учитываются системные настройки первого дня недели.


InterSystems iKnow


Технология для работы с текстом на естественном языке iKnow тоже получила обновления: в Портал Управления Системой добавлен iKnow Architect, созданный для предоставления пользователя удобного способа управления iKnow-доменами; кроме того, добавилась поддержка шведского и японского языков.

ZEN Mojo


Web-фреймворк ZEN Mojo получил поддержку и довольно тесную интеграцию с Twitter Bootstrap. Больше информации можно найти в документации, в главе «Helper Plugin for Bootstrap» раздела «Using Zen Mojo Plugins».

.NET Entity Framework


Также в Caché добавлена поддержка .NET Entity Framefork (версий 5 и 6), что должно обрадовать .NET разработчиков, работающих с Caché. Как всегда, все подробности можно найти в документации, в главе «Using the Caché Entity Framework Provider» раздела «Using .NET and the ADO.NET Managed Provider with Caché».

Остальные изменения


Из остальных важных изменений:

  • Улучшена производительность и уменьшена нагрузка на сеть при использовании зеркалирования.
  • Добавлена поддержка TCP окна большего размера, что должно улучшить пропускную способность между узлами зеркала с большой задержкой.
  • Выпуск включает библиотеку Open SSL версии 1.0.1p.
  • Улучшена надежность аудита (с помощью добавления обязательного журналирования базы аудита).
  • Добавлена поддержка Windows x64 для Apache 2.4.
  • Серверы приложений ECP стали кешировать длинные строки. Различные улучшения производительности, масштабируемости и безопасности.


Это далеко не все изменения в Caché 2016.1. Напоминаю, что полный список изменений можно найти по ссылке.

Спасибо за внимание и до новых релизов!

© Habrahabr.ru