我正在使用Pentaho数据集成(aka Kettle),我有几个转换,我们称它们为A,B,C,D,E。 B依赖于A,D依赖于C和E取决于B和D.在工作中,我想平行运行A,B和C,D:等待转换作业
-> A -> B _
Start< \
-> C -> D----> E
其中A和C并行运行。只有在B 和 D成功时才有执行E的方法吗?现在,通过查看Job指标,只要B 或 D完成,E就立即执行。
我正在使用Pentaho数据集成(aka Kettle),我有几个转换,我们称它们为A,B,C,D,E。 B依赖于A,D依赖于C和E取决于B和D.在工作中,我想平行运行A,B和C,D:等待转换作业
-> A -> B _
Start< \
-> C -> D----> E
其中A和C并行运行。只有在B 和 D成功时才有执行E的方法吗?现在,通过查看Job指标,只要B 或 D完成,E就立即执行。
我刚刚发现http://forums.pentaho.org/showthread.php?t=75425,它似乎不容易实现我想要的。
我相信这可以做到,但我没有足够大的工作来真正测试这个好,而且很尴尬。基本上,除了你的A,B,C,D和E工作之外,你还需要4个独立的工作。我们称之为控制作业,作业A_B,作业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需要在自己的作业步骤保留了依赖。然后并行作业确保两条平行路径都已完成,然后才允许控制继续执行E.