Integration Services中已清理数据的临时存储

时间:2009-03-09 11:27:24

标签: sql-server

我有一个Excel文件,我需要在集成服务中处理三次,一次用于项目,一次用于人员,一次用于跟踪数据。

在每一步我都有excel源,我需要做一些数据清理和类型转换(在所有三个步骤中都相同)。

是否有一种简单的方法可以创建一个完成所有这一切的步骤,并允许我将输出用作其他“实际”步骤的输入?

我开始考虑将它导入临时表中的SQL服务器,这无疑是好的,但如果我可以跳过这一步,那就太好了。

2 个答案:

答案 0 :(得分:1)

实际上可以使用单个数据流来实现。

您可以读取一次Excel数据源,然后使用多播转换在内存中创建数据集的副本。然后,您可以相应地处理三个数据流分支中的每一个,也可以使用并行处理!

有关详细信息,请参阅以下参考资料:

http://msdn.microsoft.com/en-us/library/ms137701(SQL.90).aspx

我希望我详细说明的内容清晰易懂,但如果您需要进一步的指导,请随时与我联系。

干杯,约翰

[在回复评论时添加]

关于您的进一步问题,您可以使用多个流指定包的优先级/流量控制。因此,例如,您可以使用多播任务创建三个数据流,然后定义优先流控制,以便流2中的所有转换任务必须在第二个流中的转换开始之前完成。

答案 1 :(得分:0)

您可以先使用三个单独的数据流任务和文件操作任务。文件操作是将原始Excel文件复制到临时区域。三个数据流任务中的每一个都将从临时文件开始并写入临时文件(我认为他们可能需要写入副本)。

这个问题是这使得数据流顺序运行。这可能不是您的Excel文件的问题,但是处理大量行的问题。在这种情况下,最好并行处理三个“步骤”,并在最后阶段加入结果。