Какие типы SCD существуют и как формируется историчность в таблицах?
Answer from AI
sobes.tech AI
SCD (Slowly Changing Dimension) — это методы управления изменениями в измерениях (например, в справочных таблицах) в хранилищах данных, чтобы сохранить историчность данных.
Основные типы SCD:
-
SCD Type 1 (Перезапись): При изменении данных старое значение просто перезаписывается новым. Историчность не сохраняется.
-
SCD Type 2 (Добавление записи): При изменении создаётся новая запись с новым значением, а старая остаётся с отметкой времени или флагом, показывающим, что она устарела. Таким образом сохраняется история изменений.
-
SCD Type 3 (Добавление колонки): В таблицу добавляются дополнительные колонки для хранения предыдущих значений (например, "старое значение", "дата изменения"). Историчность ограничена фиксированным числом изменений.
-
SCD Type 4 (Историческая таблица): Основная таблица хранит только текущие данные, а отдельная историческая таблица содержит все изменения.
-
SCD Type 6 (Гибридный): Комбинация типов 1, 2 и 3 для более гибкого управления историчностью.
Формирование историчности в таблицах обычно происходит через добавление временных меток (например, даты начала и окончания действия записи), флагов активности или версионных номеров. Это позволяет отслеживать, какие данные были актуальны в определённый момент времени.
Пример для SCD Type 2:
| ID | Имя | Дата_начала | Дата_окончания | Активен |
|---|---|---|---|---|
| 1 | Иван | 2020-01-01 | 2021-06-30 | Нет |
| 1 | Иванов | 2021-07-01 | NULL | Да |
Здесь при изменении фамилии создаётся новая запись с новой датой начала, а старая помечается как неактивная.