SSIS: источник плоских файлов, преобразующий его в две таблицы SQL OLE DB (выдает ошибки при преобразовании и сортировке перед загрузкой в ​​источник OLEDB)

Я пытаюсь взять плоский файл и превратить его в две таблицы в SSIS и загрузить в источник OLEDB (SSMS). У меня уже есть таблицы, созданные в SSMS, которые совпадают с плоским файлом, по которому строки разделены,'s. Мне пришлось выполнить преобразование данных Transform, потому что тип данных плоского файла отличался от типа данных nvarchar, который я настроил в таблице в SSMS. Я сталкиваюсь с некоторыми препятствиями в моем текущем пакете и не могу загрузить данные в OLEDB, не выдав ошибок до того, как они загрузятся в пункт назначения.

Две таблицы, которые я настроил в SSMS. Один имеет первичный ключ (уникальный_идентификатор), и этот первичный ключ ссылается на внешний ключ такой же (уникальный_идентификатор) в другой таблице

Прямо сейчас на моем контроле у ​​меня есть

Задача "Выполнение SQL" для усечения таблиц перед новой загрузкой -> задача "Два потока данных" для каждой новой таблицы

Задача потока данных, которую я настроил для первой таблицы, -> 1.Текстовый файл с плоским исходным кодом 2. Преобразование данных для преобразования строки [DT_STR] в строку Unicode [DT_WSTR] 3.Сортировка -> Я думал, что удалят дублирующиеся строки из Преобразование данных, но строки все еще дублируют, что вызывает ошибку прежде, чем она попадет в пункт назначения (у меня установлен флажок для удаления повторяющихся значений сортировки) 4. Назначение OLE DB

Ошибка: "Доступна запись OLE DB. Источник:" Собственный клиент Microsoft SQL Server 11.0". Результат: 0x80004005 Описание:" Нарушение ограничения PRIMARY KEY 'PK' ". Невозможно вставить дубликат ключа в объект 'dbo.'. Дубликат ключевого значения (123).".

В средстве просмотра данных его дублирующие записи, которые мне не нужны, вызывают ограничение первичного ключа. Например:

Преобразование данных.последовательность
123 Фамилия Имя
123 Фамилия Имя

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

Я посмотрел много постов и исследовал эту проблему. Я новичок в использовании служб SSIS и ищу наилучший из возможных способов с точки зрения производительности загрузить эти две новые таблицы в пункт назначения OLEDB. Любые рекомендации будут с благодарностью.

Ответы на пару вопросов

1.Могу ли я установить первичный ключ и настройку внешнего ключа между двумя моими таблицами перед выполнением пакета? Мне удалось загрузить плоский файл в две мои таблицы без первичного ключа и внешнего ключа, ссылающихся на первичный ключ во второй таблице. Я должен иметь возможность присоединиться к этим таблицам в будущем, поэтому мне нужно сохранить ссылочную целостность между двумя таблицами. 2. Правильно ли я поступаю в SSIS с теми преобразованиями, которые я выполняю в настоящее время? Я не могу использовать преобразование "Уточняющий запрос", потому что типы данных различаются между источником (плоский файл) и местом назначения (источник OLEDB)

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

0 ответов

Другие вопросы по тегам