Frage

Ich arbeite mit Pentaho Data Integration (aka Kessel) und ich mehrere Transformationen haben, nennen wir sie A, B, C, D, E. B auf A abhängt, hängen D auf C und E ist abhängig von B und D. In einem Job würde Ich mag A, B und C, D parallel laufen zu lassen:

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

wobei A und C parallel laufen. Gibt es eine Möglichkeit E auszuführen nur genau dann, wenn B und D waren erfolgreich? Gerade jetzt, in den Job-Metriken suchen, E sobald entweder B ausgeführt wird oder D fertig sind.

War es hilfreich?

Lösung

Ich habe gerade http://forums.pentaho.org/showthread.php? t = 75425 und es scheint, als ob es nicht ohne weiteres möglich ist, zu erreichen, was ich will.

Andere Tipps

Sie können etwas tun:

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

Die JS Schritt mit:

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

Der Schreibschritt loggt ist optional und ich nicht in registrieren log ein rotes gesäumte Fehler, durch die Verwendung Log-Meldung:

  

"Waiting: $ {J1} - $ {J2} - $ {J3} - $ {J4} - $ {J5}"

Also ich bin in der Lage zu sehen, was und wenn jeder Schritt Enden durch log.

Ich glaube, das getan werden kann, aber ich habe keine Arbeit groß genug, um das wirklich gut zu testen, und es ist umständlich. Grundsätzlich müssen Sie 4 separate Arbeitsplätze zusätzlich zu Ihrem A, B, C, D und E Arbeitsplätze. Nennen wir sie Steuer Job, Job A_B, Job C_D und parallele Jobs.

Sie legen sie auf wie diese:

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

Der Schlüssel ist, dass A -> B und C -> D müssen in ihrem eigenen Job Schritt, um die Abhängigkeit zu halten. Dann Parallel Jobs stellt sicher, dass die beiden parallelen Bahnen, bevor die Steuerung abgeschlossen haben Lassen E fortzufahren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top