我有一个Excel文件,我需要在集成服务中处理三次,一次用于项目,一次用于人员,一次用于跟踪数据。
在每一步我都有excel源,我需要做一些数据清理和类型转换(在所有三个步骤中都相同)。
是否有一种简单的方法可以创建一个完成所有这一切的步骤,并允许我将输出用作其他“实际”步骤的输入?
我开始考虑将它导入临时表中的SQL服务器,这无疑是好的,但如果我可以跳过这一步,那就太好了。
答案 0 :(得分:1)
实际上可以使用单个数据流来实现。
您可以读取一次Excel数据源,然后使用多播转换在内存中创建数据集的副本。然后,您可以相应地处理三个数据流分支中的每一个,也可以使用并行处理!
有关详细信息,请参阅以下参考资料:
http://msdn.microsoft.com/en-us/library/ms137701(SQL.90).aspx
我希望我详细说明的内容清晰易懂,但如果您需要进一步的指导,请随时与我联系。
干杯,约翰
[在回复评论时添加]
关于您的进一步问题,您可以使用多个流指定包的优先级/流量控制。因此,例如,您可以使用多播任务创建三个数据流,然后定义优先流控制,以便流2中的所有转换任务必须在第二个流中的转换开始之前完成。
答案 1 :(得分:0)
您可以先使用三个单独的数据流任务和文件操作任务。文件操作是将原始Excel文件复制到临时区域。三个数据流任务中的每一个都将从临时文件开始并写入临时文件(我认为他们可能需要写入副本)。
这个问题是这使得数据流顺序运行。这可能不是您的Excel文件的问题,但是处理大量行的问题。在这种情况下,最好并行处理三个“步骤”,并在最后阶段加入结果。