Business Vault – это расширение базового уровня Data Vault (Raw Vault), предназначенное для подготовки данных для аналитики и построения бизнес-логики. Если Raw Vault фокусируется на сборе и хранении данных в их оригинальном виде, то Business Vault добавляет обработанные и агрегированные данные, необходимые для аналитических систем и отчётов.


Основные принципы Business Vault

  1. Использование бизнес-правил:
    Business Vault включает данные, модифицированные или агрегированные в соответствии с бизнес-правилами (например, вычисление KPI).
  2. Сохранение истории изменений:
    Как и Raw Vault, Business Vault сохраняет полную историю изменений.
  3. Дополнение данными внешних источников:
    Данные могут быть обогащены информацией, которая не поступала в Raw Vault (например, API, сторонние сервисы).
  4. Поддержка traceability:
    Все вычисления должны быть прозрачными и документированными, чтобы аналитики могли отслеживать источник и логику данных.

Типы объектов в Business Vault

1. Calculated Satellites (Рассчитанные сателлиты):

Сателлиты, в которых хранятся результаты расчётов, основанных на бизнес-правилах.

Пример:
Рассчитаем общий объём покупок клиента за месяц.

  • Raw Vault:
    Содержит транзакции клиента:
      HubCustomerKey TransactionAmount TransactionDate
      1 100.00 2025-01-01
      1 50.00 2025-01-15
  • Business Vault (Calculated Satellite):
      HubCustomerKey TotalMonthlySpend Month LoadDate
      1 150.00 2025-01 2025-01-31

2. Point-in-Time (PIT) таблицы:

PIT-таблицы упрощают доступ к данным, соединяя хабы, линк-и и сателлиты в один набор данных на определённый момент времени.

Пример:
В таблице PIT можно соединить информацию о пассажирах, рейсах и деталях бронирования:

HubPassengerKey HubFlightKey BookingDetailsKey LoadDate
1 101 1001 2025-01-02

3. Bridge-таблицы:

Используются для объединения данных из нескольких источников или вычисления агрегатов.

Пример:
Создание мостовой таблицы, связывающей клиентов и рейсы через количество бронирований.

  • Raw Vault:
      HubPassengerKey HubFlightKey BookingID
      1 101 B001
      1 102 B002
  • Business Vault (Bridge Table):
      HubPassengerKey TotalBookings
      1 2

Пример создания Business Vault

Задача: Построить Business Vault для анализа активности пассажиров.

  1. Сырые данные (Raw Vault):

    • Hub_Passengers: Хранит уникальные пассажирские ключи.
    • Hub_Flights: Хранит уникальные рейсы.
    • Link_PassengerFlights: Связывает пассажиров и рейсы.

    Пример:

    HubPassengerKey PassengerID LoadDate
    1 CUST001 2025-01-01
    HubFlightKey FlightID LoadDate
    101 F123 2025-01-02
    LinkKey HubPassengerKey HubFlightKey LoadDate
    1001 1 101 2025-01-02
  2. Обогащение в Business Vault:

    • Добавляем таблицу с расчетами количества перелётов на каждого пассажира.

    Calculated Satellite (Sat_PassengerActivity):

    HubPassengerKey TotalFlights LoadDate
    1 5 2025-01-31
    • Добавляем PIT-таблицу для удобного анализа на момент времени.

    PIT_PassengerDetails:

    HubPassengerKey HubFlightKey LoadDate
    1 101 2025-01-02

Рекомендации по построению Business Vault

  1. Автоматизируйте расчёты:
    Используйте инструменты, такие как dbt или SQL-сценарии, для автоматизации сложных вычислений.
  2. Документируйте бизнес-правила:
    Фиксируйте все формулы и трансформации, чтобы аналитики могли их легко понять.
  3. Поддерживайте traceability:
    Связывайте данные Business Vault с соответствующими объектами Raw Vault, чтобы можно было отследить источник и трансформацию данных.
  4. Оптимизируйте производительность:
    Используйте индексы и агрегаты для ускорения работы аналитических запросов.

Заключение

Business Vault – это мост между сырой моделью данных и бизнес-аналитикой. Он упрощает построение отчётов и дашбордов, обеспечивая сохранение истории изменений и прозрачность расчётов. Построение качественного Business Vault требует чёткой стратегии, автоматизации процессов и тесного взаимодействия между технической и бизнес-командами.