Domanda

Sto lavorando con Pentaho Data Integration (aka Kettle) e ho diverse trasformazioni, chiamiamoli A, B, C, D, E. B dipende A, D dipende C ed E dipende B e D. In un lavoro che desideri eseguire A, B e C, D in parallelo:

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

dove A e C in parallelo. C'è un modo per eseguire E solo se e solo se B e D hanno avuto successo? In questo momento, guardando le metriche di lavoro, e viene eseguito non appena sia B o D sono finiti.

È stato utile?

Soluzione

Ho appena trovato http://forums.pentaho.org/showthread.php? t = 75425 e sembra che non è facilmente possibile ottenere ciò che voglio.

Altri suggerimenti

Si può fare qualcosa di simile:

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

Il passo JS con:

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

La scrittura di accedere passaggio è facoltativo e che ho usato per non registrarsi in un errore di accedere rosso-foderato, utilizzando Messaggio di log:

  

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

Quindi sono in grado di vedere cosa e quando ogni passo estremità attraverso log.

Credo che questo può essere fatto, ma non hanno un lavoro abbastanza grande per davvero testare bene questo, ed è imbarazzante. In sostanza, avrete bisogno di 4 lavori separati in aggiunta ai vostri posti di lavoro A, B, C, D, ed E. Chiamiamoli Job Control, Job a_b, Job C_D, e parallela Jobs.

li mise in questo modo:

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

La chiave è che A -> B e C -> D necessità di essere nel proprio passaggio di processo per mantenere la dipendenza. Poi parallelo Jobs si assicura due percorsi paralleli hanno completato prima di consentire il controllo di procedere a E.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top