我有一个场景是我需要移动大量数据,并且我需要使用 BizTalk 来控制流程并包含业务逻辑。问题是 BizTalk 将无法处理需要移动的数据量。
我们已决定通过 BizTalk 编排启动一个 SSIS 包,该包执行实际繁重的工作。但是,需要注意的是,我们必须能够将信息传递到 SSIS,例如文件位置和有关如何拆分某些数据的信息。
我的问题是,给定这些参数,从编排调用 SSIS 的最佳方式是什么?我应该围绕它构建一个网络服务吗?是否有我可以调用的适配器或存储过程?或者有没有办法直接从编排中调用它?
我有一个场景是我需要移动大量数据,并且我需要使用 BizTalk 来控制流程并包含业务逻辑。问题是 BizTalk 将无法处理需要移动的数据量。
我们已决定通过 BizTalk 编排启动一个 SSIS 包,该包执行实际繁重的工作。但是,需要注意的是,我们必须能够将信息传递到 SSIS,例如文件位置和有关如何拆分某些数据的信息。
我的问题是,给定这些参数,从编排调用 SSIS 的最佳方式是什么?我应该围绕它构建一个网络服务吗?是否有我可以调用的适配器或存储过程?或者有没有办法直接从编排中调用它?
您可能想简单地向您的项目添加一个带有静态方法的 C# 类,并调用标准代码来启动 SSIS 包:
http://www.codeproject.com/KB/database/CallSSISFromCSharp.aspx
http://msdn.microsoft.com/en-us/library/ms136090.aspx
只需从您的编排中调用该方法。
我们最终需要将变量传递给 SSIS 包,以使其与启动它的编排相关联。我们还需要使用相同的编排,但让它根据接收位置启动不同的 SSIS 包。
我们最终得到了这样的解决方案:
我们的同事在此处为任何感兴趣的人编写了此解决方案的更详细说明。