Как получить несопоставленные данные между двумя источниками в потоке данных SSIS?

У меня есть два источника данных, одна таблица sql, один плоский файл (csv). Оба источника имеют одинаковые столбцы. Пример данных:

Стол:

HCN  Name  Surname   DOB
111  John   Black    2013-12-10
222  Jack   White    1989-01-14
333  Brian  Brown    2000-04-22

Плоский файл:

HCN  Name  Surname   DOB
111  John   Black    2013-12-10
444  Alex   Smith    1978-05-16

Обратите внимание, что столбец HCN является первичным ключом. Что мне нужно сделать, так это включить такие записи в таблицу, но FlatFile.

Ожидаемый результат:

HCN  Name  Surname   DOB
222  Jack   White    1989-01-14
333  Brian  Brown    2000-04-22

Я должен сделать это в потоке данных моего пакета SSIS. Я делаю ниже, чтобы получить совпадающие записи (HCN:111), но как я могу получить несопоставленные, я не мог понять. Любая помощь будет оценена по достоинству.

введите описание изображения здесь


person Eray Balkanli    schedule 04.06.2018    source источник
comment
Используйте поиск вместо объединения слиянием, а затем используйте вывод Not Matched. stackoverflow.com/questions/31253755/   -  person EzLo    schedule 04.06.2018
comment
Ошибка получения: у целевого компонента нет доступных входных данных для использования при создании пути, когда я пытаюсь подключить оба исходных файла к поиску ?? @ЭзЛо   -  person Eray Balkanli    schedule 04.06.2018
comment
вам не нужно подключать справочную таблицу к поиску, вы настраиваете ее напрямую в соединениях поиска (у него есть только 1 вход как поток).   -  person EzLo    schedule 04.06.2018
comment
Я не думаю, что вы можете выполнить поиск из соединения с плоским файлом, не так ли?   -  person Tab Alleman    schedule 04.06.2018
comment
Загрузите содержимое в диспетчер кеша в предыдущем потоке данных, после чего вы сможете использовать поиск в кеше.   -  person EzLo    schedule 04.06.2018


Ответы (2)


РЕШЕНИЕ 1: ПОИСК.
Вы можете выполнить следующие шаги:

  • добавьте преобразование поиска
    на вкладке подключения, выберите подключение к плоскому файлу
    на вкладке столбца, перетащите столбец «Соединение» на вкладке «Общие», обработайте несоответствующие записи с помощью строк перенаправления
  • Перенаправьте несоответствующий вывод в пункт назначения

введите описание изображения здесь

РЕШЕНИЕ 2: ОСТАВИТЬ АНТИ-ОБЪЕДИНЕНИЕ

Вы можете выполнить следующие шаги:

1 Отсортируйте наборы данных или измените свойства источника на isSorted = true

2 Используйте LEFT JOIN для ключа и добавьте новый столбец, содержащий идентификатор правой стороны.

3 Добавить условное условие разделения на правую сторону. Идентификатор равен нулю.

Затем перенаправьте разделенные данные CASE 1 в пункт назначения, у вас есть только строки с левой стороны без соответствия правой стороне.

введите описание изображения здесь

person Kobi    schedule 04.06.2018
comment
Я просто добавляю альтернативное решение LOOKUP, предложенное комментариями. - person Kobi; 04.06.2018
comment
Вы не можете использовать плоский файл в поиске. Вы предлагаете поместить плоский файл в соединение с кешем, а ЗАТЕМ использовать его в поиске? - person Don Cheadle; 19.12.2018

Во-первых, я предлагаю вам загрузить данные плоского файла в промежуточную таблицу OLEDB, что необязательно. Если вы загружаете данные плоского файла в место назначения, вы можете выровнять первичные ключи для поиска.

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

См. ниже преобразование поиска введите здесь описание изображения

Проверьте столбцы поиска:

Вот пример

введите здесь описание изображения

person Ven    schedule 04.06.2018