Медленно меняющиеся измерения (от англ. Slowly Changing Dimensions, SCD) — механизм отслеживания изменений в данных измерения в терминах хранилища данных. Применяется в случае, если данные меняются не очень часто и не по расписанию. Примером могут служить географические данные (местонахождение склада, юридический адрес организации), статус заказчика по программе лояльности или отдел компании, в котором работает её сотрудник.

Выделяют несколько типов SCD.

Тип 0 Нулевой тип (SCD0) является пассивным методом, так как предполагается, что значения атрибутов такого типа не будут меняться. Примерами могут служить дата создания записи, дата и место рождения, серийный номер устройства.

Пример: +Таблица с оригинальными даннымиСерия и номер паспортаФИОМесто рождения1800 223111Иванов Сергей Петровичг. Кызыл

Тип 1 Первый тип (SCD1) использует простое затирание: данные в таблице полностью заменяются на новые (самые актуальные). Историчность при этом полностью теряется, то есть после обновления невозможно отследить цепочку изменений.

Пример:

Суррогатный ключ (ID записи) остаётся прежним. Значения полей «Должность» и «Отдел» заменяются на новые. Бизнес-ключ (Табельный номер) в данном примере не меняется, но может быть изменён при необходимости по аналогии с другими полями. +Таблица с оригинальными даннымиID записиТабельный номерФИОДолжностьОтдел1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтдел1026ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продаж

Тип 2 Второй тип (SCD2) использует добавление новой строки и дополнительных столбцов. Такой подход позволяет сохранить историчность.

Дополнительно можно добавить служебные столбцы, которые могут отвечать за версионирование, статус, временной интервал, в течение которого данные строки можно считать актуальными.

Пример: Суррогатный ключ (ID записи) создаётся новый. Бизнес-ключ (Табельный номер) не меняется, что позволяет связать добавленную строку с оригинальной. +Таблица с оригинальными даннымиID записиТабельный номерФИОДолжностьОтдел1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок Добавилась только строка

В добавленной строке содержатся новые значения полей «Должность» и «Отдел». +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтдел1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок1027ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продаж Добавилась строка и столбец с флагом

В добавленной строке содержатся новые значения полей «Должность» и «Отдел». В добавленном столбце содержится статус записи в таблице. Помимо такого статуса может использоваться любой другой флаг, например, этап согласования. +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтделСтатус1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупокFALSE1027ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продажTRUE Добавилась строка и столбец с версией +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтделВерсия1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок01027ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продаж1 С каждым новым изменением номер версии инкрементально растёт.

Добавилась строка и столбцы с диапазоном +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтделДата началаДата окончания1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок2000-01-01T00:00:002008-08-08T00:00:001027ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продаж2008-08-08T00:00:00NULL Вместо NULL в значении столбца «Дата окончания» для обозначения того, что строка наиболее актуальная, можно использовать значение «9999-12-31T00:00:00».

Значение даты окончания предыдущей строки совпадает со значением даты начала следующей строки.

Добавилась строка и столбцы с датой вступления изменения в силу +Таблица с обновлёнными даннымиID записиТабельный номерФИОДолжностьОтделДата вступления в силуСтатус1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок2000-01-01T00:00:00TRUE1027ИБ-69420Иванов Сергей ПетровичГлавный специалистОтдел продаж2008-08-08T00:00:00FALSE

Тип 3 Третий тип (SCD3) использует добавление новых столбцов-атрибутов, хранящих предыдущее значение для поддержания историчности. Такой тип в чистом виде возникает редко, и нужен бизнесу для ситуаций, когда необходимо отслеживать изменения только по конкретным параметрам.

Пример: +Таблица с оригинальными даннымиID записиТабельный номерФИОДолжностьОтдел1026ИБ-69420Иванов Сергей ПетровичМладший специалистОтдел оптовых закупок +Таблица с обновлёнными даннымиID записиТабельный номерФИОПрежняя должностьТекущая должностьПрежний отделОтделДата вступления в силу1026ИБ-69420Иванов Сергей ПетровичМладший специалистГлавный специалистОтдел оптовых закупокОтдел продаж2000-01-01T00:00:00 Третий тип сохраняет лишь ограниченную историчность (с точностью только до предыдущего значения), что делает его менее содержательным по сравнению с типом 2.

Примечания

Литература

См. также Хранилище данных Таблица измерений Схема звезды Схема снежинки

Категория:Хранилище данных