Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 使用脚本任务中的web服务调用进行SSIS数据转换-需要多线程_Multithreading_Ssis - Fatal编程技术网

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

Multithreading 使用脚本任务中的web服务调用进行SSIS数据转换-需要多线程,multithreading,ssis,Multithreading,Ssis,我熟悉基本任务的SSI,但在本例中,我正在寻找一些关于在多线程中调用web服务的指导。我的数据流中有一个很大的记录集,对于每个记录,我都需要调用web服务并基于行中的现有数据检索一个值。然后,从web服务返回的值存储在行中并发送到输出。我现在这个工作很好,但是它一行一行地执行操作,这需要很长时间。我希望以多线程的方式调用调用web服务的脚本组件,以便同时进行数十次web服务调用—web服务可以处理这些调用。非常感谢任何指向正确方法的指针。您可以使用条件拆分将数据分离为多个数据流线程,并在每个线程

我熟悉基本任务的SSI,但在本例中,我正在寻找一些关于在多线程中调用web服务的指导。我的数据流中有一个很大的记录集,对于每个记录,我都需要调用web服务并基于行中的现有数据检索一个值。然后,从web服务返回的值存储在行中并发送到输出。我现在这个工作很好,但是它一行一行地执行操作,这需要很长时间。我希望以多线程的方式调用调用web服务的脚本组件,以便同时进行数十次web服务调用—web服务可以处理这些调用。非常感谢任何指向正确方法的指针。

您可以使用条件拆分将数据分离为多个数据流线程,并在每个线程上调用webservice


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

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

您正在寻找。它是为这种情况而设计的。与Tab提出的有条件拆分的概念类似,但BDD将检测输出1和2中的背压,并对发送到它的行进行节流,直到侧柱清除或输出3变得同样堵塞,而不是猜测如何平均分配负载


这看起来很有希望,我会试试看,谢谢billinkc和Tab。很好的发现。我不知道这件事,因为它没有与SSIS 2008R2一起发布,而我的商店目前正处于困境。很高兴他们制作了一个2008版本作为附加组件。@TabAlleman不幸的是,它没有在任何级别随盒装产品一起提供。即使MS支持,许多组织也不愿意安装额外的软件。“你不能在单个脚本组件内部完成”是不准确的。默认脚本组件是同步的,因此,1行输入即1行输出,但您可以将其更改为异步方法,并根据业务需要将其设置为1行输入、N行输出或N行输入和1行输出。