Pentaho - 在不同的主机

时间:2017-03-08 13:02:35

标签: sql-server stored-procedures pentaho etl

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

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脚本都是按顺序运行的。

1 个答案:

答案 0 :(得分:0)

如果要使用不同的参数并行执行相同的转换,则可以使用Transformation executor步。

要指定并行线程数,可以右键单击该步骤,然后选择Change number of Copies to start选项。请记住将上一步的data movement选项设置为round-robin(而不是 copy data ),以便上一步将输出行分配到转型执行者。

您可以将上一步的输出列映射到Parameters标签上的子转换参数。

建议的工作流程:

<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)