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 свежести для дашбордов.