如何在Pentaho数据集成转换内部循环

时间:2019-08-02 08:15:50

标签: pentaho pentaho-spoon pentaho-data-integration pdi

我有以下pdi职位结构:

START ---> TR1 ---> TR2 ---> TR3

其中:

TR1将返回3行,

TR2已启用我的execute every input row,并将返回5行,

TR3已启用我的execute every input row,并且据说运行了15次(这3个TR2中的每5次)。

我的期望是:

TR1将精确地运行1次,TR2将精确地并行运行3次(因为TR1返回3行),

TR3将精确地运行15次(因为TR2中的每一个都返回5行)。

但是现实是

TR2被执行了3次,符合预期

但是TR3仅执行1次,未按预期执行。

我的问题是:

  1. 为什么会这样?

  2. 如何使TR3TR2行中的循环一样

2 个答案:

答案 0 :(得分:1)

为此您需要创建作业,请尝试以下顺序

开始-tr1-(job1(tr2-subjob2(tr3)))-结束

job1和job2将通过执行每个原始输入进行检查。

Dis- 创建job1并连接到tr1,然后将tr2放入其中,然后创建subjob2,然后连接到tr2,然后将tr3放入subjob2中。

答案 1 :(得分:0)

我认为,TR代表变革,而所有TR都是工作的一部分?如果是这种情况,那么您要做的就是-在TR1中,通过将TR1的最后一步与“将行复制到结果”相连,将结果发送到TR2,然后双击作业中的TR2,然后转到“高级”,然后选中“将以前的结果复制到参数”和“执行到每个输入行”。

现在,在其中以相同的名称序列将TR1的列名称添加到TR2的参数标签下。然后在TR2属性中将这些参数添加为具有空默认值的参数,以便您可以将前一次转换生成的值用作TR2中的变量。现在将TR3包含在TR2中,以便甚至对TR1生成的每一行都执行。希望我不要混淆。让我知道是否没有道理。