Saltar al contenido

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:

Screenshot 2024-11-06 at 09.52.37

  • 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

    bash
    cd C:\ruta\a\tu\directorio-de-apache-hop
  • MacOS/Linux

    bash
    cd /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

    bash
    hop-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

    bash
    hop-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.

-l, --level=<level> El nivel de depuración, uno de NOTHING, ERROR, MINIMAL, BASIC, DETAILED, DEBUG, ROWLEVEL

 

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:

bash
#!/bin/bash # Ejecutar el workflow ./hop-run.sh -j my-hop-project -f /ruta/a/my-hop-project/code/flights-processing.hwf -r local # Verificar el código de salida if [ $? -eq 0 ]; then echo "¡Workflow ejecutado exitosamente!" else echo "Fallo en la ejecución del workflow. Revisa los registros para más detalles." fi

 

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.