Sobes.tech
Middle
23

Какие типы SCD существуют и как формируется историчность в таблицах?

Companies where asked
ИннотехИннотех

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 Да

Здесь при изменении фамилии создаётся новая запись с новой датой начала, а старая помечается как неактивная.