Изменения структуры исходной таблицы в источнике данных SSIS

Я импортирую таблицу FoxPro в SQL Server 2008 с помощью SSIS. Исходные данные — это проприетарная база данных, над которой я не контролирую. Позвольте назвать таблицу, которую я импортирую, Customers.

Иногда структура для клиентов выглядит так:

ID (целое число)

ИМЯ (char(30))

АДРЕС (char(30))

ГОРОД (char(20))

СОСТОЯНИЕ (char(2))

ZIP (символ(10))

CCNUM (символ(16))

В других случаях это выглядит так:

ID (целое число)

ИМЯ (char(30))

АДРЕС (char(30))

ГОРОД (char(20))

СОСТОЯНИЕ (char(2))

ZIP (символ(10))

CCPTR (char(100))

Эта проприетарная база данных в основном имеет 2 разные версии базы данных. В старой версии было поле под названием CCNUM (номер кредитной карты), которое представляло собой базовое поле из 16 символов. В более новой версии это поле было заменено полем CCPTR, которое представляло собой 100-символьное поле, представляющее указатель карты (зашифрованное значение фактического номера кредитной карты).

Проблема здесь в том, что каждый раз, когда мне приходится переключаться между двумя наборами данных, которые имеют эти разные структуры таблиц, SSIS взрывается, и мне приходится входить и вручную обновлять метаданные.

У меня вопрос: могу ли я в любом случае заставить SSIS динамически искать одно из этих полей во время выполнения и, основываясь на том, какое из них есть, загружать правильные данные в правильную структуру таблицы в SQL?

Простите меня, если это было задано раньше. Я все еще новичок в SSIS, и я пытался найти этот ответ, но безрезультатно.

Спасибо,

Отметка


person Mark Hackenberg    schedule 24.07.2012    source источник


Ответы (2)


Короткий ответ: нет. Ожидается, что службы SSIS не претерпят существенных изменений в метаданных исходного и целевого компонентов. Есть способы программно повлиять на это с помощью .NET, но это упускает суть.

Хорошо продуманное решение этой проблемы — создать 2 отдельных потока данных, которые копируют данные в общую промежуточную таблицу. Используйте эту промежуточную таблицу в качестве источника для преобразования данных и преобразования их в окончательную структуру данных.

person Jeroen Bolle    schedule 25.07.2012

если вы создадите свой пакет на основе длины (100) и настроите его на (16), вы должны получить только предупреждение. Вы получаете сообщение об ошибке?

person Diego    schedule 25.07.2012