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