Как получить несопоставимые данные между двумя источниками в потоке данных SSIS? - PullRequest
0 голосов
/ 04 июня 2018

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

Таблица:

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

FlatFile:

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), но как я могу получить непревзойденные, я не мог понять.Любая помощь будет оценена.

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

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

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

См.Ниже приведено преобразование поиска enter image description here

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

Вот пример

enter image description here

0 голосов
/ 04 июня 2018

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

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

enter image description here

РЕШЕНИЕ 2: ВЛЕВО АНТИ-СОЕДИНЕНИЕ

Вы можете выполнить следующие действия:

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

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

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

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

enter image description here

...