Descubre la función de registro de flujo de trabajo de Apache Hop para un procesamiento de datos...
Ejecución de Workflows en Apache Hop: Secuencial, Paralela e Híbrida
Uno de los conceptos fundamentales que encuentran los nuevos usuarios de Apache Hop es la ejecución paralela de tuberías y la ejecución secuencial de flujos de trabajo.
Este concepto se refiere a cómo Apache Hop gestiona la ejecución de tareas dentro de un proyecto. Cuando hablamos de "ejecución paralela de canalizaciones", significa que diferentes transformaciones de datos dentro de una tubería pueden ejecutarse simultáneamente, lo que permite un procesamiento más rápido y eficiente de grandes conjuntos de datos.
Por otro lado, la "ejecución secuencial de flujos de trabajo" implica que diferentes acciones dentro de un flujo de trabajo se ejecutan una tras otra en un orden predefinido, lo que permite un control más preciso sobre el flujo de los procesos y garantiza que se cumplan las dependencias antes de pasar a la siguiente acción. En resumen, mientras que las tuberías pueden ejecutarse simultáneamente para maximizar el rendimiento, los flujos de trabajo se ejecutan secuencialmente para garantizar la consistencia y la integridad de los datos procesados.
Sin embargo, hay situaciones en las que es posible que desee anular estos valores predeterminados y ejecutar tuberías secuencialmente mientras se ejecutan flujos de trabajo en paralelo. Sumergámonos más en este escenario y exploremos cómo puede lograr la ejecución paralela de acciones dentro de un flujo de trabajo.
Ejecución Secuencial
Como ya saben, las acciones dentro de un flujo de trabajo suelen ejecutarse de manera secuencial, con cada acción teniendo un código de salida (éxito o falla) que dicta el camino del flujo de trabajo. Sin embargo, este código de salida puede ignorarse en el caso de un salto incondicional.
Si bien una acción de flujo de trabajo puede tener múltiples saltos salientes, esto no implica ejecución paralela por defecto. Por defecto, si una acción tiene múltiples saltos salientes, todas las acciones se ejecutan secuencialmente en el orden en que se agregaron al flujo de trabajo.
Por ejemplo, en el siguiente ejemplo, el flujo de trabajo primero ejecutará sample-pip1.hpl, seguido de sample-pip2.hpl.
Pero, ¿qué pasa si necesito ejecutar en paralelo?
Ejecución Paralela
La ejecución paralela dentro de un flujo de trabajo es posible, pero requiere una especificación explícita. Para lograr esto, puede hacer clic en el ícono de una acción y seleccionar la opción de "Ejecución paralela" ("Parallel execution").
Una vez activada, la línea de salto aparecerá punteada y doblemente cruzada.
Sin embargo, es importante tener en cuenta que la ejecución paralela significa compartir recursos dentro de la Máquina Virtual de Java (JVM).
Tuberías pequeñas y acciones de flujo de trabajo que se ejecutan en paralelo pueden ser más rápidas, pero tareas más grandes que requieren muchos recursos pueden ejecutarse más rápido cuando se ejecutan secuencialmente.
Al ejecutar este flujo de trabajo, el mensaje de registro indicará que ambas acciones han comenzado en paralelo.
Ejecución Híbrida
Una vez que inicia la ejecución paralela desde una acción dada dentro de un flujo de trabajo, las acciones posteriores también se ejecutarán en paralelo.
Considere el flujo de trabajo simplificado a continuación, donde ambas acciones "Pipeline" comienzan en paralelo. Después de las acciones "Pipeline", las acciones "Write to log" respectivas se ejecutan antes de continuar con las "Dummy".
En muchos casos, es posible que prefiera ejecutar partes específicas de un flujo de trabajo en paralelo. En tales casos, se recomienda aislar el procesamiento paralelo en un flujo de trabajo secundario separado.
En la captura de pantalla proporcionada, la sección del flujo de trabajo destinada a la ejecución paralela se ha aislado en un flujo de trabajo secundario. Cuando se ejecuta este flujo de trabajo, el flujo de trabajo secundario ("parallel-execution.hwf) ejecutará ambas acciones en paralelo. Una vez que concluye la última de estas dos tuberías, el flujo de trabajo principal reanuda su ejecución secuencial.
Resumen
En este artículo, hemos explorado las opciones disponibles para ejecutar acciones de flujo de trabajo en Apache Hop.
- Por defecto, las acciones de flujo de trabajo se ejecutan secuencialmente, una tras otra en un orden predefinido.
- La ejecución paralela permite que diferentes acciones de flujo de trabajo se ejecuten simultáneamente.
- También aprendió cómo combinar la ejecución paralela y secuencial usando flujos de trabajo secundarios.