Data Vault 2.0 deep dive на собеседовании Data Engineer
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Three layers
Raw Vault. Direct ingestion. Insert-only, append-only.
Business Vault. Computed / derived. Soft business rules applied.
Information Mart. Star schema / denormalized для consumption. BI-ready.
Каждый layer — own concerns.
Hashes
DV uses hash keys везде:
- Hash of business key — primary keys.
- Hash diff — checks if record changed.
hub_customer:
customer_hk = MD5(customer_id)
customer_id (business key)
load_dt
record_sourcesat_customer:
customer_hk
load_dt
hashdiff = MD5(name + email + phone) ← если изменился, новая запись.
name, email, phonePoint-in-time
Querying current state — joining many satellites slow. PIT table — pre-joined snapshot.
CREATE TABLE pit_customer (
customer_hk,
load_dt,
sat_personal_dt,
sat_address_dt,
sat_account_dt,
...
);Pre-computed pointers к specific satellite versions per timestamp. Fast queries.
Bridge tables
Cross-link many-to-many между hubs / linkings.
Often pre-aggregated paths для performance.
Ghost / unknown
Some satellites нет records — load process inserts «unknown / not-applicable» record.
ghost_satellite:
customer_hk = '00000000...'
hashdiff = '00000000...'
...Avoids NULL joins, simplifies queries.
Связанные темы
- Data Vault 2.0 для DE
- SCD типы для DE
- Inmon vs Kimball для DE
- Star schema vs Snowflake для DE
- Подготовка к собесу Data Engineer
FAQ
Это официальная информация?
Нет. Статья основана на работах Дэна Линштедта.
Тренируйте Data Engineering — откройте тренажёр с 1500+ вопросами для собесов.