sql-server - 带有连接的 SSIS 平面文件
问题描述
我有一个包含以下列的平面文件
- 设备名称
- 设备类型
- 设备位置
- 设备区
我需要将其插入名为 Devices 的 SQL Server 表中。设备表具有以下结构
- 设备名称
- DeviceTypeId(DeviceType 表中的外键)
- DeviceLocationId(来自 DeviceLocation 表的外键)
- DeviceZoneId(来自 DeviceZone 表的外键)
DeviceType、DeviceLocation 和 DeviceZone 表已预先填充。现在我需要编写读取平面文件的 ETL,并为每一行从相应的表中获取 DeviceTypeId、DeviceLocationId 和 DeviceZoneId 并插入到 Devices 表中。我确信这不是什么新鲜事,但我在这样的 SSIS 包上工作了一段时间,我们将不胜感激。
解决方案
将平面内容加载到临时表中并编写存储过程来处理 T-SQL 中的插入和更新。
在目标表之间建立 FK 关系可能会给单个数据流和多播带来很多麻烦。问题是您无法控制插入的顺序,因此可以在父记录之前插入子记录。
此外,对于表上的标识列,您无法从一个流中检索标识值并在另一个流中使用它而不使用后续合并连接。
推荐阅读
- java - 线程“主”org.openqa.selenium.WebDriverException 中的异常:返回值无法转换为 WebElement:{stacktrace=Backtrace:
- excel - 从 SQL Server 检索和导出数百万行
- javascript - IIFE 在 javascript 中上课
- active-directory - Samba GPO 策略不适用于 Windows 客户端
- ios - 在 M1 Mac 上运行的 iOS 应用程序的“文件”在哪里?
- mysql - MySQL子查询拉取满足多列数据点的结果
- c++ - 找不到包含文件“字符串”
- swift - 我可以在 xcode 上使用自定义 Swiftlint 安装路径吗?
- c# - 如何将类添加到组合框并应用于图片框?
- spring - Spring - 无法将 Pageable 设置为小于总结果大小