Перейти к основному содержимому

OLTP и OLAP

OLTP

OLTP (Online Transaction Processing) — система, предназначенная для управления и обработки множества транзакций в режиме онлайн. Транзакции обычно включают в себя операции создания, чтения, обновления и удаления (CRUD).

Алгоритм работы

  1. Ввод данных: пользователь вводит данные через интерфейс (например, форму заказа в Amazon).
  2. Валидация: система проверяет корректность и полноту введенных данных (например, проверка номера карты).
  3. Транзакция: система создает транзакцию с операциями (например, уменьшение количества товара на складе).
  4. Запись в БД: изменения сохраняются в БД, используя характеристики ACID.
  5. Подтверждение: пользователь получает уведомление об успешном выполнении транзакции (например, сообщение об успешной покупке).

Характеристики

  • Должна обрабатывать большое количество транзакций в секунду.
  • Одновременное выполнение транзакций разными пользователями.
  • Обеспечение ACID свойств для предотвращения ошибок и обеспечения надежности транзакций.

Примеры

  • Сбербанк Онлайн — банковские транзакции и управление счетами.
  • 1С:Предприятие — учет и управление предприятием.
  • Ozon — бронирование и продажа товаров, управление складскими запасами.
  • РЖД — бронирование и продажа билетов.

OLAP

OLAP (Online Analytical Processing) — система для выполнения сложных запросов и анализа больших объемов данных. Собирает информацию из БД, ERP, CRM и других источников, затем формирует многомерный массив данных для дальнейшего анализа. Эти массивы называют OLAP-кубами.

Компоненты OLAP

  • Источники данных — реляционные или многомерные БД, хранилище данных.
  • ETL-инструменты (extract, transform, load) — набор средств извлечения, преобразования и загрузки данных в хранилище.
  • OLAP-сервер — управляет многомерными массивами данных.
  • Аналитические инструменты — для формирования отчетов, графиков, диаграмм для пользователей.

Алгоритм работы

  1. Данные поступают из различных источников: таких как OLTP системы, файлы, сторонние API в ETL систему.
  2. Процесс ETL:
    • Извлечение данных.
    • Данные очищаются, нормализуются и преобразуются.
    • Загрузка в OLAP хранилище.
  3. Данные организуются в многомерные структуры (кубы): для быстрого выполнения аналитических запросов.
  4. Пользователь запрашивает данные через аналитический интерфейс: выполняются аналитические запросы (агрегация, фильтрация, анализ).
  5. Результаты анализа визуализируются: создаются отчеты и дашборды.

Характеристики

  • Скорость выполнения запросов важна, но не критична.
  • Анализ данных по разным измерениям (по времени, региону, продукту).
  • Эффективная обработка терабайтов данных.
  • Обработка сложных аналитических запросов, включая агрегирование и группировку данных.

Примеры систем

  • Yandex DataLens — визуализация и анализ данных.
  • Microsoft Power BI — инструмент бизнес-анализа.
  • Vertica — БД для OLAP.

Связь между OLTP и OLAP

OLTP и OLAP системы дополняют друг друга в процессе управления данными и аналитики:

  • OLTP системы генерируют и собирают данные через транзакционные операции. Данные используются в OLAP системах для анализа и отчетности.
  • Данные из OLTP систем извлекаются, преобразуются и загружаются в OLAP системы для анализа.
  • Результаты анализа из OLAP систем могут влиять на операции в OLTP системах (например, анализ покупательского поведения может привести к изменениям в маркетинговых кампаниях или стратегиях продаж).

Пример компонентов архитектуры с OLTP и OLAP системами

OLTP

  • Пользовательский интерфейс (UI): веб-приложение / мобильное приложение.
  • Серверное приложение: для обработки транзакций и бизнес-логики.
  • Реляционная БД: для хранения транзакционных данных.

OLAP

  • ETL Процесс: извлечения, трансформации и загрузки данных из OLTP БД в хранилище данных.
  • Хранилище данных: централизованное, для анализа данных.
  • Аналитические инструменты (BI Tools): для анализа данных и создания отчетов.

Сравнительная таблица

КритерийOLAPOLTP
Основное назначениеАнализ данных, выполняются сложные запросы с большим количеством записейОбработка транзакций, выполняются простые запросы, включающие всего одну или несколько записей
Типы операцийЧтение, агрегация, анализВставка, обновление, удаление, чтение
Структура данныхМногомерные кубы, денормализованныеНормализованные таблицы
Объем данныхБольшие объемы исторических данныхМеньшие объемы оперативных данных
Время откликаСекунды, минутыМиллисекунды
Тип пользователейАналитики, менеджерыОперативные сотрудники, кассиры
Примеры запросовСложные аналитические запросыПростые транзакционные запросы
Примеры системAmazon Redshift, Google BigQuery, YandexMySQL, PostgreSQL, Oracle Database
Пространство для хранения данныхЗначительное, так как сохраняются большие объемы исторических данныхОтносительно небольшое
Структура храненияData Warehouse, кубыРеляционные базы данных
Влияние наВысокая нагрузка на чтениеВысокая нагрузка на запись
ЦельПоддержка принятия решенийПоддержка операционной деятельности

Подборка материалов по OLAP и OLTP

  1. Введение в многомерный анализ
  2. Практика реализации сложных OLTP-систем
  3. Системы обработки транзакций. Оперативная обработка транзакций (OLTP)
  4. Что такое OLTP?
  5. Что такое OLTP? Архитектура, пример
  6. Пример БД для выполняющейся в памяти OLTP
  7. OLAP: что это и как работает, какие типы существуют
  8. OLAP и многомерные СУБД: как устроен оперативный анализ данных
  9. Введение в OLAP и многомерные базы данных
  10. Виды OLAP систем
  11. Инструменты обработки OLAP-запросов для Big Data
  12. Коротко о ETL
  13. ETL-процессы: суть и задачи
  14. OLTP против OLAP: две стороны одной медали данных?
  15. О базах данных просто. Различия OLAP и OLTP
  16. Принципы построения систем, ориентированных на анализ данных
  17. Репликация из OLTP в OLAP базу данных
  18. Горизонтальное масштабирование серверов баз данных для OLTP-систем
  19. ClickHouse — столбцовая СУБД для онлайн-обработки аналитических запросов (OLAP)
  20. Введение в многомерный анализ и OLAP-технологии

Видео

  1. OLAP и OLTP: практическое сравнение
  2. Что такое OLAP за 8 минут
  3. DATALEARN | Ох уж эти Кубы OLAP (MOLAP VS ROLAP)
  4. OLAP-кубы