Sql server Pentaho-在不同主机上同时执行L存储过程

Sql server Pentaho-在不同主机上同时执行L存储过程,sql-server,stored-procedures,pentaho,etl,Sql Server,Stored Procedures,Pentaho,Etl,我在不同的主机上有相同的存储过程,如下所示: Host1 -> sqlserveristance--> master(db) ---> sp_name Host2 -> sqlserveristance--> master(db) ---> sp_name .... 对于每个存储过程,执行时间都很长,这就是我希望同时执行而不是按顺序执行的原因。主机名存储在一个文件中,对于我在数据库连接参数中设置的每个环境变量 这正是我的工作: Job1 Trasformat

我在不同的主机上有相同的存储过程,如下所示:

Host1 -> sqlserveristance--> master(db) ---> sp_name
Host2 -> sqlserveristance--> master(db) ---> sp_name
....
对于每个存储过程,执行时间都很长,这就是我希望同时执行而不是按顺序执行的原因。主机名存储在一个文件中,对于我在数据库连接参数中设置的每个环境变量

这正是我的工作:

Job1 Trasformation1.1 --read file and copy rows to result
Job2 ( checked "execute for every input row")
Trasformation2.1 --get rows from result and set variables Hostname
Trasformation2.2 -- use ${HostName} to execute sql script

但似乎每个SQL脚本都是按顺序运行的。

如果您想用不同的参数并行执行相同的转换,那么您可以使用
转换执行器
步骤

要指定并行线程的数量,您可以右键单击该步骤,然后选择
更改要启动的拷贝数
选项。请记住将上一步的
数据移动
选项设置为
循环
(而不是
复制数据
),以便上一步将在转换执行器的副本之间分配输出行

您可以将上一步的输出列映射到
参数
选项卡上的子转换参数

建议的工作流程:

<Main.ktr>:
    [Text file input] Read connection details
     || data movement: round-robin
     ||
     \/
    [Transformation executor] (x2 copies, pass HostName column as a parameter)
    <sub-transformation.ktr>:
        [Execute SQL script] (use ${HostName} to execute sql script)
:
[文本文件输入]读取连接详细信息
||数据移动:循环
||
\/
[Transformation executor](x2份,将主机名列作为参数传递)
:
[执行SQL脚本](使用${HostName}执行SQL脚本)