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

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

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

Прямо сейчас В моем потоке управления у меня есть

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

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

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

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

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

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

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

Пара вопросов, которые мне нужны Ответил:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...