Дублирующиеся записи в SSIS Назначение плоских файлов - PullRequest
0 голосов
/ 13 апреля 2011

Я пишу в место назначения плоского файла в пакете служб SSIS 2008. 99,99% работает правильно. Тем не менее, я получаю одну повторяющуюся запись в файле назначения.

Вот базовый поток пакета:
1. Считайте два файла в кодировке ISO-8859-1 и кодируйте их текст в UTF8 в памяти
2. Объедините два файла вместе в памяти и загрузите их в поисковый кеш
3. Прочитать другой исходный файл с диска
4. Сопоставьте столбец идентификатора из исходного файла со столбцом идентификатора в поисковом кэше
5. Если идентификатор совпадает с идентификатором в поисковом кэше, запишите его в файл соответствия, если идентификатор не совпадает, запишите его в другой файл

Все работает от начала до конца. Тем не менее, я получаю дубликат в файле соответствия. Я начал подозревать, что дубликат вызван специальным символом конца файла (или другим) из текстовых файлов кэша поиска, когда они объединяются. Эти файлы создаются в системе UNIX (но я их кодирую в UTF8, когда читаю). Повторяющаяся запись - это одна и та же запись каждый раз. Как мне избежать получения дубликата (или выяснить, откуда приходит этот дубликат)? Я не могу использовать удаление дубликатов, потому что в месте назначения есть законные дубликаты. Я пытался понять это в течение нескольких недель.

Ответы [ 2 ]

1 голос
/ 15 апреля 2011

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

1 голос
/ 14 апреля 2011

Начните с помещения данных в промежуточные таблицы, таблицы, которые вы можете запросить. Может быть, вы видите, как при объединении вы получаете дублирование. Кроме того, как вы узнаете, что это недопустимое дублирование, если у вас есть действительные опны? Что делает его недействительным?

...