Мы давно работаем на рынке BI и, как любой зрелый продукт, регулярно сравниваем себя с другими системами, которых с каждым годом появляется всё больше и больше — каждая со своими сильными и слабыми сторонами. И мы решили задать себе простой, но важный вопрос: а чем мы в Luxms BI действительно гордимся? Что нравится не только нам, как разработчикам, но и экспертам, которые делают на нашей платформе десятки проектов? Какие особенности мы сами считаем важными и удобными?

Так появилась эта серия: 23 фичи Luxms BI, которыми мы гордимся. Это не список «всё, что у нас есть», и не подборка базовых возможностей, которые сегодня есть почти в каждом BI-инструменте. Мы собрали то, что нас самих вдохновляет, и то, что мы чаще всего видим в успешных проектах наших клиентов.

Для удобства мы разделили эти фичи на четыре тематических блока

  1. Платформенность и архитектура. Это то, на чём и как построен BI. Всё то, что определяет его устойчивость в больших задачах. Любой BI начинается именно с этого.

  2. Функционал классической BI-системы. Расскажем про тот функционал «стандартного BI», который вызывает у нас энтузиазм и делает проекты удобными и гибкими.

  3. Больше, чем BI. Расскажем про то, что выходит за рамки классического BI-инструмента.

  4. Ни у кого больше нет. Здесь то, чего мы не встречали у других.

Начнём с первого блока — архитектура и платформенность, с того, на чём держится всё остальное. В этой статье мы расскажем, как устроена платформа Luxms BI, почему мы сделали ставку на датацентричную модель, как устроена быстрая кастомизация интерфейсов, что такое BI-Magic-Resources, и зачем внутри BI-платформы observable-сервисы.

1. Своеобразная архитектура

Когда мы начали разбирать, что же действительно делает нашу систему уникальной, оказалось, что архитектура — один из ключевых источников нашей гордости.

Архитектура Luxms BI
Архитектура Luxms BI

Luxms BI построена как датацентричная, двухзвенная система. Это не просто факт, который мы пишем в документации, такая архитектура даёт конкретные, прикладные преимущества для бизнеса.

В первую очередь, она даёт серьёзные преимущества в быстродействии.

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

Датацентричность, в своею очередь, означает, что бизнес-логика находится рядом с данными. У нас основная логика реализована на хранимых процедурах внутри PostgreSQL, что позволяет нам максимально использовать его возможности и надёжность.

Такой подход даёт выигрыш в скорости, снижает накладные расходы и делает систему надёжной — в том числе за счёт использования стандартных, хорошо отлаженных механизмов самой СУБД.

Нет лишних шагов по переносу информации, поэтому Luxms BI справляется практически с неограниченными объёмами данных.

Наши тесты в ландшафте заказчиков и на мощностях партнёров показали, что такой датацентричный подход даёт BI-системе увеличение по скорости от 2 до 12 раз, в зависимости от сложности запросов, и чем сложнее запрос — тем больше выигрыш по скорости.

Luxms BI создавался и развивался с целью получить быструю аналитику на больших данных. При проектировании Luxms BI мы добивались высокой скорости работы, чтобы пользователю не приходилось ждать даже десятка секунд, прежде чем он увидит аналитический экран, график или дэшборд. И у нас это получилось.

Дмитрий Дорофеев, главный конструктор Luxms BI

Ещё один важный плюс - снижение TCO. Не нужен сервер приложений → меньше стека, меньше Java-разработчиков → экономия ресурсов и денег.

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

Открытая архитектура

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

Открытая архитектура Luxms BI позволяет использовать открытые программные интерфейсы (API) для взаимодействия с внешними системами, между компонентами системы, а также даёт возможность лёгкой замены, удаления и добавления компонентов.

В тоже время расширять API может и сам заказчик, благодаря чему может реализовывать даже нестандартные сценарии. Например, у нас есть кейс, когда Luxms BI используют как сервер аутентификации пользователей.

Luxms BI легко встраивается в существующий IT-ландшафт. Поддерживаются различные модели работы с данными — как с копированием в локальную базу, так и без. Поддерживается SSO на основе AD/Kerberos и OAuth. Поддерживается несколько сценариев встраивания визуализаций Luxms BI во внешние системы.

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

2. Кастомизация: JSON + REACT без боли

Одна из сильных сторон Luxms BI — гибкость клиентской части. Связка JSON + React даёт предсказуемое поведение, быструю сборку и лёгкую доработку интерфейсов — без необходимости лезть в ядро или переписывать всё с нуля.

Это заметно ускоряет проекты: собрать рабочий UI, поменять элементы, адаптировать под заказчика или под конкретное устройство, и всё это быстро, что ведёт к снижению ТСО всего проекта и облегчению сопровождения. При этом сохраняется обратная совместимость. Для команды, которая внедряет систему, это означает меньше ручной работы и быстрее результат. Для заказчика — гибкость и возможность доработок, не завязанных на редких разработчиков ядра.

Недавно мы провели масштабного обновление одного из крупных проектов для ОАО «РЖД» с Luxms BI v4 на v10. Переход сопровождался рефакторингом всего объёма существующего кода, отказом от устаревших решений и внедрением современных практик работы с данными.
Платформа Luxms BI продемонстрировала высокую устойчивость и обратную совместимость: обновление прошло в штатном режиме — без простоев, при сохранении всех рабочих процессов.

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

Кастомизация на платформе Luxms BI
Кастомизация на платформе Luxms BI

Открытость Luxms BI в этом плане даёт командам заказчика возможность самостоятельно дорабатывать интерфейс, без привязки к вендору, что ускоряет внедрение.

На практике мы видим, что клиенты, самостоятельно разрабатывающие на платформе, находят новые подходы, которые мы, как вендор, не закладывали изначально. Если они органично вписываются в архитектуру, мы берём их на вооружение и распространяем среди всех пользователей. Так мы вместе развиваем наш продукт.

Кастомизация делает BI не просто удобным, а адаптивным и живым инструментом, способным подстраиваться под реальные задачи.

BI-MAGIC-RESOURCES — готовая среда для разработки на LUXMS BI

Когда мы говорим о платформенности, важно отметить не только архитектуру — но и то, что у нас реально появилось как результат этой платформенности. Внутри мы называем это «готовой средой разработки» (а ещё немножко магией). Мы фактически создали целую внутреннюю фабрику — конвейер удобств для работы с различными задачами разработки.

То есть для разработчиков в Luxms BI есть не просто базовый редактор для написания кода в системе, а полноценный инструмент — bi-magic-resources (BMR) (https://github.com/luxms/bi-magic-resources). Это проект на React, где можно разрабатывать интерфейсы, хранить наработки в GIT, вести совместную разработку, кастомизировать сборку и запуск, подключать свои библиотеки и переиспользовать уже готовые компоненты заказчика. С ним удобно разрабатывать, тестировать и выкатывать новые фичи, не мешая основной ветке разработки. 

Есть возможность переносить наработки с инстанса Luxms BI на другой: ресурсы (они же файлы скриптов, стилей и react-компонентов), конфиги атласов, дэшбордов, дэшлетов и, с недавних пор, ещё и кубов. Это даёт возможность создавать дополнительные слои CI/CD для передачи наработок на целевой контур.

Один из примеров работы с bi-magic-resources — поддержка кастомных визуализаций, которые можно развернуть из обычного tgz/zip-архива. Не нужно ждать большого обновления или нового релиза — разработчик сам собирает и запаковывает визуализацию, а затем разворачивает её в нужной среде.

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

Также важно, что разработчик сам управляет тем, какие параметры доступны пользователю в правой панели в режиме self-service: что можно менять, а что — нет. Это может быть настройка визуала, данных или поведения — всё задаётся гибко, без необходимости жёстко прописывать показатели, размерности или формулы. Поэтому сегодня пользователь может использовать визуализацию для анализа выручки, а завтра — для подсчёта количества продаж. Всё настраивается прямо в интерфейсе, буквально за пару кликов, без привлечения разработчика. В этом смысле кастомная визуализация работает как «коробочная» — только полностью под нужды конкретного кейса.

Структура проекта
Структура проекта

У нас в планах добавить возможность работать с фейковыми кубами с тем же API, что и у реальных, чтобы фронтендеры и дата-инженеры могли работать параллельно и не стопорили друг друга. Фронт начинает делать интерфейс, зная лишь верхнеуровневую структуру данных — и не ждёт, пока появится готовый куб. А у дата-инженера уже есть UI, с которым можно тестировать. Всё происходит в рамках одного проекта BMR — быстро, синхронно, удобно. Дата-инженеры закончили — сменили ID фейкового куба на реальный — проверяют работу на уже готовом интерфейсе. Такой подход ускоряет командную работу и снижает зависимость между этапами разработки.

«Разработчик смотрит на систему жадными глазами с мыслью: так, вот этого тут нет, но я могу это написать сам, написав компонент или взяв готовый из интернета. Складирует все наработки в ветки BMR, которые могут выступать как отдельные этапы жизненного цикла всего кастомного проекта. со своим CI/CD при желании, своими серверами и настройками. Замержился в нужную ветку, протестировал, и затем просто накатывает функционал из ветки продакшна на коробочные версии платформы. Ничего не теряется, тестировщики легко могут имитировать необходимые ситуации прямо в локальном проекте до выгрузки на сервер или в специальной ветке Git», Илья Гурешидзе, тимлид команды фронтенда.

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

Безопасность Enterprise-уровня

На фоне недавних массовых и критичных сбоев у крупнейших российских компаний (вспомним хотя бы недавнюю ситуацию с Аэрофлотом) ещё острее понимаем, что информационная безопасность — это не просто важный элемент, а критически необходимый.

Мы годами оттачивали подходы к ИБ — для заказчиков со строгими требованиями готовили доработки, выстраивали корректную архитектуру безопасности и успешно проходили сертификацию по линии ФСТЭК.

Результатом стал высочайший уровень надёжности системы. В крупнейшем исследовании в области BI — «Круг Громова 2025» мы признаны самой безопасной платформой среди всех российских BI.

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

В Luxms BI можно настроить права доступа на более чем 10 типов объектов (атласы, дэшборды, источники данных, кубы и т.д.) и управлять более чем 15 действиями с ними (создание, чтение, изменение, удаление, публикация и другие). Ролевая модель включает 9 различных ролей, что позволяет детализировано настраивать доступ в зависимости от уровня ответственности пользователя.

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

Эта гибкость делает систему более масштабируемой и удобной для различных сценариев использования.

Отдельно стоит упомянуть настройку row-level security — механизм, позволяющий фильтровать данные в зависимости от того, кто их просматривает. Это можно сделать через визуальный интерфейс, например, выбрать нужные значения в полях или отметить нужные ID. Либо использовать автоматические правила — например, задать формулу, которая будет подтягивать данные о пользователе из Active Directory и на их основе ограничивать доступ к информации.

Для специалистов по информационной безопасности предусмотрено отдельное рабочее место — АРМ Инфобеза. Через него можно отслеживать все действия в системе: кто создал или изменил объект, что и когда просматривал, какие сценарии запускались. Глубина логирования настраивается, поддерживается экспорт логов в SIEM-системы в формате CEF. При необходимости администратор может завершить сессию конкретного пользователя вручную — например, если был зафиксирован подозрительный вход. Всё это реализовано не только для BI, но и для ETL-инструмента Luxms Data Boring.

В Luxms BI реализован один из самых проработанных на рынке журналов событий соответствует стандартам крупных компаний, фиксирует всё, что нужно для контроля и аудита.

Также реализованы поддержка Keycloak, интеграция с SIEM, ЕСИА и возможность импортировать необходимые группы и домены из LDAP AD.

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

Для API-доступа предусмотрены JWT-токены, которые можно создавать и настраивать через интерфейс. Это позволяет безопасно ограничить область действия токена и контролировать доступ к конкретным ресурсам.

Продвинутая архитектура безопасности Luxms BI — это не просто «галочка» для соответствия. Это выстроенная экосистема, которая помогает защищать данные, масштабироваться под реальные процессы в крупных компаниях и соответствовать высоким требованиям корпоративного сектора.

Гибкая интеграция с источниками данных

Одним из архитектурных преимуществ платформы мы считаем развитую систему подключения к источникам данных. Помимо стандартной поддержки через JDBC, мы умеем забирать данные любой сложности из ClickHouse  напрямую, отправляя SQL запросы через HTTP.

Luxms BI — самый интегрируемый BI. Обладает максимальной и наиболее расширенной совместимостью с различными источниками данных.

Всё это позволяет нам уверенно говорить о том, что мы лидеры в части продвинутой стыковки с различными источниками данных.

«Мы гарантируем, что выражения, написанные пользователем в визуальном интерфейсе или в конфиге корректно транслируются в SQL-диалекты всех поддерживаемых источников. Сейчас их восемь. Можно протестировать выражение на PostgreSQL, а потом переключиться на ClickHouse, Oracle или MSSQL и всё продолжит работать. Не нужно ничего переписывать - LPE подстраивается сам. Наша команда изучает как лучше адаптировать выражения LPE под конкретный диалект SQL, чтобы использовать его сильные стороны и добиться максимальной производительности. Это предмет нашей особой гордости».

Алексей Розанов, руководитель пресейл-направления

Observable-сервисы: паттерн для взаимодействия компонентов и данных

Возможно менее очевидная, но важная возможность Luxms BI — это реализация паттерна Observer в виде отдельного слоя observable-сервисов. Он отвечает за централизованное управление текущим состоянием интерфейса: фильтрами, вкладками, пользовательскими действиями, состоянием виджетов — и позволяет синхронно управлять их поведением без необходимости вручную обновлять каждый компонент.

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

Это особенно важно, если вы создаёте кастомный функционал, чей стейт нужно отслеживать в реальном времени. В Luxms BI вы не просто где-то локально хардкодите поведение, а встраиваете его в общую систему наблюдения. Ваш компонент подписывается на изменения, и любые изменения состояния автоматически попадают в общий пул. А оттуда — по системе с обратной связью — обновляют сам компонент, в котором произошло изменение. В результате вы видите ровно то состояние, которое есть прямо сейчас, без лишнего кода и ручных действий.

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

Если происходит переход между атласами или дэшбордами, сервис проверяет, есть ли уже подходящий куб. Если нет — запрашивает его данные заново один раз и сохраняет в отдельный инстанс нужную структуру. Это позволяет избежать повторных обращений и лишних запросов.

Допустим, что все виджеты подписаны на этот сервис, но при этом каждый может использовать разные поля и кубы, а виджет возьмёт только тот, что ему нужен — без ошибок и конфликтов, если, например, у него нет нужного поля. Это позволяет экономить запросы и распараллеливать логику.

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

Дополнительно, такой datepicker может быть подписан на стандартный observable KoobFiltersService, который отвечает за фильтры на страницах и в который по дефолту пишет Управляющий дэш. Фильтры из этого сервиса могут дополнительно влиять на DatePicker — это позволяет разделить логику фильтрации и при необходимости управлять ею через обёртки-сервисы, делая логику более модульной и масштабируемой.

Эти observable-сервисы могут быть независимыми или зависимыми друг от друга и управлять параллельным «потоком» компонентов. Их взаимодействие задаётся через подписку или наследование, что может сделать проект очень гибким.

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

Что это даёт пользователям?

Как только происходит любое изменение — все подписанные компоненты автоматически об этом узнают. Это может быть управляющий дэш, визуализация или другой элемент. Не нужно вручную обновлять каждый компонент: наблюдаемая логика и встроенная «воронка оповещений» решают это автоматически. Именно так Luxms BI обеспечивает живую, отзывчивую и устойчивую архитектуру, особенно ценную в сложных сценариях кастомизации и масштабных проектах.

Продолжение следует

Во второй части мы расскажем о классическом функционале Luxms BI — том, без чего не обходится ни одна зрелая BI-система: переменные и What-if сценарии, визуализации, геоаналитика, встроенный язык запросов, сводные таблицы, а также возможности кастомизации без программирования.

Если вы задумываетесь о внедрении BI или просто цените продуманные системы — подписывайтесь. Впереди ещё много интересного.

Комментарии (0)