¡Bienvenido de nuevo al último post de nuestra serie "Construye y despliega"! En esta publicación,...
Construye y despliega 6: Ejecuta canalizaciones y flujos de trabajo de Apache Hop usando Hop Run
¡Bienvenidos de nuevo a nuestra serie "Construye y despliega"! En una publicación anterior, creamos y desplegamos dos pipelines e integrarlos en un workflow en Apache Hop utilizando el Hop GUI. Ahora, es momento de llevar las cosas al siguiente nivel ejecutando esos archivos desde la línea de comandos usando Hop Run.
En esta publicación, explicaremos cómo ejecutar pipelines y workflows del proyecto de ejemplo "my-hop-project" utilizando Hop Run, en lugar de depender del Hop GUI. Este método es particularmente útil para automatizar procesos, integrarse con pipelines CI/CD o ejecutar trabajos en entornos sin interfaz gráfica.
¿Por qué usar Hop Run?
Hop Run es una herramienta de línea de comandos que permite ejecutar workflows y pipelines sin necesidad de iniciar el Hop GUI. Esto ofrece varias ventajas:
- Automatización: Fácil de integrar en scripts o pipelines de CI/CD.
- Rendimiento: No es necesario abrir la GUI, ahorrando memoria y mejorando la velocidad de ejecución.
- Flexibilidad: Permite ejecutar workflows en servidores remotos o en máquinas sin interfaz gráfica.
Requisitos previos
Antes de comenzar, asegúrate de contar con lo siguiente:
- Apache Hop instalado: Ya sea en Windows, macOS o Linux, necesitas una instalación funcional de Apache Hop.
- Pipelines y workflows listos: En nuestra publicación anterior, creamos dos pipelines y un workflow en el proyecto "my-hop-project". Asegúrate de que están guardados en tu directorio de proyecto.
A continuación, revisaremos los pasos para ejecutar nuestros pipelines y workflows utilizando Hop Run.
Paso 1: Localizar el script de Hop Run
Dependiendo de tu sistema operativo, el script de Hop Run está disponible en dos formatos diferentes:
- Windows: hop-run.bat
- MacOS/Linux: hop-run.sh
Estos scripts se encuentran en el directorio raíz de la instalación de Apache Hop. Navega a este directorio antes de proceder con los siguientes comandos.
Para acceder al directorio raíz de Apache Hop, usa los siguientes comandos según tu sistema operativo:
-
Windows
bashcd C:\ruta\a\tu\directorio-de-apache-hop -
MacOS/Linux
bashcd /ruta/a/tu/directorio-de-apache-hop
Reemplaza "ruta/a/tu/directorio-de-apache-hop" con la ruta real donde Apache Hop está instalado en tu sistema.
Paso 2: Ejecutar un pipeline con Hop Run
Empecemos ejecutando un pipeline creado en "my-hop-project", encargado de extraer y transformar los datos.
Ejecuta el siguiente comando desde la línea de comandos:
-
Windows
bashhop-run.bat -j my-hop-project -f C:/ruta/a/my-hop-project/code/clean_transform.hpl -r local -
MacOS/Linux
bash./hop-run.sh -j my-hop-project -f /ruta/a/my-hop-project/code/clean_transform.hpl -r local
Explicación:
-j my-hop-project
: Especifica el proyecto en el que existe el pipeline.-f <ruta>
: Apunta al archivo .hpl del pipeline.-r local
: Indica a Hop Run que use la configuración de ejecución local.
Después de ejecutar el comando, Hop Run iniciará el pipeline, extraerá y transformará los datos, y mostrará los resultados, al igual que en el Hop GUI.
Paso 3: Ejecutar un workflow con Hop Run
Podemos ejecutar los pipelines en un workflow. Por ejemplo, ejecutaremos el workflow creado en "Build & deploy 2: Develop your first pipelines in a workflow".
-
Windows
bashhop-run.bat -j my-hop-project -f C:/ruta/a/my-hop-project/code/flights-processing.hwf -r local -
MacOS/Linux
bash./hop-run.sh -j my-hop-project -f /ruta/a/my-hop-project/code/flights-processing.hwf -r local
Explicación:
-j my-hop-project
: Especifica el proyecto en el que existe el workflow.-f <ruta>
: Especifica la ruta al archivo del workflow .hwf.-r local
: Indica a Hop Run que use la configuración de ejecución local.
El workflow ejecutará los dos pipelines en secuencia, asegurando que los datos se extraigan y transformen antes de cargarse.
Observaciones
Manejo de errores y códigos de salida
Cuando ejecutes pipelines y workflows vía Hop Run, es importante manejar los errores adecuadamente. Hop Run proporciona códigos de salida para indicar éxito o falla:
- Código de salida 0: Todo funcionó correctamente.
- Código de salida 1: Hubo un error durante la ejecución.
- Código de salida 2: Se encontró un error general.
- Código de salida 9: Hubo un error al analizar los parámetros proporcionados.
Puedes usar estos códigos de salida para desencadenar notificaciones o respuestas automáticas en scripts o pipelines de despliegue.
Nivel de registro
Es importante especificar el nivel de registro utilizando la opción -l
o --level
. Puedes elegir entre varios niveles, como NOTHING, ERROR, MINIMAL, BASIC, DETAILED, DEBUG o ROWLEVEL, dependiendo del nivel de detalle de registro que necesites.
Por ejemplo, configurar en ERROR solo registrará los errores, mientras que DEBUG o ROWLEVEL proporcionan información más detallada sobre la ejecución, útil para análisis en profundidad.
Ejemplo de caso de uso: automatización con un script de Shell
Para automatizar completamente el proceso, puedes crear un script de shell que ejecute el workflow, monitoree el código de salida y envíe una notificación o registre el resultado. Aquí tienes un ejemplo para Linux/macOS:
Este script ejecuta el workflow y verifica el código de salida para determinar si se completó con éxito. Puedes ampliarlo con registros, notificaciones por correo electrónico o integraciones con pipelines CI/CD.
Conclusión
Ejecutar tus pipelines y workflows de Apache Hop vía Hop Run abre un mundo de posibilidades para la automatización y flexibilidad. Ya sea que te integres con un pipeline CI/CD o ejecutes procesos de datos en un servidor remoto, Hop Run simplifica la ejecución de workflows complejos sin depender del Hop GUI.