Как стать автором
Обновить
43.06

Поддержка MDX в Luxms BI: комфортная миграция с Power BI

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров534

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

Меня зовут Алексей Розанов, я руководитель пресейл направления и работы с партнёрами ГК 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: в целом, классическое решение.

Рис.1 Примерная схема работы
Рис.1 Примерная схема работы

Кубы отлично подходят для сложного анализа данных, но у них есть минус: они плотно завязаны на экосистему Microsoft. Кроме этого, оказалось, что Power BI не умеет выполнять динамические расчёты на лету.

Например, если бизнесу нужно посчитать формулу “(a + b) ÷ 100”, Power BI не сможет выполнить этот расчёт самостоятельно. Пользователям придётся обращаться к ИТ-службе, чтобы добавить новую формулу в кубы. Это занимает время, требует ресурсов и очень далеко от понятий «удобно» и Self Service BI.

Почему не подошел ClickHouse

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

Рис.2 Первый предложенный вариант
Рис.2 Первый предложенный вариант

На первый взгляд, выгрузка данных в 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-системах, и мы не хотим напрягать пользователей своими особенностями.

Рис.3 Вариант, который подошел клиенту
Рис.3 Вариант, который подошел клиенту

Таким образом мы:

  • Скрыли техническую сложность. 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 это лишь один из примеров того, как мы помогаем компаниям адаптироваться к новым реалиям, сохраняя привычные инструменты и процессы. Наш подход позволяет минимизировать затраты на переход, исключить риски, связанные с миграцией, и обеспечить компаниям доступ к современным технологиям.

Теги:
Хабы:
+3
Комментарии1

Публикации

Информация

Сайт
luxmsbi.com
Дата регистрации
Дата основания
2012
Численность
101–200 человек
Местоположение
Россия

Истории