Когда источников много и они меняются, одна широкая интеграционная таблица становится неудобной: новый источник приносит другие поля, описания обновляются с разной частотой, а для аудита нужно знать происхождение значения. Data Vault и Anchor Modeling предлагают разделять устойчивую идентичность, связи и изменяющиеся атрибуты. Это способы организовать детальный интеграционный слой; для аналитиков поверх него часто готовят более простые витрины.
Data Vault: Hub, Link и Satellite
Hub хранит бизнес-ключ объекта. Например, hub_product содержит код товара с указанием его области уникальности. Название и категория не входят в идентичность: они могут изменяться при сохранении того же товара.
Link хранит связь бизнес-объектов. Например, link_sale_product связывает факт продажи с товаром. Связь может иметь собственную историю появления и источник, поэтому её не приходится прятать в одной колонке большого объекта.
Satellite хранит описательные атрибуты и их изменения. Для товара это может быть название и категория с временем получения и указанием источника. Чтобы получить категорию на дату продажи, нужно выбрать подходящую версию. Обычное соединение только с текущим значением изменит прошлый разрез отчёта.
| Часть | Основной смысл | Что нужно проверить |
|---|---|---|
| Hub | Устойчивая идентичность по бизнес-ключу | Область уникальности и правило сопоставления источников |
| Link | Отношение между идентичностями | Кратность, смысл связи, время её появления |
| Satellite | Описание и изменения | Источник, время, способ выбора версии |
Метаданные загрузки и источник помогают расследовать расхождения. Сопоставление бизнес-ключей разных систем задают отдельным правилом.
Data Vault 2.0 включает договорённости об архитектуре, автоматизации и поставке изменений наряду с Hub/Link/Satellite. Hash-ключи используют для независимой загрузки, hash diff — для обнаружения изменений атрибутов. Правила идентичности и обработки конфликтов остаются частью проекта.
За счёт чего модель расширяется
Если новый источник добавил характеристики существующего товара, можно создать новый Satellite у прежнего Hub, сохранив источник и собственную историю этих полей. Новый вид связи объектов получает Link и, при необходимости, Satellite с описанием связи. Добавление таких частей не требует переписывать все прежние описания в одну широкую строку. В этом состоит одна из причин гибкости Vault.
Для расширения сопоставляют бизнес-ключи, задают зерно новых связей и добавляют загрузку с проверками. Отдельные Satellite позволяют менять одну группу атрибутов независимо от остальных.
Почему Vault не является готовой витриной
Для обычного отчёта часто нужно соединить Hub, Link и несколько Satellite, выбрать версии и применить предметное правило. Это сложнее одной звезды. Поэтому Vault удобно использовать как сохраняющий происхождение интеграционный слой, а для частых вопросов строить отдельные факты и измерения.
Цена Vault — больше таблиц, правил загрузки и соединений. Он полезен при расширении источников, изменениях схем и требованиях к прослеживаемой истории. Для одного стабильного источника эти затраты могут быть избыточны.
Anchor Modeling: независимая история атрибутов
Anchor представляет устойчивую идентичность объекта. Отдельные attributes хранят его свойства; ties — связи объектов; knots могут задавать повторно используемые значения или справочники. В отличие от широкой таблицы описаний, историю названия и историю категории можно вести независимо: смена категории не требует новой строки названия.
Это удобно при независимых изменениях и подробной истории атрибутов, но чтение текущего или исторического объекта требует собрать несколько таблиц по времени. Если интервалы атрибутов не согласованы, запрос может получить противоречивый снимок. Как и в Vault, для массового аналитического чтения часто строят удобное представление или витрину.
В обеих моделях задают правила доверия источникам и исправления истории. Выбор структуры зависит от идентичности объектов, требуемой истории и вопросов потребителя.