Почти в каждой компании однажды наступает момент, когда отчёт по продажам за год строится двадцать минут, а учётная система в это время тормозит у всех сотрудников. Причина не в слабом сервере, а в том, что учётная база устроена для другой работы. OLAP — способ решить эту проблему.
Две разные задачи: учёт и анализ
Учётная система (1С, CRM, складская программа) записывает события: продажу, отгрузку, платёж. Таких операций тысячи в день, каждая затрагивает несколько строк, и база оптимизирована именно под это. Такой режим работы называют OLTP (online transaction processing).
Аналитический запрос устроен наоборот. «Выручка по регионам и товарным группам по месяцам за три года» читает миллионы строк, но ничего не меняет. Если выполнять его в учётной базе, он мешает пользователям, а сам работает медленно, потому что учётная база хранит данные в удобном для записи, а не для подсчёта виде.
OLAP (online analytical processing) — подход, при котором данные для анализа хранятся отдельно и в другой форме: заранее подготовленными, связанными и частично посчитанными. Термин предложил Эдгар Кодд в 1993 году, но сама идея стала массовой с появлением серверов вроде Microsoft SQL Server Analysis Services (SSAS).
Что получает бизнес
- Скорость. Отчёт, который в учётной базе строился минуты, в аналитической модели открывается за секунды, потому что агрегаты посчитаны заранее или хранятся в сжатом виде в памяти.
- Одна версия правды. Формула «валовой прибыли» или «среднего чека» описывается в модели один раз. Финансовый отдел и отдел продаж больше не спорят, чья таблица в Excel правильная.
- Самостоятельность пользователей. Модель подключается к Excel и Power BI как сводная таблица: пользователь сам выбирает разрезы и показатели, не дожидаясь, пока ИТ напишет новый запрос.
- Разграничение доступа. Региональный менеджер видит только свой регион, хотя пользуется той же моделью, что и директор.
Из чего состоит решение
Типичная архитектура выглядит так:
- Источники — учётные системы, CRM, файлы.
- Хранилище данных (DWH) — отдельная база, куда данные регулярно загружаются, очищаются и приводятся к единым справочникам.
- Аналитическая модель — OLAP-куб или табличная модель SSAS поверх хранилища. Здесь живут меры, иерархии и правила доступа.
- Клиенты — Excel, Power BI, веб-отчёты.
Хранилище можно не строить, если источник один и данных немного. Но как только появляется второй источник или нужна история изменений справочников, без хранилища модель становится хрупкой.
Когда OLAP точно нужен
- Отчёты строятся долго, и это мешает работе учётной системы.
- Одинаковые показатели считаются по-разному в разных отделах.
- Аналитики тратят дни на выгрузки и сведение таблиц в Excel.
- Руководству нужен ежедневный срез без участия программиста.
В следующей статье разберём, как устроен сам куб: что такое измерения, меры и почему «срез» — не просто метафора.