OLAP-кубы: что это простыми словами
Коротко
OLAP-куб — это многомерная таблица, в которой числовые показатели бизнеса разложены по признакам: время, регион, товар, клиент, канал. Вместо того чтобы каждый раз сводить выгрузку заново, вы выбираете нужные признаки и сразу видите сумму, среднее или другое значение по ним.
Что такое OLAP-куб
OLAP (OnLine Analytical Processing) — оперативная аналитическая обработка данных: анализ в реальном времени, когда ответ на вопрос приходит за секунды, а не после ночной выгрузки. Куб — способ так данные хранить.
Представьте таблицу продаж, у которой каждая строка — один чек. В ней есть дата, магазин, товар, клиент и сумма. Куб — это та же информация, но разложенная по граням: по времени, по магазину, по товару. Выбираете грань «товар» и грань «месяц» — получаете продажи каждого товара по месяцам. Меняете месяц на регион — получаете ту же цифру по регионам.
Слово «куб» здесь условное: граней может быть три, пять или двадцать. Важно, что показатели раскладываются по любым сочетаниям признаков, а не по одному заранее заданному.
Из чего состоит куб
- Измерения — признаки, по которым смотрите цифры: время, регион, товар, клиент, канал продаж, менеджер. Внутри измерения бывают уровни: год → квартал → месяц → день, страна → город → магазин.
- Меры — числовые показатели, которые считают: выручка, прибыль, количество продаж, число клиентов. По ним и работают сумма, среднее, минимум и максимум.
- Таблица фактов — строки с событиями: чек, заказ, отгрузка. В ней записано, что произошло, когда, с кем и на какую сумму.
- Иерархии — порядок уровней внутри измерения. Они позволяют смотреть цифру сверху, по стране, и проваливаться вниз, до отдельного магазина.
Что с кубом делают на практике
Срез — выбрать одно значение признака: продажи только за март или только по Москве. Вращение — поменять признаки местами: смотреть товары по месяцам, а потом месяцы по товарам. Свёртка и детализация — подняться с магазина до города и спуститься обратно до конкретной точки.
Отсюда главная польза для собственника: один и тот же куб отвечает на десятки вопросов без новой выгрузки. Какой товар приносит прибыль в каждом регионе, какой канал растёт третий месяц, у какого менеджера падают продажи в определённой категории.
Чем куб отличается от выгрузки в Excel
| OLAP-куб | Выгрузка в таблицу | |
|---|---|---|
| Новый разрез | Сразу, без пересчёта | Заново сводить формулами или сводной |
| Объём данных | Хранит миллионы строк | Тяжелеет и виснет на больших файлах |
| Кто собирает | Настроено один раз, дальше обновляется | Каждый раз руками, у каждого своя версия |
| Риск ошибки | Считает одна модель | Каждая копия файла считается по-своему |
Какие бывают виды OLAP
- MOLAP — данные лежат в самом кубе, в многомерной структуре. Самый быстрый вид: сервер сразу берёт нужные значения из куба. Минус — куб занимает много места на диске и в памяти, а запись обычно идёт в одном потоке при чтении из многих.
- ROLAP — данные остаются в обычной реляционной базе, куб работает поверх неё. Гибче и дешевле по хранению, но отвечает медленнее.
- HOLAP — смешанный: сводные значения хранятся в кубе, детальные — в реляционной базе. Компромисс между скоростью и объёмом.
Частые вопросы
OLAP-куб — это программа или файл?
Это модель данных и способ её хранения. Строят кубы в аналитических системах, например в Microsoft Analysis Services, а смотреть их можно в Excel, в панели или в отчёте. Сам по себе куб — не отчёт, а источник, из которого отчёт собирают.
Нужен ли куб компании с небольшим оборотом?
Пока все цифры помещаются в одну таблицу и сводятся за минуту, куб не нужен. Он окупается, когда данных много, вопросы повторяются каждый день и на каждую выгрузку уходит полдня.
Чем OLAP отличается от OLTP?
OLTP — системы, которые ведут текущие операции: касса, CRM, склад. Они записывают каждый чек и заявку. OLAP — системы, которые эти записи анализируют: считают суммы и сравнения по признакам. Одна и та же компания пользуется обеими.
Куб показывает данные в реальном времени?
Настолько, насколько часто он обновляется. Куб можно пересобирать по расписанию, например каждую ночь, или подгружать свежие данные по мере поступления. Скорость ответа на запрос и свежесть данных — разные вещи.
Можно ли построить куб на данных из CRM и 1С?
Да, это обычный путь: данные из CRM, учёта и рекламных кабинетов сводят в одно хранилище, а поверх строят куб. Сложность в том, чтобы свести справочники — товары, клиентов, каналы — к единым спискам.
Почему куб отвечает быстро?
Потому что сводные значения посчитаны заранее и лежат готовыми. Запрос не пересчитывает миллионы строк, а берёт уже готовую цифру по нужной грани.
Посчитать рядом
Когда цифры есть, а картины нет
Чтобы куб и панель показывали прибыль, а не просто выручку
Куб отвечает на вопрос «сколько», но не на вопрос «заработали ли». Выручка по регионам и товарам видна, а прибыль после себестоимости, рекламы и доставки — нет, пока эти расходы не сведены к тем же признакам.
Я собираю цифры бизнеса на одном экране: выручку, заявки, деньги и маржу, которые обновляются сами. Куб и панель стоят на одних и тех же данных, поэтому собственник видит бизнес за пять минут в день.