Data Marts – это специализированные аналитические витрины данных, построенные на основе модели Data Vault. Они предназначены для обеспечения быстрого и удобного доступа к данным, агрегированным и структурированным под конкретные бизнес-задачи.
Основные принципы создания Data Marts
- Фокус на конкретном бизнес-процессе или отделе:
Data Marts ориентированы на узкий круг пользователей, таких как аналитики отдела продаж, маркетинга или финансов. - Оптимизация для аналитических запросов:
Data Marts агрегируют и трансформируют данные из Raw Vault и Business Vault для ускорения построения отчётов. - Использование денормализованной структуры:
В отличие от нормализованной структуры Data Vault, Data Marts часто строятся как «звёздные схемы» или «снежинки» для повышения производительности запросов.
Этапы генерации Data Marts
1. Определение требований:
- Выясните, какие метрики, показатели и разрезы данных нужны бизнесу.
- Пример: аналитика продаж по регионам, анализ загрузки рейсов или поведение клиентов.
2. Выбор данных:
- Определите, какие хабы, линк-и и сателлиты из Raw Vault или Business Vault содержат необходимую информацию.
3. Трансформация данных:
- Примените бизнес-правила, рассчитайте агрегаты или показатели.
4. Создание схемы Data Mart:
- Структурируйте данные в виде звёздной схемы или снежинки.
5. Автоматизация и обновление:
- Настройте процесс регулярного обновления витрины данных.
Пример: Построение Data Mart для анализа загрузки рейсов
1. Исходные данные в Raw Vault:
- Hub_Passengers: Уникальные пассажиры.
- Hub_Flights: Уникальные рейсы.
- Link_PassengerFlights: Связь пассажиров и рейсов.
- Sat_FlightDetails: Детали рейса (дата, пункт вылета, пункт прилёта).
2. Трансформация данных в Business Vault:
Рассчитаем количество пассажиров на каждом рейсе:
Bridge_FlightLoad:
HubFlightKey | TotalPassengers | LoadDate |
---|---|---|
101 | 150 | 2025-01-02 |
102 | 120 | 2025-01-02 |
3. Создание Data Mart:
Структурируем данные в формате звёздной схемы.
- Факт таблица (FlightLoad):
FlightID Date Origin Destination TotalPassengers F123 2025-01-02 JFK LAX 150 F124 2025-01-02 ORD ATL 120 - Измерения (Dimensions):
- Dim_Flights:
FlightID Airline AircraftType F123 Delta Boeing 737 F124 United Airbus A320 - Dim_Dates:
Date DayOfWeek Month Year 2025-01-02 Thursday 01 2025
- Dim_Flights:
Пример запросов из Data Mart
-
Сравнение загрузки рейсов по дням недели:
SELECT DayOfWeek, AVG(TotalPassengers) AS AvgPassengers FROM FlightLoad FL JOIN Dim_Dates DD ON FL.Date = DD.Date GROUP BY DayOfWeek ORDER BY AvgPassengers DESC;
-
Топ-5 самых загруженных рейсов:
SELECT FlightID, TotalPassengers FROM FlightLoad ORDER BY TotalPassengers DESC LIMIT 5;
-
Анализ загрузки рейсов по авиалиниям:
SELECT Airline, SUM(TotalPassengers) AS TotalPassengers FROM FlightLoad FL JOIN Dim_Flights DF ON FL.FlightID = DF.FlightID GROUP BY Airline ORDER BY TotalPassengers DESC;
Рекомендации по построению Data Marts
- Оптимизируйте запросы:
Убедитесь, что все ключевые запросы выполняются быстро, используя индексы и агрегаты. - Изолируйте бизнес-правила:
Переносите сложную логику в Business Vault, чтобы Data Marts оставались чистыми и лёгкими. - Автоматизируйте обновления:
Используйте ETL/ELT инструменты для регулярного обновления витрин. - Обеспечьте согласованность данных:
Data Marts должны соответствовать данным в Raw и Business Vault.
Заключение
Data Marts – это конечный этап преобразования данных в Data Vault. Они предоставляют пользователям удобный доступ к структурированным и готовым к аналитике данным. Грамотное проектирование Data Marts позволяет значительно повысить производительность и точность бизнес-анализа.