Пример ответа
1) Короткий ответ
Data Vault стоит выбирать для построения гибкого, масштабируемого и исторически полного хранилища данных в средах с частыми изменениями бизнес-требований, множеством источников данных и строгими требованиями к аудиту и трассируемости данных.
2) Ключевые сценарии выбора Data Vault:
* Частые изменения бизнес-логики:
* Проблема: В классическом Kimball изменения измерений требуют перестройки DWH
* Решение: Data Vault позволяет добавлять новые источники без редизайна модели
* Интеграция множества источников:
* Проблема: 10+ разнородных источников с разной скоростью изменения
* Решение: Стандартизированная модель Hub-Link-Satellite
* Строгие требования compliance:
* Проблема: Необходимость полного аудита "что-когда-откуда"
* Решение: Встроенная историчность и метаданные в Satellite
3) Сравнение с альтернативными подходами:
* Data Vault vs Kimball:
* Data Vault: Гибкость, масштабируемость, легкая интеграция новых источников
* Kimball: Простота, производительность, лучше для стабильных бизнес-процессов
* Data Vault vs Inmon:
* Data Vault: Agile-подход, итеративная разработка
* Inmon: Waterfall-подход, требует полного понимания предметной области
Рекомендация: Выбирайте Data Vault для сложных, быстро меняющихся сред. Kimball — для стабильных бизнес-моделей с понятными требованиями.
5) Пример архитектуры Data Vault 2.0:
```sql
-- Хаб (сущности бизнеса)
CREATE TABLE hub_customer (
customer_hashkey VARCHAR(32) PRIMARY KEY,
customer_id VARCHAR(50),
load_dts TIMESTAMP,
record_source VARCHAR(20)
);
-- Линк (взаимодействия)
CREATE TABLE link_customer_order (
customer_order_hashkey VARCHAR(32) PRIMARY KEY,
customer_hashkey VARCHAR(32),
order_hashkey VARCHAR(32),
load_dts TIMESTAMP,
record_source VARCHAR(20)
);
-- Сателлит (исторические атрибуты)
CREATE TABLE sat_customer_details (
customer_hashkey VARCHAR(32),
load_dts TIMESTAMP,
customer_name VARCHAR(100),
email VARCHAR(100),
hash_diff VARCHAR(32),
PRIMARY KEY (customer_hashkey, load_dts)
);
```
6) Показатели для выбора Data Vault:
* Количество источников данных: 5+
* Частота изменения бизнес-требований: ежеквартально или чаще
* Требования к трассируемости данных: высокие
* Необходимость agile-разработки DWH: критична
7) Follow-up вопросы:
* Какие основные недостатки Data Vault?
* Ответ: Сложность, избыточность данных, производительность запросов
* Как решаете проблему производительности в Data Vault?
* Ответ: Через Point-in-Time и Bridge tables для бизнес-витрин
8) Практический совет (2 шага на неделю):
1. Оцените зрелость данных: Проанализируйте стабильность бизнес-процессов и частоту изменений источников данных.
2. Спроектируйте пилот: Реализуйте Data Vault для 2-3 ключевых бизнес-сущностей и оцените сложность поддержки.