Медленно меняющееся измерение
- 1 year ago
- 0
- 0
Медленно меняющиеся измерения (от англ. Slowly Changing Dimensions, SCD) — механизм отслеживания изменений в данных измерения в терминах хранилища данных . Применяется в случае, если данные меняются не очень часто и не по расписанию. Примером могут служить географические данные (местонахождение склада, юридический адрес организации), статус заказчика по программе лояльности или отдел компании, в котором работает её сотрудник .
Выделяют несколько типов SCD .
Нулевой тип (SCD0) является пассивным методом, так как предполагается, что значения атрибутов такого типа не будут меняться. Примерами могут служить дата создания записи, дата и место рождения, серийный номер устройства .
Пример:
Серия и номер паспорта | ФИО | Место рождения |
---|---|---|
1800 223111 | Иванов Сергей Петрович | г. Кызыл |
Первый тип (SCD1) использует простое затирание: данные в таблице полностью заменяются на новые (самые актуальные). Историчность при этом полностью теряется, то есть после обновления невозможно отследить цепочку изменений .
Пример:
Суррогатный ключ (ID записи) остаётся прежним. Значения полей « Должность » и « Отдел » заменяются на новые. Бизнес-ключ (Табельный номер) в данном примере не меняется, но может быть изменён при необходимости по аналогии с другими полями.
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж |
Второй тип (SCD2) использует добавление новой строки и дополнительных столбцов. Такой подход позволяет сохранить историчность.
Дополнительно можно добавить служебные столбцы, которые могут отвечать за версионирование, статус, временной интервал, в течение которого данные строки можно считать актуальными.
Пример: Суррогатный ключ ( ID записи ) создаётся новый. Бизнес-ключ ( Табельный номер ) не меняется, что позволяет связать добавленную строку с оригинальной .
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
Добавилась только строка
В добавленной строке содержатся новые значения полей « Должность » и « Отдел ».
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж |
Добавилась строка и столбец с флагом
В добавленной строке содержатся новые значения полей « Должность » и « Отдел ». В добавленном столбце содержится статус записи в таблице. Помимо такого статуса может использоваться любой другой флаг, например, этап согласования.
ID записи | Табельный номер | ФИО | Должность | Отдел | Статус |
---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | FALSE |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | TRUE |
Добавилась строка и столбец с версией
ID записи | Табельный номер | ФИО | Должность | Отдел | Версия |
---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 0 |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 1 |
С каждым новым изменением номер версии инкрементально растёт.
Добавилась строка и столбцы с диапазоном
ID записи | Табельный номер | ФИО | Должность | Отдел | Дата начала | Дата окончания |
---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 2000-01-01T00:00:00 | 2008-08-08T00:00:00 |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 2008-08-08T00:00:00 | NULL |
Вместо NULL в значении столбца « Дата окончания » для обозначения того, что строка наиболее актуальная, можно использовать значение « 9999-12-31T00:00:00 ».
Значение даты окончания предыдущей строки совпадает со значением даты начала следующей строки.
Добавилась строка и столбцы с датой вступления изменения в силу
ID записи | Табельный номер | ФИО | Должность | Отдел | Дата вступления в силу | Статус |
---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок | 2000-01-01T00:00:00 | TRUE |
1027 | ИБ-69420 | Иванов Сергей Петрович | Главный специалист | Отдел продаж | 2008-08-08T00:00:00 | FALSE |
Третий тип (SCD3) использует добавление новых столбцов-атрибутов, хранящих предыдущее значение для поддержания историчности. Такой тип в чистом виде возникает редко , и нужен бизнесу для ситуаций, когда необходимо отслеживать изменения только по конкретным параметрам.
Пример :
ID записи | Табельный номер | ФИО | Должность | Отдел |
---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Отдел оптовых закупок |
ID записи | Табельный номер | ФИО | Прежняя должность | Текущая должность | Прежний отдел | Отдел | Дата вступления в силу |
---|---|---|---|---|---|---|---|
1026 | ИБ-69420 | Иванов Сергей Петрович | Младший специалист | Главный специалист | Отдел оптовых закупок | Отдел продаж | 2000-01-01T00:00:00 |
Третий тип сохраняет лишь ограниченную историчность (с точностью только до предыдущего значения), что делает его менее содержательным по сравнению с типом 2 .