ssis удаляют дубликат путем поиска в пустое место назначения

#ssis #etl #lookup

#ssis #etl #поиск

Вопрос:

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

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

Спасибо

Комментарии:

1. дублируется вся запись или только ее часть?

2. Если дубликаты находятся в исходных записях, используйте distinct в вашем исходном запросе. На самом деле это будет выполнять сортировку за кулисами в базе данных, но это будет на порядок быстрее, чем SSIS

Ответ №1:

измените источник oledb с Table на SQLCOMMAND и используйте параметр DISTINCT в sql-запросе, если дублируется вся запись. ПРИМЕР:

 SELECT DISTINCT * FROM Table1
  

Если дублирование находится в определенном столбце, используйте функцию ROW_NUMBER(). Пример:

 SELECT * FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Col1,Col2 ORDER BY Col1,Col2) AS [ROWNUMBER],* FROM Table1) AS T1
WHERE T1.ROWNUMBER = 1