Выбор ответа Middle Моделирование: Кимбалл, звезда, SCD спрашивают часто обновлено
Зачем суррогатные ключи
Вопрос
Зачем измерению клиента суррогатный ключ customer_sk, если в источнике уже есть customer_id?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Чтобы хранить версии клиента (SCD 2) и не зависеть от ключей источников. При SCD 2 у одного customerid несколько строк-версий, и факт должен ссылаться на конкретную версию: это и есть суррогатный ключ.
Варианты ответа
- Чтобы таблица занимала меньше места: целый ключ короче строкового
- Чтобы хранить версии клиента (SCD 2) и не зависеть от ключей источниковправильный ответ
- Потому что
customer_idиз источника нельзя индексировать в хранилище - Суррогатные ключи нужны только в снежинке для связи нормализованных таблиц
Разбор
При SCD 2 у одного customer_id несколько строк-версий, и факт должен ссылаться на конкретную версию: это и есть суррогатный ключ. Ещё он изолирует хранилище от смены и пересечения ключей источников. Место он экономит лишь иногда. Индексировать натуральный ключ можно. Суррогатные ключи используют и в звезде.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Моделирование: Кимбалл, звезда, SCD»
- Аддитивность мер
- Типы таблиц фактов
- Типы SCD
- Data Vault: хабы, линки, сателлиты
- Факт или измерение
- Гранулярность факта
- Порядок загрузки SCD 2
- Point-in-time JOIN