Короткий ответ
SCD Type 1 перезаписывает атрибут измерения на месте. После обновления доступно только текущее значение, а старое восстановить из измерения нельзя.
Как это работает подробнее
Пайплайн находит строку по натуральному ключу и выполняет UPDATE. Суррогатный ключ остаётся прежним, поэтому все старые факты при соединении видят новое значение атрибута.
- Подходит. Исправление опечатки, нормализация формата или атрибут, для которого исторический анализ не требуется.
- Не подходит. Сегмент, тариф или регион, если отчёт должен отражать состояние на момент события.
Пример кода
scd_type_1.sql
UPDATE dim_customer
SET city = 'Moscow',
updated_at = CURRENT_TIMESTAMP
WHERE customer_id = 'C-1029';Что использовать на практике
- Явно согласуйте для каждого атрибута, нужна ли история, до реализации загрузки.
- Проверяйте количество обновлённых строк и журналируйте изменения.
Подводные камни
- Пересчёт прошлого. Исторические отчёты могут измениться задним числом.
- Ошибочный ключ. Неуникальный natural key приведёт к обновлению нескольких сущностей.