Data Marts – это специализированные аналитические витрины данных, построенные на основе модели Data Vault. Они предназначены для обеспечения быстрого и удобного доступа к данным, агрегированным и структурированным под конкретные бизнес-задачи.


Основные принципы создания Data Marts

  1. Фокус на конкретном бизнес-процессе или отделе:
    Data Marts ориентированы на узкий круг пользователей, таких как аналитики отдела продаж, маркетинга или финансов.
  2. Оптимизация для аналитических запросов:
    Data Marts агрегируют и трансформируют данные из Raw Vault и Business Vault для ускорения построения отчётов.
  3. Использование денормализованной структуры:
    В отличие от нормализованной структуры 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

Пример запросов из Data Mart

  1. Сравнение загрузки рейсов по дням недели:

    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;
    
  2. Топ-5 самых загруженных рейсов:

    SELECT FlightID, TotalPassengers
    FROM FlightLoad
    ORDER BY TotalPassengers DESC
    LIMIT 5;
    
  3. Анализ загрузки рейсов по авиалиниям:

    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

  1. Оптимизируйте запросы:
    Убедитесь, что все ключевые запросы выполняются быстро, используя индексы и агрегаты.
  2. Изолируйте бизнес-правила:
    Переносите сложную логику в Business Vault, чтобы Data Marts оставались чистыми и лёгкими.
  3. Автоматизируйте обновления:
    Используйте ETL/ELT инструменты для регулярного обновления витрин.
  4. Обеспечьте согласованность данных:
    Data Marts должны соответствовать данным в Raw и Business Vault.

Заключение

Data Marts – это конечный этап преобразования данных в Data Vault. Они предоставляют пользователям удобный доступ к структурированным и готовым к аналитике данным. Грамотное проектирование Data Marts позволяет значительно повысить производительность и точность бизнес-анализа.