Struchkov Mark
efdea249be
All checks were successful
continuous-integration/drone/push Build is passing
6.5 KiB
6.5 KiB
aliases | tags | date | |
---|---|---|---|
|
2024-11-25 |
Сателлитные таблицы (Satellite Tables) — это концепция, часто используемая в методологии Data Vault, которая предназначена для моделирования данных в хранилищах. Их основная цель — хранение атрибутов, которые связаны с основными объектами (например, сущностями или событиями), но имеют динамическую природу или часто изменяются.
Основные понятия:
- Хаб (Hub):
Таблица, представляющая основную сущность или бизнес-объект, например, клиент, продукт или заказ. В хабе обычно содержатся стабильные и уникальные бизнес-идентификаторы. - Линк (Link):
Таблица, представляющая связь между хабами. Она моделирует отношения, например, какой клиент сделал какой заказ. - Сателлит (Satellite):
Таблица, привязанная к хабу или линку, которая хранит дополнительные атрибуты и временные данные.
Зачем нужны сателлиты?
- Отделение изменяемых данных от неизменяемых: Хаб содержит уникальные данные, которые редко изменяются. Все остальные данные, которые могут меняться (например, имя клиента, его адрес или статус заказа), переносятся в сателлиты.
- Историзация данных: Сателлиты поддерживают версионность, т.е. они хранят не только актуальное состояние данных, но и их историю. Это достигается за счет добавления колонок:
- Дата начала действия версии (
start_date
). - Дата окончания действия версии (
end_date
). - Индикатор актуальной версии (например,
is_current
).
- Дата начала действия версии (
- Разделение областей данных: Сателлиты позволяют разделить разные типы данных для более удобного хранения и обработки. Например:
- Один сателлит может хранить адресную информацию.
- Другой — контактные данные.
- Третий — финансовую информацию
- Облегчение загрузки данных: При использовании ETL (Extract, Transform, Load) сателлиты упрощают инкрементальную загрузку, так как можно обрабатывать только те записи, которые изменились.
- Масштабируемость: За счет хранения данных в разных таблицах (сателлитах), можно легче управлять растущим объемом данных и делать хранилище более модульным.
Преимущества сателлитных таблиц:
- Поддержка аудита: История изменений атрибутов сохраняется, что критично для аналитики и соблюдения нормативных требований.
- Управление большими данными: Разделение на хабы, линки и сателлиты делает модель гибкой и позволяет обрабатывать большие объемы данных с меньшими затратами.
- Удобство для интеграции: Модель легко расширяется за счет добавления новых сателлитов без изменения существующей структуры.
Недостатки:
- Увеличение количества таблиц и сложности структуры.
- Медленные запросы из-за множества JOIN-операций.
- Увеличение объема данных из-за историзации.
- Сложные и трудоемкие ETL/ELT процессы.
- Требуется опыт и квалификация для работы с моделью.
- Ограниченная поддержка в BI-инструментах.
- Модель может быть избыточной для небольших проектов.
Пример
Предположим, у нас есть сущность "Клиент". В Data Vault модель она будет представлена следующим образом:
Хаб (Hub_Client):
client_id | business_key | load_date | record_source
Сателлит (Satellite_Client_Demographics):
client_id | name | birth_date | start_date | end_date | is_current | record_source
Сателлит (Satellite_Client_Address):
client_id | address | city | country | start_date | end_date | is_current | record_source
Здесь:
- Hub_Client хранит уникальный идентификатор клиента (например, ID из CRM).
- Satellite_Client_Demographics хранит демографические данные клиента, которые могут изменяться (например, имя при смене паспорта).
- Satellite_Client_Address хранит адресные данные клиента, включая исторические изменения адресов.
Мета информация
Область:: Родитель:: Источник:: Создана:: 2024-11-25 Автор::