Что такое OLAP?
OLAP расшифровывается как Online Analytical Processing (онлайн аналитическая обработка). Это широкий термин, который можно рассмотреть с двух точек зрения: технической и бизнес. На самом высоком уровне вы можете прочитать эти слова задом наперед:
Обработка — Некоторые исходные данные обрабатываются…
Аналитическая — …для получения аналитических отчетов и аналитики…
Онлайн — …в реальном времени.
OLAP с бизнес-точки зрения
В последние годы бизнесмены начали осознавать ценность данных. Компании, которые принимают решения вслепую, как правило, не успевают за конкурентами. Подход, основанный на данных, успешных компаний, заставляет их собирать все данные, которые могут быть хотя бы отдаленно полезны для принятия бизнес-решений, и налагает на них необходимость в механизмах, которые позволяют анализировать эти данные своевременно. Здесь на помощь приходят системы управления базами данных OLAP.
С бизнес-точки зрения OLAP позволяет компаниям непрерывно планировать, анализировать и составлять отчеты об операционной деятельности, тем самым максимизируя эффективность, снижая затраты и в конечном итоге завоевывая долю на рынке. Это может осуществляться как в системах, разрабатываемых внутри компании, так и за счет услуг SaaS, таких как веб/мобильные аналитические сервисы, CRM-сервисы и т.д. OLAP — это технология, лежащая в основе многих приложений BI (бизнес-аналитики).
ClickHouse — это система управления базами данных OLAP, которая довольно часто используется в качестве бэкенда для таких SaaS-решений по анализу данных, специфичных для определенной области. Однако некоторые компании все же не спешат делиться своими данными с третьими сторонами, поэтому сценарий с локальным хранилищем данных также является жизнеспособным.
OLAP с технической точки зрения
Все системы управления базами данных можно классифицировать на две группы: OLAP (онлайн аналитическая обработка) и OLTP (онлайн транзакционная обработка). Первая ориентирована на создание отчетов, каждый из которых основан на больших объемах исторических данных, но делается это реже. Вторая, как правило, обрабатывает постоянный поток транзакций, постоянно изменяя текущее состояние данных.
На практике OLAP и OLTP не рассматриваются как бинарные категории, а скорее как спектр. Большинство реальных систем обычно сосредоточены на одном из направлений, но предлагают некоторые решения или обходные пути, если требуется и противоположный тип нагрузки. Эта ситуация часто заставляет компании использовать несколько интегрированных систем хранения данных. Это может и не быть большой проблемой, но наличие большего числа систем увеличивает затраты на обслуживание, поэтому в последние годы наблюдается тенденция к HTAP (гибридная транзакционная/аналитическая обработка), когда оба типа нагрузки обрабатываются одинаково эффективно одной системой управления базами данных.
Даже если СУБД изначально была задействована как чисто OLAP или OLTP, она вынуждена двигаться в направлении HTAP, чтобы не отставать от конкурентов. ClickHouse не является исключением. Изначально он был разработан как OLAP-система с максимальной скоростью, и у него по-прежнему нет полноценной поддержки транзакций, но некоторые функции, такие как согласованные чтения/записи и мутации для обновления/удаления данных, были добавлены.
Фундаментальный компромисс между системами OLAP и OLTP остается:
- Для эффективного построения аналитических отчетов крайне важно уметь читать колонки отдельно, поэтому большинство OLAP баз данных являются столбцовыми;
- В то время как хранение колонок отдельно увеличивает затраты на операции со строками, такие как добавление или модификация на месте, пропорционально количеству колонок (которое может быть огромным, если системы пытаются собрать все детали события на всякий случай). Таким образом, большинство OLTP систем хранят данные, упорядоченные по строкам.