OLTP (Online Transaction Processing) – это модель для оперативной транзакционной обработки данных. OLTP-системы обслуживают множество небольших операций (вставка, обновление, удаление) с минимальной задержкой. Главная цель – обеспечить быстрые и надежные транзакции (например, оформление заказа, банковский перевод) в режиме реального времениdecosystems.ru. Данные в OLTP носят текущий характер и хранятся в небольших объёмах, но система рассчитана на частые изменения и высокую конкурентную нагрузку. Например, интернет-магазин с OLTP-базой данных моментально регистрирует оплату клиента, обновляет остатки на складе и подтверждает заказdecosystems.ru. Преимущества OLTP: высокая скорость операций, поддержка большого числа одновременных пользователей, простое масштабирование под рост нагрузкиdecosystems.ru. Недостаток – такая система оптимизирована под транзакции, а не под сложные аналитические запросы.

OLAP (Online Analytical Processing) – модель для аналитической обработки данных. OLAP-системы предназначены не для записи транзакций, а для чтения больших массивов накопленных данных и выполнения сложных запросов, агрегирования и анализаdecosystems.ru. Их цель – поддержка бизнес-аналитики и стратегических решений. OLAP оперирует историческими данными в больших объёмах, часто денормализованными ради ускорения чтения. Например, OLAP-решение позволит проанализировать, какие товары лучше всего продавались за квартал и как спрос различается по регионамdecosystems.ru. OLAP-система обычно обновляется периодически из OLTP-источников и оптимизирована под тяжёлые выборки, построение отчётов и многомерный анализ данных (по времени, продуктам, клиентам и т.д.). Преимущества OLAP: возможность выявлять скрытые закономерности, анализировать тренды и строить прогнозы на основе больших исторических данныхdecosystems.ru. Недостатки: данные не такие актуальные (есть лаг из-за периодических загрузок), ниже скорость ответа на единичный запрос, сложность внедрения и поддержки отдельной аналитической базы.

Сравнение OLTP и OLAP: OLTP фокусируется на быстрых транзакциях и обеспечении целостности данных для повседневных операций, тогда как OLAP ориентирован на глубину анализа и гибкость сложных запросов. OLTP хранит только актуальные данные (например, текущий остаток на счёте), OLAP хранит исторические сведения за длительный период для выявления тенденцийdecosystems.ru. Структура OLTP, как правило, нормализована (чтобы избегать избыточности и обеспечивать целостность при обновлениях), а в OLAP часто используется денормализация (звездная схема и пр.) ради быстрого чтения. Пользователи тоже разные: OLTP-системой пользуются операционные сотрудники и сама система (для записи транзакций), OLAP-отчётами – аналитики и руководствоdecosystems.ru. В итоге, обе модели дополняют друг друга: OLTP – «сердце» оперативной работы, OLAP – «мозг» для анализа и отчетности. В связке они позволяют сначала надёжно собрать данные, а затем эффективно проанализировать их и поддержать принятие решенийdecosystems.ru.

Таблицы фактов и измерений

В традиционных аналитических моделях (хранилищах данных) данные организуются в таблицы фактов и таблицы измерений. Эти понятия пришли из методологии Ральфа Кимбелла для моделирования данных в системах OLAP.

Таблица фактов – основная таблица хранилища, содержащая факты о бизнес-событиях или транзакциях, которые предстоит анализироватьru.wikipedia.orgru.wikipedia.org. Записи в таблице фактов обычно являются неизменяемыми фактами (например, продажа, транзакция) с максимально детальной гранулярностью – то есть каждая запись соответствует отдельному событию (например, одна строка – это покупка конкретного товара клиентом в определённое время)ru.wikipedia.orgru.wikipedia.org. Таблица фактов содержит числовые показатели (метрики), такие как количество, сумма, стоимость, продолжительность и т.д., по которым в дальнейшем вычисляются агрегаты (итоги, средние, минимумы/максимумы) при анализе. Также в таблице фактов хранятся внешние ключи на связанные таблицы измерений – обычно в виде составного ключа из нескольких ID, ссылающихся на размерыru.wikipedia.org. Например, в таблице фактов «Продажи» колонками могут быть: ID товара, ID клиента, ID даты, количество единиц, сумма продажи. Сотни тысяч и миллионы записей фактов хранятся с числовыми кодами вместо текстовых данных – подробное описание выносится в таблицы измерений, чтобы избежать дублирования текста в фактахru.wikipedia.org.