2014-10-29 4 views
0

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

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

+0

В окне свойств Slowly Changeing Dimension у вас нет свойства UpdateChangingAttributeHistory ?. Что мешает вам изменить его от ложного до истинного. Возможно, я не понял вашу проблему. –

+0

Действительно я могу и делаю! Но это, похоже, не изменяет поведение ssis. Возможно, я неправильно понимаю, что это свойство делает, но я не вижу изменений в таблице фактов после запуска с включенным. –

+1

Я всегда боролся с задачей SSIS SCD. В последнее время я читал, что SCD ​​хуже всего относятся к производительности. Теперь в течение нескольких дней мы используем набор задач LookUp, задачу OLEDB для достижения функциональности SCD. Просто добавление, а не ответ на вашу проблему. –

ответ

1

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

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

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

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

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

+0

Звучит разумно для меня! Я думаю, что неправильно понял, каков будет результат :) –