Привет! В этом разделе мы поговорим о сателлитах (Satellites), которые являются неотъемлемой частью модели Data Vault. Сателлиты хранят бизнес-атрибуты и временные изменения, обеспечивая историчность данных.
Что такое сателлит?
Сателлит — это таблица, связанная с хабом или линком, которая хранит описательные данные (атрибуты) или метаданные, связанные с сущностью или связью.
Сателлиты позволяют фиксировать изменения атрибутов со временем и обеспечивать их историчность.
Основные принципы работы с сателлитами
- Связь с хабом или линком:
Каждый сателлит связан с хабом (для атрибутов сущности) или линком (для атрибутов связи). - Историчность:
Сателлит фиксирует все изменения атрибутов, сохраняя дату начала и окончания актуальности данных. - Версионность:
Каждая запись в сателлите уникальна и отражает состояние атрибутов в конкретный момент времени. - Группировка атрибутов:
Атрибуты с разной частотой изменений или источниками данных рекомендуется группировать в разные сателлиты.
Пример: Сателлит для пассажиров
Представим, что у нас есть хаб Hub_Passengers, который хранит бизнес-ключи пассажиров. Сателлит для пассажиров будет содержать их атрибуты, такие как фамилия, дата рождения, контактная информация.
Структура Sat_PassengerAttributes
Hub Key | Surname | Date of Birth | Phone Number | Load Date | End Date | Source System |
---|---|---|---|---|---|---|
1 | Smith | 1990-05-10 | 1234567890 | 2025-01-03 | NULL | BookingSystem |
2 | Johnson | 1985-07-20 | 0987654321 | 2025-01-03 | NULL | CRMSystem |
1 | Smith | 1990-05-10 | 1122334455 | 2025-01-10 | NULL | FlightSystem |
- Hub Key: Ссылка на запись в хабе Hub_Passengers.
- Surname: Фамилия пассажира.
- Date of Birth: Дата рождения пассажира.
- Phone Number: Телефонный номер пассажира.
- Load Date: Дата загрузки записи.
- End Date: Дата окончания актуальности записи (NULL означает, что запись актуальна).
- Source System: Источник данных.
Использование
Поддержка изменений:
Если номер телефона пассажира изменился, новая версия будет добавлена в сателлит:
Hub Key | Surname | Date of Birth | Phone Number | Load Date | End Date | Source System |
---|---|---|---|---|---|---|
1 | Smith | 1990-05-10 | 1234567890 | 2025-01-03 | 2025-01-10 | BookingSystem |
1 | Smith | 1990-05-10 | 1122334455 | 2025-01-10 | NULL | FlightSystem |
Группировка атрибутов:
Атрибуты, которые меняются редко (например, Date of Birth), можно разместить в отдельном сателлите для оптимизации хранения данных.
Преимущества сателлитов
- Историчность:
Каждое изменение фиксируется, что позволяет анализировать данные на любую дату в прошлом. - Гибкость:
Добавление новых атрибутов не влияет на хабы или линки. - Масштабируемость:
Сателлиты можно разбивать на несколько таблиц в зависимости от источников данных или частоты изменений.
Заключение
Сателлиты делают модель Data Vault гибкой, устойчивой к изменениям и готовой к долгосрочному хранению данных. Они обеспечивают полный контроль над историей изменений и позволяют легко добавлять новые атрибуты, сохраняя целостность модели.