Попробовать бесплатно

OLAP и OLTP

Граница между OLTP и OLAP объясняет, почему обычно нельзя «просто построить аналитику в боевой базе» и зачем нужны отдельные хранилища.

OLTP

  • Оптимизирован под короткие транзакции с строгими гарантиями ACID.
  • Хранение по строкам — удобно для записи и точечных чтений.
  • Объёмы: миллионы или сотни миллионов строк, не более.
  • Примеры: PostgreSQL, MySQL, MS SQL Server, Oracle.

OLAP

  • Оптимизирован под аналитические запросы по огромным таблицам.
  • Колонное хранение и сжатие — гораздо быстрее агрегатов.
  • Объёмы: миллиарды и триллионы строк.
  • Примеры: BigQuery, Snowflake, Redshift, ClickHouse, Vertica.

Почему важно различать

  • Тяжёлые аналитические запросы в OLTP роняют продукт.
  • OLAP плохо подходит для записи единичных строк и онлайн-операций.
  • В современных архитектурах эти роли разделяют намеренно и связывают пайплайнами.

Когда применять и когда нет

Применять

  • При проектировании архитектуры данных компании
  • При выборе базы под новый продукт или новый аналитический проект
  • В обсуждении производительности отчётов и нагрузки на продукт

Не применять

  • В очень маленьком проекте — обычно никаких отдельных OLAP-систем не нужно, всё помещается в одну OLTP-базу с view-аналитикой

Примеры применения

Команда продукта решает построить «дашборд для руководства» прямо в Postgres-базе сервиса. После пары запросов с агрегатами по миллионам строк продакшн «лёг» на 10 минут. Через неделю команда подняла отдельный ClickHouse, налила туда нужные данные через пайплайн, и нагрузка на продукт перестала зависеть от аналитики совсем. Один и тот же отчёт в Postgres шёл 45 секунд, в ClickHouse — 200 миллисекунд.

Часто задаваемые вопросы

Готовы применить теорию на практике?

Соберите команду в Shtab — единое пространство для проектов, целей и задач. Бесплатно до 5 человек.