Перейти к основному содержимому
Перейти к основному содержимому

Что такое OLAP?

OLAP расшифровывается как Online Analytical Processing. Это широкий термин, который можно рассматривать с двух перспектив: технической и бизнес. На самом высоком уровне вы можете просто прочитать эти слова с конца:

Обработка некоторые исходные данные обрабатываются...

Аналитическая ...для составления аналитических отчетов и выводов...

Онлайн ...в реальном времени.

OLAP с точки зрения бизнеса

В последние годы бизнес стал осознавать ценность данных. Компании, которые принимают решения вслепую, чаще всего не успевают за конкурентами. Подход, ориентированный на данные, успешных компаний заставляет их собирать все данные, которые могут быть даже отдаленно полезны для принятия бизнес-решений, и налагает на них необходимость в механизмах, которые позволяют анализировать эти данные своевременно. Вот здесь и приходят на помощь системы управления базами данных (СУБД) OLAP.

С бизнес-точки зрения OLAP позволяет компаниям постоянно планировать, анализировать и отчитываться о своей операционной деятельности, тем самым максимизируя эффективность, снижая расходы и, в конечном итоге, завоевывая долю рынка. Это может быть реализовано как в собственных системах, так и с помощью сторонних поставщиков SaaS, таких как веб/мобильные аналитические сервисы, CRM-сервисы и т.д. OLAP является технологией, стоящей за многими приложениями бизнес-аналитики (BI).

ClickHouse является СУБД OLAP, которая довольно часто используется в качестве бэкенда для таких SaaS-решений по анализу данных, специфичных для домена. Однако некоторые компании по-прежнему неохотно делятся своими данными с третьими сторонами, поэтому сценарий с собственным хранилищем данных также целесообразен.

OLAP с технической точки зрения

Все системы управления базами данных можно классифицировать на две группы: OLAP (Online Analytical Processing) и OLTP (Online Transactional Processing). Первая группа сосредоточена на составлении отчетов, каждый из которых основан на больших объемах исторических данных, но при этом делается это менее часто. Вторая группа обычно обрабатывает непрерывный поток транзакций, постоянно модифицируя текущее состояние данных.

На практике OLAP и OLTP не рассматриваются как бинарные категории, а скорее как спектр. Большинство реальных систем обычно фокусируются на одной из них, но предлагают некоторые решения или обходные пути, если требуется противоположный тип нагрузки. Эта ситуация часто заставляет бизнес работать с несколькими интегрированными системами хранения. Это может не быть такой уж большой проблемой, но наличие большего количества систем увеличивает затраты на обслуживание, и, таким образом, в последние годы наблюдается тенденция к HTAP (Hybrid Transactional/Analytical Processing), когда обе нагрузки обрабатываются одинаково хорошо одной и той же системой управления базами данных.

Даже если СУБД изначально была чисто OLAP или OLTP, ей приходится двигаться в сторону HTAP, чтобы не отставать от конкурентов. ClickHouse не является исключением. Изначально он был разработан как OLAP-система, максимально быстрая, и по-прежнему не поддерживает полноценные транзакции, но некоторые функции такие как согласованные чтения/записи и мутации для обновления/удаления данных были добавлены.

Основной компромисс между системами OLAP и OLTP остается:

  • Для эффективного составления аналитических отчетов важно уметь читать колонки отдельно, поэтому большинство OLAP баз данных являются столбцовыми,
  • В то время как хранение колонок отдельно увеличивает затраты на операции со строками, такие как добавление или модификация на месте, пропорционально количеству колонок (что может быть огромным, если системы пытаются собрать все детали события «на всякий случай»). Таким образом, большинство OLTP систем организуют данные по строкам.