OLAP-кубы: вечная классика

Получите консультацию
по импортозамещению
BI-системы для вашей компании

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

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

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

Математическая основа OLAP-кубов


Оперативная аналитическая обработка данных OLAP (Online Analytical Processing) — это технология, которая подготавливает агрегированную информацию и структурирует данные в многомерном виде, за счет чего достигается высокая скорость получения ответов на аналитические запросы.

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

Разберемся на примере: анализ демографии с показателями рождаемости и смертности в разрезе дат, регионов, пола и типа местности. Каждое из этих измерений можно представить в виде отдельной оси в многомерном пространстве. OLAP-куб для этой задачи будет иметь 4 измерения: дата, регион, пол и тип местности. Каждая ячейка куба будет содержать значение рождаемости и смертности для конкретной комбинации этих измерений (Рисунок 1).

На базе хранилища построен куб, в структуре данного куба (на рисунке не учтен тип местности):

Меры:
  • количество рожденных;
  • количество умерших
Размерности с иерархиями:
Периоды:
  • год;
  • квартал;
  • месяц
Субъекты РФ:
  • федеральный округ;
  • регион
Пол.

Это простой пример того, что в реальности измерений может быть несколько, но визуально это уже очень сложно представить.
Рисунок 1 — Пример хранилища данных и OLAP-куба, построенного на базе хранилища
Таким образом, OLAP-кубы предоставляют возможность структурировать данные в многомерных массивах, что дает аналитикам гибкость и самостоятельность в поисках ответов на сложные вопросы.

Преимущества OLAP

Популярность технологии оперативной обработки данных связана с ее особенностями:

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

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

  • Уровень детализации может доходить до уровня первичных данных. Пользователь OLAP-системы может сам определить глубину интересующей выборки. Например, можно сделать обобщенный запрос о том, сколько всего было проведено сделок в компании за год. А можно добавить в него информацию о каждой конкретной сделке: дате, сумме, с кем она была проведена и так далее.

Создание OLAP-кубов


Существует несколько моделей для создания OLAP-кубов. Наиболее распространенными являются схемы «звезда» и «снежинка» (Рисунок 2).

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

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

Работа с OLAP-кубами


Для анализа данных в многомерном пространстве используется специальный язык MDX (Multidimensional Expressions). В отличие от SQL, который подходит для работы с двумерными данными, MDX разработан для многомерного анализа.

MDX был разработан нашим соотечественником, эмигрантом Мошей Пасуманским, и впервые представлен компанией Microsoft в 1997 году, как расширение OLE DB (OLE DB for OLAP). В 2001 году выпущен стандарт XML for Analysis (XMLA), включивший MDX как часть языка запросов mdXML (запросы в нем обернуты в XML-тег <Statement>). MDX позволяет выполнять сложные запросы к OLAP-кубам, обеспечивая мощный инструмент для анализа данных. Этот язык стал стандартом для работы с OLAP-кубами, и его поддержка максимально развита в продуктах Microsoft.

MDX и SQL


Сравнение MDX и SQL не совсем корректно, поскольку эти языки предназначены для разных типов данных. SQL подходит для плоских, двумерных данных, тогда как MDX позволяет работать с многомерными данными. MDX дает возможность ориентироваться в многомерном пространстве и оперирует такими понятиями как: «axis» (ось), «tuple» (кортеж), «parent» (предок), «child» (потомок), «sibling» (родственник). Эти понятия позволяют строить сложные иерархические запросы, обеспечивая глубокий анализ данных.

Подробнее про язык MDX мы рассказали в нашей статье «Язык многомерных выражений MDX. Использование в Alpha BI». Материал доступен по ссылке >>

OLAP-кубы Microsoft SSAS


Microsoft SQL Server Analysis Services (SSAS) — одна из самых популярных платформ для работы с OLAP-кубами. SSAS поддерживает MDX и предоставляет богатый функционал для многомерного анализа данных. Этот продукт стал де-факто стандартом для OLAP-кубов благодаря своей мощности, гибкости и широким возможностям интеграции.

Рассмотрим вопрос подробнее.
Процессинг OLAP-кубов в SQL Server Analysis Services (SSAS) включает несколько ключевых этапов, способствующих эффективному анализу данных.

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

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

Кроме того, Microsoft предлагает функциональность для автоматизации процессинга и обновления данных, что позволяет системам оставаться актуальными, не требуя постоянного/ручного вмешательства. Использование таких технологий, как Data Warehousing и ETL-процессы, упрощает управление данными и обеспечивает их точность и доступность.

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

Другие вендоры и их OLAP-решения


Например, компания SAP разработала свои инфокубы, которые используются для анализа данных в системе SAP BW (Business Warehouse). Работа с ними осуществляется по протоколу XMLA через MDX, хотя диалект MDX в SAP несколько отличается от стандарта.

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

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

OLAP-кубы на российском рынке


Российские вендоры частично и постепенно отказываются от OLAP-кубов (MDX) и отдают предпочтение Tabular (DAX).

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

Если рассматривать процесс обработки больших объемов данных, то OLAP обладает явными преимуществами. Он способен справляться с объемами данных, которые значительно превышают вместимость оперативной памяти сервера. С другой стороны, Tabular представляет собой более современное in-memory решение, способное сжимать данные, но ограниченное объемом доступной оперативной памяти сервера.
Хотя модель Tabular может успешно применяться в ряде корпоративных BI-систем, для более масштабных проектов часто предпочтительнее использовать более масштабируемую модель OLAP.

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

Рассматривая вопрос, с точки зрения, гибкости запросов и выражений, можно сделать вывод, что MDX предоставляет широкие возможности для создания сложных аналитических запросов. Он поддерживает сложные вычисления, вложенные запросы и продвинутые функции, что позволяет создавать более детализированные отчеты и анализы. DAX также является мощным языком формул, но он в основном ориентирован на табличные данные и не может полноценно применяться для многомерного анализа.

DAX хорошо подходит для многих задач, однако MDX предоставляет все же больше возможностей для специфичных многомерных сценариев.

OLAP-кубы в Alpha BI


Российский конструктор корпоративных аналитических решений Alpha BI, понимая все преимущества работы с кубами, не только продолжает поддерживать OLAP, но и активно развивает это направление. Используется собственный OLAP-сервер, основанный на Mondrian, который был существенно улучшен за годы работы.

В Alpha BI добавлено вертикальное масштабирование, переписана модель доступа на ролевую разрешительную, повышена производительность, а также не просто поддерживаются все функции MDX, но и разрабатываются новые.

Например, для задач процессинга OLAP-кубов и размерностей OLAP-сервер Alpha BI предлагает эффективные механизмы кэширования.

Кэширование активируется при первом запросе к данным: результаты вычислений («group by») записываются в оперативную память OLAP-сервера. Это означает, что все последующие аналитические запросы будут извлекать информацию непосредственно из кэша, минимизируя нагрузку на базу данных. Точно так же кэшируется и элементы размерностей — при первом открытии куба все необходимые справочные («select distinct») значения загружаются в кэш OLAP-сервера и остаются там для быстрого доступа в будущем.

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

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

Также в Alpha BI OLAP-кубы могут строиться на различных хранилищах данных — но есть одно важное условие: таблицы должны управляться СУБД PostgreSQL, Oracle или ClickHouse. Это дает возможность создавать кубы, которые могут работать в live-режиме с внешними по отношению AlphaBI источниками данных без необходимости перекачивания данных во собственное хранилище.

Пошаговую инструкцию создания OLAP-кубов в Alpha BI и сценарии построения АХД в зависимости от бизнес-вводных читайте здесь >>

Получите консультацию
по импортозамещению
BI-системы для вашей компании

Получите консультацию по внедрению
BI-системы для вашей компании

Заключение

OLAP-кубы — мощный инструмент многомерного анализа данных, позволяющий учитывать множество факторов и получать объективные результаты. Разработанные в Microsoft и поддерживаемые различными вендорами. OLAP-кубы находят применение в самых разных областях, от бизнес-аналитики до демографических исследований. Российская система Alpha BI демонстрирует, что этот подход остается актуальным и продолжает развиваться, предлагая новые возможности и повышая эффективность анализа данных.