Плоский файл служб SSIS с объединениями - PullRequest
1 голос
/ 26 сентября 2019

У меня есть плоский файл со следующими столбцами

  • Имя устройства
  • Тип устройства
  • Расположение устройства
  • Зона устройства

Что мне нужно вставить в таблицу SQL Server, которая называется Устройства.Таблица устройств имеет следующую структуру

  • DeviceName
  • DeviceTypeId (внешний ключ из таблицы DeviceType)
  • DeviceLocationId (внешний ключ из таблицы DeviceLocation)
  • DeviceZoneId(внешний ключ из таблицы DeviceZone)

Таблицы DeviceType, DeviceLocation и DeviceZone уже заполнены.Теперь мне нужно написать ETL, который читает плоский файл, и для каждой строки получить DeviceTypeId, DeviceLocationId и DeviceZoneId из соответствующих таблиц и вставить в таблицу Devices.Я уверен, что это не ново, но какое-то время я работал над такими пакетами служб SSIS, и помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

Самый простой способ сделать это - использовать преобразование «Уточняющий запрос», чтобы получить идентификатор для каждого значения.Вы должны знать, что дубликаты могут привести к проблеме, вы должны убедиться, что значение не найдено несколько раз во внешних таблицах.

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

Вы можете обратиться к следующей статье для пошагового руководства по преобразованию Lookup:

0 голосов
/ 26 сентября 2019

Загрузите плоское содержимое в промежуточную таблицу и напишите хранимую процедуру для обработки вставок и обновлений в T-SQL.

Наличие связей FK между таблицами назначения может, вероятно, создать много проблем сединый поток данных и многоадресная рассылка.Проблема в том, что вы не можете контролировать порядок вставок, поэтому дочерняя запись может быть вставлена ​​перед родительской.

Кроме того, для столбцов идентификаторов в таблицах нельзя извлечь значение идентификатора из одного потока и использовать его в другом, не используя последующие объединения слиянием.

...