Архитектура Data Vault — это современный подход к проектированию хранилищ данных, который ориентирован на гибкость, масштабируемость и долгосрочную надежность. Она включает в себя как логическую, так и физическую модель, четко разделяет структурные компоненты и предлагает преимущества по сравнению с традиционными подходами, такими как звёздная и снежинка.
Логическая и физическая модель Data Vault
- Логическая модель:
- Цель: Создание устойчивой структуры данных, способной адаптироваться к изменениям в бизнес-требованиях или источниках данных.
- Основные компоненты:
- Хабы (Hubs): Хранят уникальные бизнес-ключи (Business Keys), представляющие ключевые сущности бизнеса, например, авиакомпании, рейсы или пассажиров.
- Линки (Links): Моделируют связи между хабами, такие как "пассажир летит рейсом" или "рейс принадлежит авиакомпании".
- Сателлиты (Satellites): Хранят контекстную информацию и атрибуты, такие как имя пассажира, дата рейса или причина задержки.
- Физическая модель:
- Реализуется в реляционных базах данных. Каждая сущность (хаб, линк или сателлит) представлена отдельной таблицей.
- Используются surrogate keys для связей между компонентами, что позволяет обеспечить производительность и единообразие.
Сравнение с традиционными подходами (звёздная и снежинка)
Характеристика | Звёздная модель | Снежинка | Data Vault |
---|---|---|---|
Гибкость | Низкая: сложно адаптировать под изменения. | Низкая: сложность возрастает с детализацией. | Высокая: легко добавлять новые данные. |
Поддержка истории | Ограниченная. | Ограниченная. | Полная: история фиксируется в сателлитах. |
Масштабируемость | Умеренная. | Низкая: растет сложность схемы. | Высокая: структура легко масштабируется. |
Нормализация | Денормализована. | Нормализована. | Частичная: нормализованы ключи и связи. |
Производительность | Высокая для отчетности. | Умеренная. | Зависит от реализации, но может быть оптимизирована. |
В отличие от звёздной и снежинки, Data Vault оптимален для изменений и аудита. Он позволяет надежно отслеживать, откуда поступили данные и как они были модифицированы.
Роли компонентов: хабы, линки, сателлиты
- Хабы (Hubs):
- Представляют собой централизованные точки данных, описывающие ключевые сущности.
- Хранят уникальные бизнес-ключи, которые не зависят от источников данных.
- Пример: таблица Hub_Airline содержит уникальные идентификаторы авиакомпаний.
- Линки (Links):
- Обеспечивают связь между хабами.
- Отражают бизнес-процессы или взаимодействия между сущностями.
- Пример: таблица Link_PassengerFlights связывает пассажиров с рейсами.
- Сателлиты (Satellites):
- Сохраняют атрибуты и контекст данных, такие как описание рейсов или метрики задержек.
- Могут быть разделены по источникам данных, типам атрибутов или требованиям к обновлениям.
- Пример: таблица Sat_DelayDetails хранит причины и продолжительность задержек рейсов.
Пример архитектуры
Представим систему отслеживания рейсов и их задержек.
- Хаб: Таблица
Hub_Flights
содержит уникальные идентификаторы рейсов. - Линк: Таблица
Link_PassengerFlights
связывает рейсы с пассажирами. - Сателлиты: Таблицы
Sat_DelayDetails
иSat_PassengerInfo
содержат причины задержек и информацию о пассажирах соответственно.
Заключение
Архитектура Data Vault обеспечивает модульность и прозрачность данных, что делает её подходящей для сложных и меняющихся бизнес-сред. Логическая и физическая модель, основанная на хабах, линках и сателлитах, позволяет создавать масштабируемые хранилища данных, которые сохраняют данные для аналитики, аудита и исторического анализа.