Что такое OLAP?
OLAP расшифровывается как Обработка Аналитических Данных в Режиме Онлайн. Это широкий термин, который можно рассматривать с двух точек зрения: технической и бизнес. Но на самом высоком уровне, вы можете просто прочитать эти слова в обратном порядке:
Обработка : Некоторые исходные данные обрабатываются...
Аналитические : ...для получения аналитических отчетов и выводов...
Онлайн : ...в реальном времени.
OLAP с точки зрения бизнеса
В последние годы бизнесмены начали осознавать ценность данных. Компании, которые принимают решения вслепую, чаще всего не могут конкурировать. Подход, ориентированный на данные, успешных компаний заставляет их собирать все данные, которые могут быть отдаленно полезны для принятия бизнес-решений, и нуждаться в механизмах для своевременного анализа. Вот где на помощь приходят системы управления базами данных (БД) OLAP.
С точки зрения бизнеса, OLAP позволяет компаниям постоянно планировать, анализировать и отчитываться о операционной деятельности, тем самым максимизируя эффективность, снижая расходы и в конечном итоге завоевывая долю рынка. Это можно сделать как в рамках внутренней системы, так и передав на аутсорсинг поставщикам SaaS, таким как веб/мобильные аналитические сервисы, CRM-сервисы и т.д. OLAP — это технология, стоящая за многими приложениями бизнес-аналитики (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-систем хранят данные, организованные по строкам.