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


Логическая и физическая модель Data Vault

  1. Логическая модель:
    • Цель: Создание устойчивой структуры данных, способной адаптироваться к изменениям в бизнес-требованиях или источниках данных.
    • Основные компоненты:
      • Хабы (Hubs): Хранят уникальные бизнес-ключи (Business Keys), представляющие ключевые сущности бизнеса, например, авиакомпании, рейсы или пассажиров.
      • Линки (Links): Моделируют связи между хабами, такие как "пассажир летит рейсом" или "рейс принадлежит авиакомпании".
      • Сателлиты (Satellites): Хранят контекстную информацию и атрибуты, такие как имя пассажира, дата рейса или причина задержки.
  2. Физическая модель:
    • Реализуется в реляционных базах данных. Каждая сущность (хаб, линк или сателлит) представлена отдельной таблицей.
    • Используются surrogate keys для связей между компонентами, что позволяет обеспечить производительность и единообразие.

Сравнение с традиционными подходами (звёздная и снежинка)

Характеристика Звёздная модель Снежинка Data Vault
Гибкость Низкая: сложно адаптировать под изменения. Низкая: сложность возрастает с детализацией. Высокая: легко добавлять новые данные.
Поддержка истории Ограниченная. Ограниченная. Полная: история фиксируется в сателлитах.
Масштабируемость Умеренная. Низкая: растет сложность схемы. Высокая: структура легко масштабируется.
Нормализация Денормализована. Нормализована. Частичная: нормализованы ключи и связи.
Производительность Высокая для отчетности. Умеренная. Зависит от реализации, но может быть оптимизирована.

В отличие от звёздной и снежинки, Data Vault оптимален для изменений и аудита. Он позволяет надежно отслеживать, откуда поступили данные и как они были модифицированы.


Роли компонентов: хабы, линки, сателлиты

  1. Хабы (Hubs):
    • Представляют собой централизованные точки данных, описывающие ключевые сущности.
    • Хранят уникальные бизнес-ключи, которые не зависят от источников данных.
    • Пример: таблица Hub_Airline содержит уникальные идентификаторы авиакомпаний.
  2. Линки (Links):
    • Обеспечивают связь между хабами.
    • Отражают бизнес-процессы или взаимодействия между сущностями.
    • Пример: таблица Link_PassengerFlights связывает пассажиров с рейсами.
  3. Сателлиты (Satellites):
    • Сохраняют атрибуты и контекст данных, такие как описание рейсов или метрики задержек.
    • Могут быть разделены по источникам данных, типам атрибутов или требованиям к обновлениям.
    • Пример: таблица Sat_DelayDetails хранит причины и продолжительность задержек рейсов.

Пример архитектуры

Представим систему отслеживания рейсов и их задержек.

  • Хаб: Таблица Hub_Flights содержит уникальные идентификаторы рейсов.
  • Линк: Таблица Link_PassengerFlights связывает рейсы с пассажирами.
  • Сателлиты: Таблицы Sat_DelayDetails и Sat_PassengerInfo содержат причины задержек и информацию о пассажирах соответственно.

Заключение

Архитектура Data Vault обеспечивает модульность и прозрачность данных, что делает её подходящей для сложных и меняющихся бизнес-сред. Логическая и физическая модель, основанная на хабах, линках и сателлитах, позволяет создавать масштабируемые хранилища данных, которые сохраняют данные для аналитики, аудита и исторического анализа.