Аналитика и данныеИнфраструктура данных

OLAP и OLTP (аналитические и транзакционные базы данных)

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

КРАТКО
OLAP и OLTP — два класса баз данных с разными задачами. OLTP обслуживает продукт: быстро вставляет и обновляет записи, держит сотни тысяч транзакций в секунду. OLAP считает аналитику: тяжёлые запросы по миллионам и миллиардам строк, где важна скорость агрегатов, а не записи. PostgreSQL и MySQL обычно работают как OLTP, ClickHouse, BigQuery и Snowflake — как OLAP.
СИНОНИМЫ:OLAPOLTPаналитические базы данныхтранзакционные базы данныхоперативная аналитическая обработка

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

OLTP

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

OLAP

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

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

  • Тяжёлые аналитические запросы в боевой базе роняют продукт.
  • OLAP плохо подходит для записи единичных строк и операций в реальном времени.
  • В современных архитектурах эти роли разделяют намеренно и связывают регулярными загрузками данных.
КОГДА ПРИМЕНЯТЬ
  • При проектировании архитектуры данных компании
  • При выборе базы под новый продукт или новый аналитический проект
  • В обсуждении скорости отчётов и нагрузки на продукт
КОГДА НЕ СТОИТ
  • В очень маленьком проекте отдельная аналитическая система не нужна — всё помещается в одну транзакционную базу с представлениями для отчётов
ПРИМЕР

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

КАК ИСПОЛЬЗОВАТЬ В SHTAB

Договоритесь в команде: новые продуктовые таблицы живут в OLTP, аналитические витрины — в OLAP, а данные между ними двигаются регулярными загрузками. Любая попытка временно посчитать аналитику в боевой базе имеет неприятную привычку становиться постоянной. Зафиксируйте правило в базе знаний Shtab, чтобы новые разработчики видели его до инцидента, а не после.

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

Вопросы про «OLAP и OLTP (аналитические и транзакционные базы данных)»

В небольших объёмах — да, многие транзакционные базы тянут аналитические запросы поверх обычных индексов. Но по мере роста таблиц и числа запросов скорость быстро падает, отчёты начинают мешать продукту, и нагрузку приходится разводить по отдельным системам. Обычно этот момент наступает раньше, чем команда успевает к нему подготовиться.

Применяйте термины на практике

База знаний, задачи и цели — в одном сервисе. Бесплатно — без лимита по числу людей.