Код
#статьи

Знакомство с OLAP: что это и как работает

Рассказываем об основах популярной технологии бизнес-аналитики.

Иллюстрация: Оля Ежак для Skillbox Media

Хранилища данных можно разделить на три основных типа: SQL (реляционные), NoSQL (нереляционные) и OLAP. Они различаются между собой структурой хранения информации и областью применения.

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

Содержание

Что такое OLAP

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

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

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

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

Всё это возможно благодаря способности OLAP преобразовывать данные в OLAP-кубы и работать с ними.

Что такое OLAP-куб

В OLAP-системах информация хранится либо в реляционных базах, либо в виде специальных многомерных OLAP-кубов. Причём исходные данные для построения последних могут браться из обычных БД.

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

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

Таблица с информацией о риелторах и числе их сделок.
Иллюстрация: Skillbox Media

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

OLAP-куб, объединяющий три показателя.
Иллюстрация: Skillbox Media

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

Важно!

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

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

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

Какие типы OLAP существуют

В OLAP-системах используют один из трёх вариантов хранения данных: MOLAP, ROLAP или HOLAP. Рассмотрим каждый из них.

MOLAP (multidimensional OLAP). Первичные данные и результат их обработки хранятся в виде классических OLAP-кубов, описанных в предыдущем разделе. Это самый быстрый метод из всех трёх — пользователь сразу извлекает по запросу любой срез хранящейся информации.

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

ROLAP (relational OLAP) — исходные данные и результат их обработки хранятся в реляционных базах данных, а не в OLAP-кубе. Система проще по структуре, так как информация находится в обычных SQL-таблицах, но медленнее, чем MOLAP. Для получения каждого среза приходится отправлять несколько запросов к разным таблицам.

HOLAP (hybrid OLAP) — гибридная схема, объединяющая MOLAP и ROLAP. Первичная информация хранится в реляционной БД, а результат её анализа — в многомерном кубе. Этот вариант применяется чаще всего, так как использует сильные стороны обоих подходов.

Из чего состоит OLAP-система

В любой OLAP-системе есть несколько компонентов: хранилище, ETL-инструменты, сервер и аналитические инструменты.

Хранилище — место сбора и хранения данных, которые используются в анализе. В зависимости от принятой в компании системы — MOLAP, ROLAP или HOLAP — информация хранится в виде многомерных кубов, реляционных баз данных или в смешанном варианте.

ETL-инструменты (extract, transform, load) — набор средств извлечения, преобразования и загрузки данных в хранилище. Благодаря им информация собирается, предварительно обрабатывается и сохраняется в MOLAP, ROLAP или HOLAP для последующего анализа.

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

Аналитические инструменты нужны для взаимодействия между пользователями и хранилищем. Например, они обрабатывают запрос аналитика и передают его в хранилище, получая ответ в нужном виде. К ним относят Oracle Essbase, Microsoft SQL Server Analysis Services, ClickHouse от «Яндекса» и другие системы.

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

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

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

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

Высокая скорость предоставления данных, так как они хранятся в предобработанном виде. Другие системы, где информация собирается из разных БД, требуют больше времени для формирования ответа на запрос.

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

Где используется OLAP

OLAP — это инструмент, используемый в Business Intelligence. Такие системы собирают информацию из разных источников, обрабатывают её и представляют в виде удобных отчётов.

Что можно сделать с помощью OLAP:

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

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

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

Что запомнить

Подведём итоги того, что мы сегодня узнали:

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

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована