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

Что такое OLAP?

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

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

Аналитическая : ...для получения аналитических отчетов и инсайтов...

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

OLAP с бизнес-перспективы

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

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

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

OLAP с технической перспективы

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

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

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

Фундаментальный компромисс между системами OLAP и OLTP остается:

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