Что такое OLAP?
OLAP означает Online Analytical Processing. Это широкий термин, на который можно взглянуть с двух точек зрения: технической и бизнес. На самом высоком уровне можно просто прочитать эти слова задом наперед:
Обработка : Некоторые исходные данные обрабатываются...
Аналитический : ...для создания аналитических отчетов и выявления инсайтов...
Онлайн : ...в реальном времени.
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 хранят данные, организованные по строкам.