我正在使用Pentaho数据集成(又称水壶),并且有几个转换,我们称它们为A,B,C,D,E。B取决于A,D取决于C和E。在工作中取决于B和E。我想并行运行A,B和C,D:

           -> A -> B _
    Start<            \
           -> C -> D----> E

A和C并行运行。有没有任何方法可以执行E仅在b D成功了吗?现在,查看工作指标,E尽快被执行 或者 D完成。

有帮助吗?

解决方案

我刚刚找到 http://forums.pentaho.org/showthread.php?t=75425 而且似乎不容易实现我想要的东西。

其他提示

您可以做这样的事情:

        /--=--[job]----[set var J1=1]---\ 
[start]----=--[Job]----[set var J2=1]----+--[jscriptstep]--(ok)-->[next steps]
        \--=--[Job]----[set var J3=1]---/        \
                                                 (x)
                                                   \
                                                  [Write to log]

JS步骤:

J1= parent_job.getVariable("J1");
J2= parent_job.getVariable("J2");
J3= parent_job.getVariable("J3");
(J1*J2*J3)==1;

写入日志步骤是可选的,我曾经没有在日志中注册红色的错误,并使用日志消息:

“等待:$ {j1} - $ {j2} - $ {j3} - $ {j4} - $ {j5}”

因此,我能够看到每个步骤通过日志结束。

我相信这可以做到,但是我没有足够大的工作来真正测试这一点,而且很尴尬。基本上,除了您的A,B,C,D和E工作外,您还需要4个独立的工作。让我们称他们为控制作业,作业A_B,Job C_D和并行作业。

您这样设置它们:

Control Job: start -> Parallel Jobs -> E
Parallel Jobs:       -> Job A_B
               start<           (Set Start step to run next jobs in parallel)
                     -> Job C_D
Job A_B: start -> A -> B
Job C_D: start -> C -> D

关键是A-> b和c-> d需要处于自己的工作步骤中才能保留依赖性。然后,并行作业确保两个并行路径在允许控制继续前进。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top