Open Business Intelligence

La red del Business Intelligence

Hola a todos, mi problema es el siguiente: necesito ir pasando filas desde unos jobs ó transformaciones hacia otros para procesarlas una una, me explico con un ejemplo:
- Tengo un JobA que contiene dentro una Transformación (TA), esta lee de una bd y escribe con un copiar filas al resultado.
- Detrás en el flujo de esta transformación (TA) y siempre dentro del JobA tengo un Job (JobB), el cual tengo marcado que se ejecute una vez por cada linea (every input row) para ejecutar una a una de las filas que me envía la (TA). Dentro de este JobB tengo una transformación (TB) que recoge los datos enviados en el flujo con un get rows from previous results hace una manipulación y graba a una tabla.
- Tras el JobB (y siempre dentro del JobA), lo siguiente en el flujo es una transformación (TC) que lo que hace es leer la tabla rellenada anteriormente en el TB y vuelve a copiar las filas al resultado.
-Tras esta transformacion (TC) que lee los datos de esta tabla tengo un JobC que se ejecuta una vez por línea y dentro una transformacion (TD) que vuelve a recoger estos datos con get rows from previous results para transformarlos.
Mi problema es que la primera transformación que lee datos de una tabla y manda los resultados al JobB para que ese los ejecute linea a linea (recogiendolos dentro de su transformacion con get rows from result) lo hace correctamente y procesa bien, pero al llegar a la siguiete lectura de la tabla (TC) y mandarselos al jobC que a su vez se ha de ejecutar una vez por cada fila que recibe y dentro su transformacion que vuelve a recoger las filas con get rows from result ESTE paso ya no funcona, el stream está vacío. No sé si es porque no se puede utilizar más de una vez el get rows from result (aunque realmente está cada uno en un job distinto, eso sí dentro de otro genérico y conectados), ó es que estoy haciendo algo mal. He pensado también en pasarlas como parámetros ó variables pero no se me ocurre como. Lo he tendio que hacer así porque he tenido que partir en distintas transformaciones y jobs ya que tenía muchos pasos y me quedaba sin memoria, así mismo los procesos de algunos jobs lo tengo que hacer línea ya que tengo que tener la conformidad de que se ha realizado todo el trabajo de una fila antes de pasar a la siguiente.
¿Alguien puede aportarme algon de luz?
Muchas gracias a todos por vuestro interés, y saludos.

Visitas: 1116

Respuestas a esta discusión

Hola valmanar, la verdad es bastante confuso lo que planteas.
Podrías adjuntarnos algunas imágenes, los trabajos y transformaciones y aclararnos qué es específicamente (de todo lo que nos contaste) que no te funciona.

Saludos.
Hola y gracias por responder estuve fuera unos días y no he visto el mensaje, adjunto te pongo una imagen de los jobs y trabajos que van en cadena. El problema real que tengo es que se me agota la memoria, le he dado muchas vueltas pero no soy capaz. Lo que lanzo es un job que dentro de este tiene varias trasformaciones y jobs a su vez. Siguiendo la imagen adjunta el problema me dá cuando llego a la transformación t_d_prec_cost_cent_t4, dentro de ella lo único que hago es leer de una tabla todos los registros (unos 300000) y utilizo el paso de copiar filas al resultado. Siguiendo el dibujo esto llega al job -> j_precios_compra_t2 que tiene marcado la opción de procesar fila a fila ya que necesito ejecutar este job por cada fila que le entra desde la transformacion anterior (t_d_prec_cost_cent_t4) en esta transformación (t_d_prec_cost_cent_t4) tengo marcado que me borre la lista de filas antes de ejecutarla, lo hago porque creía que con esto "limpiaba" la memoria hasta ese punto y así la descargaba y como ya lo había almacenado en la tabla pues debería habre problema pero parece que no es así. Al ejecutarse el job (j_precios_compra_t2) para procesar fila a fila lo que le llega de la transformacion anterior me da: java.lang.outOfMemoryError:Java heap space.
Lo ejecuto desde un widows xp y le tengo puesto 1Gb de ram en el Ini del pentaho para la máquina. Como he dicho antes me basaba en el parametro que traen las transformaciones de borrar la filas antes de de ejecutar la transformación para así vaciar la memoria pero parece ser que estoy equivocado.
¿Alguna idea?, gracias a todos por vuestro interés y a tí especialmente.




Bernabeu R. Dario dijo:
Hola valmanar, la verdad es bastante confuso lo que planteas.
Podrías adjuntarnos algunas imágenes, los trabajos y transformaciones y aclararnos qué es específicamente (de todo lo que nos contaste) que no te funciona.

Saludos.
Archivos adjuntos

RSS

Distintivo

Cargando…

© 2024   Creado por Emilio.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio