advanced

OLTP versus OLAP

Разделяйте transactional serving workloads и analytical workloads с разными schemas, latency и query patterns.

OLTP (Online Transaction Processing) обслуживает множество коротких чтений и записей с сильной консистентностью на уровне строк — заказы, балансы, склад. OLAP (Online Analytical Processing) — редкие тяжёлые сканы и агрегации по большой истории — дашборды, воронки, финансовые отчёты.

| | OLTP | OLAP | |---|------|------| | Запросы | Точечные lookup, малые join | Сканы, GROUP BY, оконные функции | | Схема | Нормализованная, часто 3NF | Звезда/снежинка, широкая денормализация | | Латентность | Миллисекунды | Секунды и минуты допустимы | | Хранилище | Postgres, MySQL | Warehouse, lakehouse, колоночные |

Аналитика напрямую на прод OLTP без ограждений даёт contention, lag реплик и случайные full scan. Типичный паттерн: CDC или ETL в warehouse; OLTP остаётся system of record.

На интервью: классифицируйте нагрузку запросов; объясните, почему отчёт revenue-by-region не гоняют на primary OLTP без изоляции.

Типовые ошибки: одна БД на всё; BI на primary; звезда в OLTP «для удобства»; игнор late-arriving фактов в аналитике.

Компромисс — корректность и низкая латентность сервинга (OLTP) против пропускной способности сканов и глубины истории (OLAP); обычно это разные системы, связанные пайплайнами.

Чеклист:

  • Определите workload OLTP vs OLAP.
  • Сравните схемы и формы запросов.
  • Назовите путь синхронизации: ETL, ELT, CDC.
  • Защитите OLTP от аналитических сканов.
  • Укажите SLA свежести для дашбордов.