2013-07-19 9 views
0

Мы работаем над процессом ETL. Процесс требует от нас взять идентификатор из источника (Oracle) и запросить другой источник данных (MS SQL DB). Запрос должен получить два набора данныхПолучение нескольких записей в SSIS

  1. детали клиентов - один к одному картографирования получить все счета на счета клиентов
    1. соотношением ID -multiple записей для того же идентификатора

В настоящее время мы используем компонент look-up и в процессе получаем только первое совпадение для учетной записи клиента. Как мы можем получить несколько совпадающих записей - i, e все соответствующие учетные записи клиентов. Поскольку оба источника данных отличаются, мы не можем выполнять внутреннее соединение. Другой альтернативой, о которой мы могли подумать, было использование промежуточной таблицы, но мы хотели избежать этого. Есть ли другой способ использования компонента SSIS для получения нескольких совпадающих записей для одного и того же идентификатора.

+0

Что вы хотите сделать с данными позже? Добавить данные как производный столбец и сохранить его в какой-либо другой таблице? Обратите внимание на использование нескольких источников данных с соответствующими SQL-запросами и 'Union All', чтобы объединить их. – makciook

+0

После получения его нам нужно вставить его в пункт назначения. Записи из сопоставления 1-1 отличаются от записей от 1-го. Один из них - информация о клиенте, а другая - учетная запись клиента. Я не уверен, можем ли мы сделать Союз все. –

ответ

1

Как вы уже определили, компонент Lookup - это синхронный элемент. Через него проходит одна строка, и выходит только одна строка. Поиск и добавление данных в существующую строку, но не может добавить новую строку в поток.

Будучи в вашей обуви, кроме того, что я работал с DB2, я закончил с Asynchronous Script. Я передал бы id в режим Component в ReadOnly и определил свой новый вывод и все столбцы, которые будет генерировать задача. Да, это утомительно.

Внутри моего скрипта, в моем PreExecute, я установил соединение с моим источником данных, а затем в я запустил однопользовательские запросы в свою базу данных, чтобы получить все связанные аккаунты. Я сделал две вещи с возвращенными данными. Я вызвал метод AddRow и заполнил поля - это отправляет данные вниз по течению. Я также сохранил локальную копию в памяти, так как я мог иметь один и тот же идентификатор несколько раз в данном прогоне (Человек купил финансовый продукт A и в той же партии, они также купили продукт B). Это избавит меня от поездки в базу данных. Вы можете лучше понять свои данные и поможет ли это.

Смежные вопросы