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

Что такое OLAP?

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

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

Аналитическая : …для производства аналитических отчетов и инсайтов…

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

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

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

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

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

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

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

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

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

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

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