digital-garden/dev/database/Online Analytical Processing.md
Struchkov Mark efdea249be
All checks were successful
continuous-integration/drone/push Build is passing
Таблицы сателиты.md
2024-11-25 18:27:25 +03:00

45 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- OLAP
tags:
- maturity/🌱
date: 2024-03-31
---
OLAP (Online Analytical Processing) — это тип нагрузки, который ориентирован на выполнение сложных аналитических запросов, охватывающих большие объемы данных. OLAP используется для построения отчетов, аналитики и поддержки принятия решений, где важно работать с историческими данными и выполнять сложные агрегации.
**Особенности:**
- Источником для OLAP являются различные [[Online Transaction Processing|OLTP]] базы
- Операции `SELECT` выполняются значительно чаще, чем операции изменения данных.
- Запросы часто содержат операции агрегации (например, SUM, AVG) и группировки (GROUP BY).
- Запросы `SELECT` охватывают большие выборки данных и могут включать сложные агрегации и группировки.
- Часто используется денормализация
- Скорость обработки зависит от количества данных, но обычно медленнее чем в [[Online Transaction Processing|OLTP]]
Примеры задач:
- Поиск зависимостей по товарам, которые пользователи покупают вместе.
- Получение информации о продажах за последние 3 года.
- Построение аналитики по шаблонам платежей по группам пользователей.
Причины выделить OLAP нагрузку:
- Разный характер нагрузки, требующий долгосрочного хранения и анализа данных.
- Специфические стратегии [[Индекс базы данных|индексирования]] для оптимизации аналитических запросов.
- Работа с большими объемами данных и их обработка в рамках одного запроса.
- Поддержка исторических данных для анализа трендов и построения отчетов.
Это не то же самое, что создание отдельной реплики для отчетности, так как это не решает проблему разных индексов. Однако на логической репликации это возможно.
Рекомендации:
- Использовать колоночную базу данных
- Не вставлять в нее записи по одной, а вставлять пачками.
***
## Мета информация
**Область**:: [[../../meta/zero/00 Реляционная база данных|00 Реляционная база данных]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-03-31]]
### Дополнительные материалы
- [[Online Transaction Processing]]
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->