Кронверк Дата · Заметки
Заметки / Моделирование

Data Vault 2.0: хабы, линки, сателлиты

Моделирование · 9 мин чтения

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

Три типа сущностей

СущностьЧто хранитПример
ХабУникальный бизнес-ключ и технические атрибуты загрузкиhub_client: ИНН или номер клиента
ЛинкСвязь между двумя и более хабамиlink_client_contract
СателлитОписательные атрибуты с историей измененийsat_client_profile: адрес, сегмент

Когда подход оправдан

Для небольшого хранилища с одним-двумя стабильными источниками Data Vault обычно избыточен: число таблиц растёт в разы, а выгоды не видно.

Хэш-ключи

В версии 2.0 суррогатные ключи заменены хэшами от бизнес-ключей. Это позволяет загружать хабы, линки и сателлиты параллельно, не дожидаясь генерации последовательностей.

md5(upper(trim(coalesce(client_code, ''))))  AS hk_client

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

Частые ошибки