Ответ
Подход OBT (One Big Table) — это денормализованная таблица, объединяющая все измерения и факты. Хотя он упрощает запросы, у него есть серьезные недостатки по сравнению с витринами данных.
Проблемы OBT:
- Избыточность и объем: Сильное дублирование атрибутов измерений (например, имя клиента повторяется в каждой строке транзакции) приводит к неэффективному использованию хранилища.
- Сложность изменений: Добавление нового атрибута или изменение логики расчета метрики требует модификации всей монолитной таблицы, что рискованно и трудоемко.
- Смешение контекстов: Одна таблица пытается обслуживать все бизнес-процессы, что затрудняет оптимизацию и управление доступом.
Преимущества витрин:
- Предметная ориентация: Каждая витрина строится для конкретной бизнес-области (например,
sales_mart,marketing_mart), что упрощает понимание и использование бизнес-аналитиками. - Оптимизация производительности: Витрину можно оптимизировать под ее конкретные паттерны запросов: выбрать свою стратегию сортировки, партиционирования, агрегации или материализации.
- Гибкость и независимость: Витрины можно перестраивать, добавлять или изменять независимо друг от друга, не затрагивая всю систему.
- Упрощенная безопасность: Легче управлять правами доступа на уровне витрины, чем на уровне отдельных столбцов в гигантской таблице.
Пример:
-- OBT подход: сложный запрос к огромной таблице с джойнами "вшитыми" в данные.
SELECT
customer_name, -- Дублируется в каждой строке
product_category,
SUM(sale_amount)
FROM one_big_table
WHERE region = 'EMEA' AND quarter = 'Q1'
GROUP BY customer_name, product_category;
-- Витрина продаж: данные уже агрегированы и подготовлены.
-- Таблица `sales_mart` может быть материализованным представлением или отдельной таблицей.
SELECT customer_key, product_category, total_sales_amount
FROM sales_mart -- Небольшая, оптимизированная таблица
WHERE region = 'EMEA' AND quarter = 'Q1';