Данные и аналитика

4 мин чтения

OLTP vs OLAP: почему рабочая система и аналитика хотят разную архитектуру данных

Система, которая быстро проводит множество коротких операций, и система, которая сканирует большие объёмы истории для аналитики, оптимизируются по-разному. Одна платформа редко делает оба типа работы без компромисса.

Какую проблему мы решаем

Операционная база обслуживает короткие чтения и записи, строгие ограничения и низкий latency. Аналитика создаёт другой workload: широкие выборки, агрегации и историю. Когда тяжёлый отчёт конкурирует за CPU, I/O и locks с критичным процессом, аналитическая задача начинает влиять на основной бизнес.

Как работает решение

OLTP ориентирован на большое количество небольших транзакций и актуальное состояние. OLAP — на анализ больших наборов данных и исторические срезы. Разделение не обязательно означает конкретный продукт: идея в том, чтобы workload не конкурировали за один ресурс. Данные можно переносить batch, через CDC или события в зависимости от нужной свежести.

Что получает бизнес

Бизнес получает независимость аналитики от клиентского трафика. Тяжёлый отчёт или новый dashboard меньше рискуют ухудшить основной продукт. Аналитическая платформа также может развиваться под свои требования к хранению и стоимости.

Что получает команда

Команды получают возможность отдельно оптимизировать транзакционную и аналитическую модели. Появляется явная ответственность за перенос, качество и свежесть данных между двумя контурами.

Что получает клиент

Клиент получает более стабильный основной продукт, потому что аналитические запросы меньше конкурируют с его операциями.

Чем мы за это платим

Разделение создаёт pipelines, задержку свежести, дополнительные платформы и вопросы качества. Если объём небольшой, второй контур может быть дороже проблемы, которую он решает.

Когда не нужно усложнять

Для небольшой системы отчёты из основной базы могут быть вполне рациональны. Разделение оправдано, когда аналитика заметно влияет на latency, масштабирование или развитие транзакционной части.

Что стоит спросить перед решением

В итоге

OLTP и OLAP — прежде всего разные workload, а не названия технологий. Их разделение имеет смысл, когда аналитика должна расти независимо и перестать конкурировать с основным процессом за ресурсы.