Привет. Меня зовут Альберт Нурутдинов, я архитектор в "Инфосистемы Джет". В этой статье я рассказывал, как и почему мы создали свою Business Intelligence платформу. Но время не стоит на месте, и мы стараемся не отставать. В конце 2021 года мы сделали новый релиз JET BI и сегодня расскажем вам о новых возможностях платформы, сложностях, с которыми мы столкнулись при их разработке, а также о перспективах развития. Конструктор отчетов стал более простым и удобным. Теперь отчеты и контрольные панели доступны для настройки не только BI-разработчикам, но и бизнес-пользователям. Это позволяет «на лету» менять логику работы виджетов, механизмы агрегации данных и внешний вид при работе с отчетами. При этом все продвинутые возможности также доступны при необходимости, включая язык формул, вычисляемые факты, управление иерархиями измерений и т. д. Раньше мы позиционировали конструктор скорее, как инструмент для BI-разработчиков, оставляя бизнес-пользователям лишь базовые возможности фильтрации, группировки, DrillDown и DrillUp. У первой версии платформы JET BI было два разных режима — создание отчета (для разработчика) и работа с ним (для пользователя). Даже по ролевой модели было разграничение. Сейчас конструктор можно использовать всем — не только технически, но и организационно, пройдя минимальный «инструктаж» (можно даже и без него). Любой пользователь может создавать и редактировать отчеты. Фактически мы постарались немного размыть грань между разработчиками и бизнес-пользователями, предоставляя одни и те же инструменты для всех, но с разной «глубиной детализации». Пользователи теперь могут самостоятельно создавать отчеты и исследовать данные без погружения в технические детали, а также эффективнее работать с уже существующими отчетами. Это довольно важный переход в области развития платформы, который, мы надеемся, приведет к ситуации, когда все смогут говорить на одном языке и пользоваться единым инструментом.  Ключевой проблемой было то, что конструктор может оказаться сложным для освоения, и в конечном счете пользователи предпочтут его не применять. Но мы решили эту проблему, и практика показывает, что конструктор — это довольно востребованная и часто используемая функциональность. В новой версии существенно усовершенствованы возможности работы с таблицами — как при создании, так и при навигации по ним.  Это расширяет спектр применения JET BI в областях финансовой и управленческой отчетности, бюджетирования, корпоративного управления и стратегического планирования.  Появился инструмент для создания интерактивных многоуровневых таблиц с возможностью анализа по любому доступному измерению. Пожалуй, это была одна из самых скучных, но сложных задач, с которой мы столкнулись. В целом, работа с таблицами — важнейшая часть любой BI-системы. Поэтому нужно, с одной стороны, обеспечить гибкость (ведь таблицы могут сильно отличаться), а с другой — простоту их создания. К тому же таблицы должны быть максимально интерактивными, для статичных есть MS Excel. Пользователям нужны гибкие, но понятные сервисы для анализа данных на всех уровнях, а BI-разработчикам — удобные инструменты для создания этих сервисов. По опыту могу сказать, что сочетания этих двух факторов на 100% я не встречал ни в одной BI-системе, включая нашу, хоть мы и стараемся двигаться в этом направлении.  Виджет «Таблица» был дополнен расширенными возможностями управления подитогами, группировкой, сортировкой и иерархиями измерений. Также был улучшен редактор формул, который можно использовать для постобработки данных и стилизации ячеек таблиц практически без ограничений.  Мы добавили ряд новых виджетов: тепловые и географические карты, комбинированные диаграммы, мини-графики для ячеек таблиц и т. д. Базовый набор визуализаторов был дополнен, а часть из них была переработана с сохранением обратной совместимости. Виджеты стали более гибкими в настройке: даже «сквозные» фильтры, которые применяются к отчету целиком, теперь являются по своей сути отдельным типом визуализатора. Их можно добавлять куда угодно и эффективнее ими управлять.  Доступные для пользователя возможности по настройке логики работы виджетов были расширены. К примеру, теперь можно выбирать сразу несколько показателей и способов их расчета. Также появился API для подключения сторонних библиотек без необходимости внесения изменений в код — их можно добавлять напрямую в конструкторе отчетов. Это могут быть как коммерческие, так и Open Source библиотеки. Безусловно, для этого необходимы базовые знания JavaScript, однако это позволяет заказчикам самостоятельно расширять возможности по визуализации, не обращаясь к нам, как к вендору. Генератор запросов к базе данных источника стал «умнее»: теперь он формирует более точные и адресные запросы, а также более оптимально кеширует данные, включая сжатие, разделяемый кэш, индексирование и нормализацию данных. Это снижает нагрузку на БД источника либо хранилище данных, и уменьшает время отклика отчетов. Особенно явно это проявляется при работе со сложными интерактивными таблицами, а также в случае, когда данных действительно много. Возможность обработки данных в памяти (InMemory) была сохранена. Платформа может работать в трех режимах: ROLAP, InMemory и комбинированном (когда часть данных обрабатывается в памяти, а часть — на уровне СУБД), как это сделано, к примеру, в QV Direct Discovery или в MS PowerBI Direct Query.  Также был существенно оптимизирован пользовательский интерфейс, включая наиболее «тяжелые» для браузера виджеты — сводные таблицы, фильтры и комбинированные диаграммы. Это особенно актуально при работе с отчетами на мобильных устройствах. Платформа старается минимизировать количество одновременно отображаемых элементов на странице отчета и их «перерисовку». Мы добавили простые и понятные инструменты для создания запросов к источникам, включая предварительное преобразование данных. Теперь многое из того, что раньше можно было сделать только с помощью скриптового языка JET BI, доступно в более дружелюбном интерфейсе. Это снижает порог входа BI-аналитиков и разработчиков, упрощает работу с данными и ускоряет разработку отчетов. В процессе создания запроса можно выбирать нужные поля, устанавливать правила преобразования, например, умножить значение одного поля на значение другого либо запросить информацию из внешних сервисов. Разумеется, то же самое можно сделать и в конструкторе отчетов, однако зачастую удобнее преобразовывать данные еще на уровне запроса. Параметризованные отчеты. Можно настроить любой отчет так, что при его открытии у пользователя будут запрашиваться входные параметры (например, группа товаров или регион продаж). Это автоматически будет применяться к отчету в целом. Отображение «сырых» данных в таблицах. Теперь в одной сводной таблице стало возможным просмотреть не только агрегаты, но и исходные данные, из которых итоговое значение было сформировано. Для этого нужно просто выбрать ячейку таблицы. Расширенные возможности управления стилизацией отчетов. Стало возможным использовать универсальный стиль на уровне отчета в целом. В едином интерфейсе можно настраивать цвета, шрифты и прочие внешние атрибуты отчетов. Система позволяет настроить отчет таким образом, что при выборе элемента во всплывающем окне информация отображалась детально. Это бывает удобно, если есть задача не перегрузить отчет деталями. Окон может быть сколько угодно. Мы постарались сделать JET BI более универсальной и гибкой платформой, повысить удобство использования, сохранив при этом более сложные инструменты для анализа данных и разработки отчетов. Система стала работать быстрее как на уровне сервера, так и на уровне пользовательского интерфейса.  JET BI успешно прошла апробацию в ряде крупных государственных ведомств, получила хорошие отзывы и успешно эксплуатируется.  Несмотря на достигнутые результаты, мы продолжаем совершенствовать нашу платформу в соответствии с запросами и требованиями рынка.  Следующий релиз запланирован на середину лета. Следите за обновлениями!  Альберт Нурутдинов, архитектор «Инфосистемы Джет» С предложениями и вопросами обращайтесь на bi_jet@jet.su