我想引入一个XML源并进行数据转换并在表中更新它。此表中的数据将用于更新另一个表。如何在SSIS中实现这一目标?
我理解前两步。但在那之后输了。
数据转换
OLE DB目的地? (如果我使用OLE DB Destination,那么我不能再使用它作为源来更新另一个表)。我应该用什么组件来实现这个目标?
TIA
答案 0 :(得分:2)
在数据流中,您可以使用条件拆分(如果您希望某些记录采用单向记录,某些记录采用另一种方式)或多播任务(如果您希望所有记录都转到)来拆分记录以转到多个表两个目的地。我们使用多播来创建两个临时表,一个用于保存文件中的原始数据,另一个用于在进入我们的prod表之前清理和转换数据。这使我们能够轻松研究是否有一些问题数据是由于我们的转换过程(一个错误)或发送的错误数据(客户端出现问题,但如果无法修复则可能需要更多步骤来处理) )。
您还可以拥有多个具有相同来源的数据流。或者,您可以插入一个临时表,然后使用第二个数据流或执行SQL任务将该数据移动到您想要的位置。
答案 1 :(得分:0)
使用OLE DB目标将XML源数据注入临时表。然后,在您的控制流中,在数据流任务之后使用执行SQL任务来执行存储过程或T-SQL脚本,以将数据从登台表移动到生产表中,并在需要时截断登台表。 / p>
我发现SSIS非常适合ETL工作,但在数据库或聚合工作中移动数据最好在存储过程中使用T-SQL进行。更容易编写,控制,你知道你不会在DFT中遇到任何RBAR恶作剧。
YMMV