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

Что такое OLAP?

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

Processing — Исходные данные обрабатываются…

Analytical — …чтобы получить аналитические отчёты и выводы…

Online — …в режиме реального времени.

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

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

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

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-систем хранят данные, организованные по строкам.