Я пытаюсь загрузить данные из одного файла (с миллионами + записей) в несколько таблиц на SQL Server, используя SSIS, сохраняя отношения, определенные в файле.Загрузка нескольких таблиц с использованием SSIS, поддерживающих отношения внешних ключей
Чтобы лучше разобраться с примером, допустим, что я пытаюсь загрузить файл, содержащий имя сотрудника, офисы, которые они занимали в прошлом, и их историю заданий, разделенных вкладкой.
Файл:
EmployeeName<tab>OfficeHistory<tab>JobLevelHistory
John Smith<tab>501<tab>Engineer
John Smith<tab>601<tab>Senior Engineer
John Smith<tab>701<tab>Manager
Alex Button<tab>601<tab>Senior Assistant
Alex Button<tab>454<tab>Manager
Если моя схема базы данных Управление имеет следующие таблицы:
Employee (nId, name)
Office (nId, number)
JobTitle (nId, titleName)
Employee2Office (nEmpID, nOfficeId)
Employee2JobTitle (nEmpId, nJobTitleID)
Как я могу использовать SSIS для загрузки файла в схеме выше автоматической генерации идентификаторов для сотрудника, Office и JobTitle и поддерживая отношения между сотрудником и офисами, а также служащими и названиями заданий?
Так что в этом случае. таблицы должны выглядеть следующим образом:
Employee
1 John Smith
2 Alex Button
Office
1 501
2 601
3 701
4 454
JobTitle
1 Engineer
2 Senior Engineer
3 Manager
4 Senior Assistant
Employee2Office
1 1
1 2
1 3
2 2
2 4
Employee2JobTitle
1 1
1 2
1 3
2 4
2 3
Я новичок в SSIS и не играл с автоматической генерацией идентификаторов и установлением внешних ключей отношений при выполнении задачи потока данных. Любые указатели будут оценены.
Спасибо!
Мой первый вопрос: как ваш импорт будет знать, являются ли две записи с тем же именем одним и тем же лицом или разными людьми? Поскольку имена не уникальны, вы должны иметь способ в файле знать, что есть. – HLGEM
Хороший вопрос. Предположим, мы предполагаем, что для этого сценария имя сотрудника уникально. Таким образом, в этой организации будет только один Джон Смит. – mvm