Concurrency 如何在SSI中将并发ETL任务扩展到任意数量? 问题(见下文)

Concurrency 如何在SSI中将并发ETL任务扩展到任意数量? 问题(见下文),concurrency,ssis,scale,etl,Concurrency,Ssis,Scale,Etl,如何在SSI中将单个任务(例如下载和解析)扩展到任意数量的并发执行(例如500次) 设置说明 我们的设置是,我们有一个要访问的提要URL列表,获取所有项目并将它们插入数据库 目前,一个php脚本会同时下载它们,按顺序解析它们,并将它们转储到csv中,然后使用load data infile将csv插入数据库。ETL包可以以某种方式处理上述所有步骤 这由包属性MaxConcurrentExecutables控制。默认值为-1,这意味着机器内核x 2,通常运行良好 您还可以通过在每个数据流任务上设置

如何在SSI中将单个任务(例如下载和解析)扩展到任意数量的并发执行(例如500次)

设置说明 我们的设置是,我们有一个要访问的提要URL列表,获取所有项目并将它们插入数据库


目前,一个php脚本会同时下载它们,按顺序解析它们,并将它们转储到csv中,然后使用load data infile将csv插入数据库。ETL包可以以某种方式处理上述所有步骤

这由包属性MaxConcurrentExecutables控制。默认值为-1,这意味着机器内核x 2,通常运行良好

您还可以通过在每个数据流任务上设置EngineThreads来影响这一点


这里有一个很好的总结:

SSI的控制流级别允许并行化。我不记得公式了,但有文件记录。因此,您可以立即运行N个并发任务。如果您需要更多的并行化,那么您可以采用脚本-任务方法,基本上用代码编写所有并行化逻辑。或者,您可以在自己的进程中运行更多SSI包。后一种方法在@billinkc中进行了概述,谢谢,这是解决问题的方法。这是我期待的解决方案,另外,我需要以协调的方式处理工作拆分。感谢SSIS控制流设计器为您提供优先约束(箭头)和序列容器(框)来管理协调。我尽量让它保持宽松,以最大化并行性。在服务器被打之前我不会高兴的!