在脚本任务中使用Web服务调用进行SSIS数据转换 - 需要多线程

时间:2016-04-20 15:47:07

标签: multithreading ssis

我熟悉SSIS的基本任务,但在这种情况下,我正在寻找一些关于在多个线程中调用Web服务的指导。我的数据流中有一个大的记录集,对于每个记录,我需要调用Web服务并根据行中的现有数据检索值。然后,从Web服务返回的值存储在行中并发送到输出。我现在工作正常,但它执行逐行的操作,这需要很长时间。我想让我的脚本组件调用以多线程方式调用的Web服务,这样我就可以同时进行几十个Web服务调用 - 这是Web服务可以处理的。任何指向正确方法的指针都非常赞赏。

2 个答案:

答案 0 :(得分:1)

您正在寻找Balanced Data Distributor。它专为这种情况而设计。类似于Tab对条件性拆分的建议而不是你猜测如何均衡地分配负载,BDD将检测输出1和2中的背压并限制发送给它的行直到门柱清除或直到输出3变得相等堵塞

答案 1 :(得分:0)

您可以使用条件拆分将数据分成多个数据流线程,并在每个线程上调用Web服务。

您无法在单个脚本组件内部执行此操作。脚本组件一次接收一行,并且不能在内存中保留一行并获取下一行。

编辑:我已经验证了Bill的评论,脚本组件可以是异步的。以下是描述SSIS 2008R2此过程的MSDN链接:

https://msdn.microsoft.com/en-us/library/ms136133(v=sql.105).aspx