Сегодня у большинства крупных компаний есть схожая задача: в условиях санкционных рисков, постепенном «отключении» зарубежных систем и политики импортозамещения — перейти на отечественные решения, сохраняя при этом функционал, привычное качество решений и свои наработки.
Меня зовут Алексей Розанов, я руководитель пресейл направления и работы с партнёрами ГК Luxms, вендора платформы Luxms BI.
Luxms BI — платформа бизнес-аналитики данных с высочайшим быстродействием и горизонтальной масштабируемостью. У неё мощные функциональные и визуальные возможности, а также быстрая обработка больших объёмов данных благодаря своей датацентричной архитектуре. В Реестре российского ПО.
И как человек, который постоянно общается с заказчиками, я прекрасно понимаю, насколько сложным может быть переход с одной системы бизнес-аналитики на другую. Перенос данных, настройка ETL-процессов, интеграция с текущими бизнес-процессами, полная перестройка работы ИТ-служб — всё это требует значительных усилий. А для тех, кто использует Power BI и работает с многомерными кубами, задача усложняется многократно.
Кейс: Power BI и SSAS
Рассмотрим реальный пример. У одной из компаний, которая к нам обратилась, создано в SSAS более 200 кубов.
SQL Server Analysis Services (SSAS) — это подсистема аналитических данных (VertiPaq), используемая для поддержки принятия решений и бизнес-аналитики. Она предоставляет семантические модели данных корпоративного уровня для бизнес-отчётов и клиентских приложений, таких как Power BI, Excel, Reporting Services отчёты и другие средства визуализации данных. Это дополнительный компонент, который приобретается отдельно и интегрируется с SQL Server.
Сам SQL Server можно сравнить с PostgreSQL — это основная база данных, которая используется для хранения данных. Если компании требуются многомерные кубы, они покупают и настраивают SSAS как расширение, которое добавляет возможность работы с кубами.
У клиента SSAS был куплен, и на его базе было создано (и создаётся сейчас) большое количество кубов, которые активно используются. Эти кубы работают внутри SQL Server, где данные обновляются и обрабатываются, а для визуализации данных используется Power BI: в целом, классическое решение.
Кубы отлично подходят для сложного анализа данных, но у них есть минус: они плотно завязаны на экосистему Microsoft. Кроме этого, оказалось, что Power BI не умеет выполнять динамические расчёты на лету.
Например, если бизнесу нужно посчитать формулу “(a + b) ÷ 100”, Power BI не сможет выполнить этот расчёт самостоятельно. Пользователям придётся обращаться к ИТ-службе, чтобы добавить новую формулу в кубы. Это занимает время, требует ресурсов и очень далеко от понятий «удобно» и Self Service BI.
Почему не подошел ClickHouse
Первоначально мы предложили простой вариант: выгрузить кубы в ClickHouse и подключиться к Luxms BI. Это вообще избавило бы от необходимости использовать MDX. Но идея не подошла.
На первый взгляд, выгрузка данных в ClickHouse — решение всех проблем. Скорость работы потрясающая, данные быстро подгружаются, но… теряется гибкость.
Куб представляет собой сложную модель данных, которая позволяет гибко анализировать информацию, используя различные измерения и разрезы. При попытке выгрузить данные из куба в ClickHouse эта гибкость теряется.
Например, для одного куба может потребоваться выгрузить до 20 различных таблиц в ClickHouse. Так как это разные таблицы, то единый источник данных отсутствует, и в некоторых случаях их нужно будет объединять для анализа, а в других — нет.
Когда речь идёт о большом количестве кубов, это может привести к созданию сотен, а иногда и тысяч витрин в ClickHouse. Управление таким массивом данных становится крайне сложным, особенно если учитывать, что кубы постоянно обновляются. Если данные из куба нужно выгружать каждый час, то возникает вопрос: выгружать все 20 таблиц или только те, которые изменились?
Если выгрузить данные по филиалам, но позже понадобится детализация по городам, придётся заново настраивать ETL-процессы. А объёмы данных огромные.
Это создает множество технических и организационных проблем. Переход на новую систему потребовал бы значительных усилий от IT-службы: новый язык, другая архитектура, переобучение специалистов. В этом случае текущая система, хоть и со своими недостатками, оставалась наиболее оптимальной для задач компании.
Создание MDX-запросов в Luxms BI
Тогда мы решили идти другим путём: интегрироваться с SSAS кубами и научить Luxms BI генерировать MDX-запросы.
MDX (Multidimensional Expressions) — язык запросов для работы с многомерными данными.
В основе решения лежит наш язык LPE (Lux Path Expressions), который мы адаптировали для создания MDX. Мы не использовали сторонние библиотеки — весь функционал был реализован внутри нашей системы. Одним из ключевых нововведений стало обновление синтаксиса, похожего на DAX, который уже знаком многим пользователям Power BI. Теперь в LPE-выражениях нужно будет использовать квадратные скобки для ссылки на столбцы кубов (dimensions и measures). Такой синтаксис используется во всех распространенных BI-системах, и мы не хотим напрягать пользователей своими особенностями.
Таким образом мы:
Скрыли техническую сложность. Luxms BI «понимает» кубы так же, как раньше «понимал» таблицы в ClickHouse или Postgres;
Обеспечили совместимость. Бизнес продолжает использовать свои привычные кубы, но визуализирует данные на отечественном решении Luxms BI;
Минимизировали затраты на миграцию, особенно в части ETL.
Пользовательский интерфейс остаётся простым, а вся сложность скрыта внутри системы.
Первые результаты
Наш первый прототип уже работает. Клиент может строить отчёты, используя кубы SSAS, а данные отображаются в Luxms BI. При этом система визуализации прозрачно работает с MDX-кубами, так, как если бы данные находились в ClickHouse или PostgreSQL. Как итог, пользователи могут:
Использовать свои существующие кубы без необходимости сложной миграции;
Создавать гибкие дэшборды с расчётами на лету;
Постепенно переходить на новый BI, сохраняя текущие инвестиции в инфраструктуру;
Создавать новые проекты на современной российской платформе, используя актуальный функционал и расширяя возможности аналитики.
Скоро поддержка MDX-запросов станет доступна в коробочной версии для всех пользователей Luxms BI.
Дополнительные возможности Luxms BI
Реализация MDX-запросов — ключевое решение в этом кейсе, но Luxms BI предлагает гораздо более широкий функционал, который делает нашу систему полноценной альтернативой Power BI.
Вся базовая функциональность Power BI — обработка, визуализация данных, работа с отчётами и аналитика в реальном времени и т.д. — реализована в Luxms BI на уровне, сравнимом с иностранной системой.
При работе с Luxms BI используется язык LPE — гибридный язык, совмещающий задачи скриптового программирования и написания формул (альтернатива DAX). Архитектура системы включает более полусотни функций, предназначенных для реальных задач: мы адаптировали и включили в LPE наиболее востребованные на большинстве проектов функции DAX.
При этом в отличие от Power BI, Luxms BI предлагает практически неограниченные возможности кастомизации — создание собственных компонентов визуализации на React, расширяя возможности для работы по сложным сценариям.
Реализация поддержки MDX-запросов в Luxms BI — это лишь один из примеров того, как мы помогаем компаниям адаптироваться к новым реалиям, сохраняя привычные инструменты и процессы. Наш подход позволяет минимизировать затраты на переход, исключить риски, связанные с миграцией, и обеспечить компаниям доступ к современным технологиям.
surkenny
Я честно не понял посыла статьи.
Во-первых, говорится о том, что Luxms BI полноценная замена Power BI, потому что умеет использовать в качестве источника кубы. Что? У меня в реальных проектах в менее 5% источником были кубы, но ок. Но считать наличие по сути "удобного коннектора" к кубам основной причиной, почему это полноценная замена PBI - ну такое...
Основной посыл статьи, что у вас данные в кубах и вы хотите live-connection. Ну это же совсем не всегда нужно (у меня почти никогда).
Во-вторых,
язык LPE — гибридный язык, совмещающий задачи скриптового программирования и написания формул (альтернатива DAX)
Еще раз, 50 функций, 40 из которых будут математическими (типа sin, tg и тп) или строковыми?
Как поворачивается язык назвать это альтернативой? :)
Есть православный DAX в Visiology, есть функциональные языки в Fine Bi, PIX BI. Их тоже назвать альтернативой? Ну никто даже близко к функциональности DAX не приблизился.
В заключение, не ругайте меня за то, что "не читал, но осуждаю!". И правда не тестировал полноценно (только игрался пару дней).
Но не нужно использовать такие кликбейтные заголовки. Это не полноценная замена PBI. Это может быть удобной заменой для тех, кто в основном использует подключение к кубам (а другие BI это делают только через коcтыли/прослойки) и для аналитики делают только простые вычисления на конечной модели данных...