SSIS 2012 — установка для медленно меняющегося измерения UpdateChangingAttributeHistory значения true

Используя мастер задач SCD, я не могу установить свойство UpdateChangingAttributeHistory, и по умолчанию оно имеет значение false. Я могу установить это значение в true с помощью расширенного редактора, но это не обновляет сгенерированный поток, и поэтому поведение не изменилось. Что мне нужно сделать, чтобы инициировать SSIS для повторного создания потока без повторного запуска мастера (который устанавливает для параметра UpdateChangingAttributeHistory значение false)?

Моя цель состоит в том, чтобы иметь scd типа 2, который обновляет таблицу фактов, когда происходит изменение.


person Neil P    schedule 29.10.2014    source источник
comment
В окне свойств медленно меняющегося измерения разве у вас нет свойства «UpdateChangingAttributeHistory»? Что мешает вам изменить его с ложного на истинное. Может быть, я не понял вашего вопроса.   -  person Jithin Shaji    schedule 29.10.2014
comment
Я действительно могу и делаю! Но это, похоже, не меняет поведение ssis. Возможно, я неправильно понимаю, что делает это свойство, но я не вижу изменений в таблице фактов после запуска с включенным этим параметром.   -  person Neil P    schedule 29.10.2014
comment
Я всегда боролся с задачей SSIS SCD. Недавно я прочитал, что SCD ​​худшие в плане производительности. Сейчас мы используем набор задач LookUp, задачу OLEDB для достижения функциональности SCD. Просто добавление, а не ответ на вашу проблему.   -  person Jithin Shaji    schedule 29.10.2014


Ответы (1)


Я не могу объяснить, почему флажок UpdateChangingAttributeHistory неактивен в мастере — это звучит плохо. Но я могу сказать вам, что он делает. Если это False, значение по умолчанию, оно изменит предложение WHERE команды OLE DB для «Изменения выходных данных обновлений атрибутов» примерно так:

... WHERE [SomeKeyColumn] = ? AND [SCD_EndDate] IS NULL

Если вы не используете даты, это будет что-то вроде [CurrentRowFlag] = 'Y'

Если вы установите для атрибута значение true, он удалит эту часть предложения WHERE, чтобы все строки с изменениями типа 1 были обновлены, текущими и историческими. Вот и все. Вот почему, если вы не перегенерируете компонент, флаг не действует, потому что команда OLE DB не изменилась.

Таким образом, вы можете вручную внести изменения в выходные данные изменения атрибутов, но эти изменения могут быть утеряны, если компонент SCD будет повторно создан в будущем.
Как отмечено в комментариях, было бы целесообразно рассмотреть возможность создания этой функции с другими компонентами. чтобы улучшить производительность и ремонтопригодность, особенно если с самого начала это выглядит забавно.

person Mark Wojciechowicz    schedule 29.10.2014
comment
Звучит разумно для меня! Кажется, я неправильно понял, каким будет результат :) - person Neil P; 29.10.2014