Pregunta

Estoy trabajando con Pentaho Data Integration (también conocido como Caldera) y tengo varias transformaciones, llamémosles A, B, C, D, E. B depende de A, D depende de C y E depende de B y D. En un trabajo que me gustaría correr A, B y C, D en paralelo:

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

donde A y C se ejecutan en paralelo. ¿Hay alguna manera de ejecutar E solamente si y sólo si B y D tuvieron éxito? En este momento, mirando a las medidas de trabajos, E es ejecutado tan pronto como sea B o D están acabados.

¿Fue útil?

Solución

Me acaba de encontrar http://forums.pentaho.org/showthread.php? t = 75425 y parece que no es fácilmente posible lograr lo que quiero.

Otros consejos

Puede hacer algo como esto:

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

paso El JS con:

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

La escritura para registrar paso es opcional y no utiliza para registrarse en el registro de un error en rojo alineados, mediante el uso de mensajes de registro:

  

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

Así que soy capaz de ver qué y cuándo termina cada paso a través del registro.

Creo que esto se puede hacer, pero no tienen trabajo lo suficientemente grande como para realmente probar esto así, y es incómodo. Básicamente, usted necesitará 4 trabajos separados, además de los trabajos de A, B, C, D y E. Llamémosles Control de trabajos, empleo A_B, Trabajo C_D, y en paralelo Jobs.

Se les estableció como esto:

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 clave es que A -> B y C -> D necesidad de estar en su propio paso de trabajo para retener la dependencia. Entonces paralelo Jobs se asegura de ambos caminos paralelos han completado antes de permitir el control de proceder a E.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top