Мне нужно загрузить размеры из таблиц EDW (которые поддерживают исторические записи) и имеют тип «ключ-значение-параметр».
Мой сценарий в порядке, если есть запись в EDW, как показано ниже.
Key1 Key2 Code Value EffectiveDate EndDate CurrentFlag
100 555 01 AAA 2010-01-01 11.00.00 9999-12-31 Y
100 555 02 BBB 2010-01-01 11.00.00 9999-12-31 Y
Это нужно загрузить в DM, повернув его как
Комбинации key1 и key2 создают естественный ключ для DM.
SK NK 01 02 EffectiveDate EndDate CurrentFlag
1 100-555 AAA BBB 2010-01-01 11.00.00 9999-12-31 Y
Мой пакет ssis делает все это хорошо, поворачивая... просматривая входящий NK в DIM... если новый будет вставлен... еще с дальнейшим поиском с датой вступления в силу и определяет, получил ли входящий для того же естественного ключа какое-либо новое (изменение) в атрибуте .. если это так, обновляет текущую запись, устанавливая дату ее окончания и вставляя новую с новым значением атрибута и извлекая значения последних записей для других атрибутов.
Моя проблема заключается в том, что если один и тот же естественный ключ приходит дважды с одним и тем же атрибутом в одном извлечении, мой первый поиск, который по естественному ключу ... позволит пройти обеим записям и попытаться вставить ... там, где это не удается. Если я получаю отдельные записи на NK, вторая не выбирается, и мне нужно снова запустить пакет.
Итак, мой вопрос, как я могу настроить поиск или альтернативный способ обработки этого сценария, когда один и тот же NK появляется дважды в одном извлечении, сможет вставить первую запись, если она не существует в таблице Dim, а для второй должна иметь возможность обновляться с изменениями с помощью ссылка на один, вставленный выше.
Не уверен, что это имеет смысл, что я пытаюсь объяснить. Скриншот прикреплю, когда вернусь на рабочий стол (в понедельник).
Спасибо