Вопрос проверяет понимание принципиального различия между транзакционными и аналитическими системами хранения данных.
OLTP-системы предназначены для обработки большого количества коротких транзакций. OLAP-системы используются для аналитических запросов и агрегаций. OLTP оптимизированы под запись и обновление данных. OLAP — под чтение больших объёмов. Эти системы решают разные задачи и редко заменяют друг друга.
Разделение на OLTP и OLAP — одно из ключевых понятий в архитектуре backend- и data-систем.
OLTP (Online Transaction Processing) — системы для обработки транзакций.
OLAP (Online Analytical Processing) — системы для аналитической обработки данных.
OLTP ориентированы на оперативную работу приложения.
Характеристики:
много коротких запросов;
частые INSERT, UPDATE, DELETE;
работа с небольшим числом строк;
строгие транзакции и блокировки.
Примеры задач:
оформление заказа;
обновление профиля пользователя;
платежи.
OLAP предназначены для анализа данных.
Характеристики:
редкие, но тяжёлые запросы;
агрегации (SUM, COUNT, GROUP BY);
чтение миллионов строк;
минимальное количество обновлений.
Примеры задач:
отчёты;
аналитика;
BI-дашборды.
Попытка решить обе задачи одной системой приводит к:
падению производительности;
усложнению схемы;
росту стоимости поддержки.
Поэтому часто используют:
OLTP-БД для приложения;
OLAP-хранилище для аналитики.
OLTP и OLAP решают разные задачи: первая — стабильная работа приложения, вторая — анализ данных. Их нужно рассматривать как дополняющие, а не конкурирующие системы.