От Data Vault к схеме «Звезда»

Мы научились хранить историю изменений (SCD2) и фиксировать сущности в слое Core (Data Vault). Мы получили идеальную инженерную структуру: изолированные изменения, быструю инкрементальную загрузку и полный лог версий.

Но если вы покажете эту паутину из сотен Хабов, Линков и Сателлитов аналитикам, они, мягко говоря, не обрадуются.

Собирать регулярные отчеты, прописывая десятки JOIN на каждую сущность - это больно, медленно и чревато ошибками в расчетах. Архитектура DWH должна работать на конечного пользователя.

Именно поэтому поверх сырого Data Vault в слое Marts разворачивается классическая схема «Звезда» (Star Schema) Ральфа Кимбалла.

Здесь dbt берет на себя всю рутину денормализации данных, превращая сложную распределенную структуру в понятные и быстрые таблицы фактов и измерений:

1. Измерения (Dimensions) — готовый контекст. Такие модели, как dim_customer или dim_product, собирают данные обратно «в один плоский объект». На этом этапе dbt не просто объединяет бизнес-ключ из Хаба со свойствами из Сателлита, но и рассчитывает суррогатные ключи (customer_sk), генерирует интервалы SCD2 (effective_from / effective_to) и выносит понятные бизнес-атрибуты. Аналитик видит чистую и понятную ему таблицу.

2. Таблицы фактов (Facts) — метрики. Центральная таблица fact_order собирает числовые показатели (количество, цена, стоимость) из транзакционных сателлитов линков. Но вместо тяжелых текстовых полей и сырых бизнес-ключей она содержит только легкие суррогатные ключи (order_sk, customer_sk, product_sk), связывающие её с измерениями.

Инженерный итог: Мы разделили зоны ответственности. Data Vault в Core-слое обеспечивает нам стабильность, скорость и надежное хранение истории. А схема «Звезда» в слое Marts дает BI-инструментам (Metabase, Power BI) идеальную структуру - запросы отрабатывают мгновенно, а аналитики строят дашборды в пару кликов.

А какой слой витрин предпочитаете строить вы поверх Data Vault: классический Кимбалл или широкие плоские OBT-таблицы (One Big Table)?

Ссылка на проект: 💻 Модели фактов и измерений: https://github.com/lelik-bolek/DWH_Relational_Model

#DataEngineering #dbt #StarSchema #Kimball #BI #DWH #Architecture #SQL #eltdwh_pipeline

От Data Vault к схеме «Звезда» | Сетка — социальная сеть от hh.ru