Какие модели данных для DWH вы знаете, кроме «звезды» и «снежинки»?

«Какие модели данных для DWH вы знаете, кроме «звезды» и «снежинки»?» — вопрос из категории Моделирование данных и DWH, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Помимо денормализованных схем «звезда» (Star Schema) и «снежинка» (Snowflake Schema), существуют методологии, ориентированные на гибкость, аудируемость и хранение исторических данных.

1. Data Vault 2.0 Методология для построения гибкого, масштабируемого и аудируемого хранилища данных, особенно эффективна при интеграции данных из множества быстро меняющихся источников.

  • Хаб (Hub): Хранит список уникальных бизнес-ключей сущности (например, Customer_ID). Содержит технические поля: хэш-ключ, ключ источника, метка времени загрузки.
  • Связь (Link): Моделирует транзакции или связи между хабами (например, связь Customer-Order).
  • Спутник (Satellite): Хранит все описательные атрибуты и их исторические изменения, привязанные к хабу или связи.

2. Anchor Modeling Подход, сфокусированный на расширяемости и неизменяемости данных. Хорошо подходит для сценариев, где структура данных может часто меняться.

  • Якорь (Anchor): Представляет ядро сущности или события (например, Customer). Содержит только технический ключ.
  • Атрибут (Attribute): Хранит отдельное свойство якоря (например, Customer_Name). Каждое изменение значения создает новую запись.
  • Связь (Tie): Моделирует связь между двумя или более якорями.

3. ODS (Operational Data Store) Не является моделью в строгом смысле, но это важный слой. ODS — это предметно-ориентированная, интегрированная, текущая (или near-real-time) коллекция данных, предназначенная для оперативной отчетности, перед загрузкой в детализированное DWH. Часто имеет нормализованную структуру, близкую к источникам.