Business Vault – это расширение базового уровня Data Vault (Raw Vault), предназначенное для подготовки данных для аналитики и построения бизнес-логики. Если Raw Vault фокусируется на сборе и хранении данных в их оригинальном виде, то Business Vault добавляет обработанные и агрегированные данные, необходимые для аналитических систем и отчётов.
Основные принципы Business Vault
- Использование бизнес-правил:
Business Vault включает данные, модифицированные или агрегированные в соответствии с бизнес-правилами (например, вычисление KPI). - Сохранение истории изменений:
Как и Raw Vault, Business Vault сохраняет полную историю изменений. - Дополнение данными внешних источников:
Данные могут быть обогащены информацией, которая не поступала в Raw Vault (например, API, сторонние сервисы). - Поддержка 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 для анализа активности пассажиров.
-
Сырые данные (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 -
Обогащение в 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
- Автоматизируйте расчёты:
Используйте инструменты, такие как dbt или SQL-сценарии, для автоматизации сложных вычислений. - Документируйте бизнес-правила:
Фиксируйте все формулы и трансформации, чтобы аналитики могли их легко понять. - Поддерживайте traceability:
Связывайте данные Business Vault с соответствующими объектами Raw Vault, чтобы можно было отследить источник и трансформацию данных. - Оптимизируйте производительность:
Используйте индексы и агрегаты для ускорения работы аналитических запросов.
Заключение
Business Vault – это мост между сырой моделью данных и бизнес-аналитикой. Он упрощает построение отчётов и дашбордов, обеспечивая сохранение истории изменений и прозрачность расчётов. Построение качественного Business Vault требует чёткой стратегии, автоматизации процессов и тесного взаимодействия между технической и бизнес-командами.