TGViewer
Женя Янченко Женя Янченко @jane_yanchenko · 5.51K subscribers
Post #41 2.05K
OLTP и OLAP

Базы данных можно разделить на две категории:
➖ OLTP — оптимизированные для обработки транзакций
➖ OLAP — оптимизированные для аналитических запросов
‰‰
OLTP-системы обычно нацелены на работу с пользователями. По запросу пользователя приложение ищет небольшое количество записей (обычно с помощью индекса). На основе вводимых пользователем данных вставляются или обновляются записи.

Например, заказы в интернет-магазине хранятся в OLTP базе. Типичные запросы при работе с заказами:
🔵создание заказа
🔵обновление статуса заказа
🔵просмотр списка заказов

OLAP системы предназначены для работы аналитиков.

Например, аналитические запросы в интернет-магазине:
❓сколько телефонов этой модели продавалось каждый месяц?
❓на сколько больше их было продано во время рекламной акции?
❓какие аксессуары чаще всего покупают с этими телефонами?

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

Обычно аналитический запрос должен просмотреть огромное количество записей, прочитать в каждой записи только несколько столбцов, возможно отфильтровать записи и вычислить сводные статистические показатели. Такие запросы часто являются ресурсоемкими. Они могут ухудшать производительность базы в части выполняемых в этот момент запросов пользователей (транзакций). Поэтому данные из OLTP баз выгружают в отдельные OLAP хранилища, с которыми уже работают аналитики. OLAP базы оптимизированы в расчете на аналитические паттерны доступа.

Процесс выгрузки известен под названием ETL (extract — transform — load).

Часто в качестве OLAP систем используются колоночные базы данных (ClickHouse, Vertica). В большинстве OLTP баз данные хранятся построчно: все значения из одной строки таблицы хранятся рядом друг с другом. В колоночных базах рядом хранятся значения не из одной строки, а из одного столбца. Это позволяет загружать с диска только те столбцы, которые нужны для запроса. Плюс данные можно сжать.

Данные можно хранить отсортировано. Сортировка должна быть для всех строк одинаковая, поскольку файлы всех столбцов содержат строки в одинаковом порядке. При необходимости собрать воедино целую строку можно взять из всех файлов отдельных столбцов 57-й элемент и собрать их вместе для формирования 57-й строки таблицы.

OLAP система не значит обязательно колоночная БД. Это может быть и обычная построчная БД. Однако колоночные базы работают намного быстрее при произвольных аналитических запросах, поэтому их часто используют в качестве OLAP систем.

На этом завершаем обсуждение 3-й главы.
Для удобства поиска добавила теги.

#кабанчик #сисдиз
  • 👍 12
  • ❤ 6
More from @jane_yanchenko
  1. Sep 25, 2026В прошлой жизни, когда я была менеджером проектов, одним из первых мест работы у меня был…
  2. Sep 23, 2026Куда пропало обращение - развязка В прошлом посте у нас загадочно пропало обращение 58122.…
  3. Sep 23, 2026Куда пропало обращение Однажды от руководителя техподдержки пришло письмо, суть которого с…
  4. Sep 21, 2026🔗 Подборка постов про Кафку Как обещала на стриме, собрала посты про Кафку в удобное огла…
  5. Sep 21, 2026🎞 Готова запись стрима про Кафку: https://youtu.be/2aRKsD-MWDA Большое спасибо всем, кто…
  6. Sep 16, 2026Сегодня стрим по Кафке в 19:00 Планируем не в формате доклада, а в формате вопрос-ответ, ч…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →