¡Bienvenido de nuevo a nuestra serie "Construye y despliega"! En publicaciones anteriores,...
Construye y despliega 8: Actualización y reejecución de tu proyecto Apache Hop
¡Bienvenido de nuevo al último post de nuestra serie "Construye y despliega"! En esta publicación, reuniremos todo lo aprendido actualizando uno de los pipelines de "Construye y despliega 2", volviendo a ejecutar el workflow y explorando varias formas de ejecutarlo: usando la interfaz gráfica (GUI), Hop Run y Docker. También haremos un resumen de toda la serie para ayudarte a consolidar tu comprensión de las principales funcionalidades de Apache Hop.
¡Iniciemos los últimos pasos de nuestra serie "Contruye y despliega"!
Actualización del pipeline clean-transform.hpl
En "Construye y despliega 2", creamos dos pipelines: uno para limpiar y transformar datos de vuelos, y otro para agregarlos.
Revisemos el pipeline 1: clean-transform.hpl y hagamos una pequeña actualización para mejorar su funcionalidad.
Paso a paso
Paso 1: Agrega un nuevo campo para capturar retrasos:
- Abre el pipeline clean-transform en la GUI de Hop.
- Añade un nuevo campo llamado TotalDelayMinutes en el transformador Calculator, sumando los campos de retraso de salida y llegada (DepDelayMinutes + ArrDelayMinutes).
Paso 2: Actualiza la lógica de JavaScript:
- Abre el transformador JavaScript.
- Modifica el código JavaScript existente para verificar si el retraso total supera un umbral específico (por ejemplo, 60 minutos) y marca el vuelo como "SeverelyDelayed" para análisis posterior.
Ejemplo de script:
var SeverelyDelayed;
if (TotalDelayMinutes > 60){
SeverelyDelayed = 'Yes';
} else {
SeverelyDelayed = 'No';
}
Paso 3: Agrega los campos de salida y guarda:
- Añade los dos nuevos campos al transformador de salida Text File.
- Guarda tu pipeline actualizado con el mismo nombre o como una nueva versión para preservar el original.
Agregar los cambios a Git
Antes de volver a ejecutar el workflow, sigue estos pasos para agregar tus cambios a Git:
- Abre la perspectiva del explorador de archivos: Presiona CTRL + Shift + E (o haz clic en el icono de la carpeta). Los archivos modificados aparecerán resaltados en azul.
- Agrega cambios: Selecciona Git Add para incluir tus cambios.
- Confirma cambios: Haz clic en Git Commit en la barra de herramientas.
- Confirma los archivos para el commit.
- Escribe un mensaje descriptivo y confirma el commit. Los archivos cambiarán a un color neutro.
- Sube los cambios: Haz clic en Git Push, ingresa tus credenciales y recibirás un mensaje de confirmación.
Volver a ejecutar el workflow usando diferentes métodos
Con la actualización de Pipeline 1, volvamos a ejecutar el workflow completo usando tres métodos: GUI, Hop Run y Docker.
-
Ejecutar el workflow en la GUI de Hop:
- Abre el workflow flights-processing creado en Construye y despliega 2.
- Verifica que el workflow esté vinculado a la versión actualizada de Pipeline 1 y asegúrate de que la secuencia de ejecución sea correcta.
- Haz clic en Start para ejecutar el workflow en la GUI, asegurándote de que ambos pipelines se ejecuten exitosamente, con Pipeline 2 utilizando el nuevo campo SeverelyDelayed para la agregación.
- Resultado: Verás los registros del workflow y su estado directamente en la GUI.
-
Ejecutar el workflow usando Hop Run:
- Usa la herramienta hop-run para ejecutar el workflow desde la línea de comandos.
- Comando para Windows:
bash
cd /ruta/a/tu/directorio-de-apache-hop
hop-run.bat -j my-hop-project -f C:/ruta/a/mi-hop-project/code/flights-processing.hwf -r local -l=BASIC - Comando para macOS/Linux:
bash
cd /ruta/a/tu/directorio-de-apache-hop
./hop-run.sh -j my-hop-project -f /ruta/a/mi-hop-project/code/flights-processing.hwf -r local -l=BASIC - Desglose del comando:
-j my-hop-project
: Especifica el proyecto donde está el workflow.-f <ruta>
: Especifica la ruta del archivo del workflow (.hwf).-r local
: Indica que Hop Run debe usar la configuración de ejecución local.-l=BASIC
: Establece el nivel de registro en Basic para monitorear la ejecución.
- Resultado: El workflow se ejecuta desde el terminal con los registros mostrados según el nivel de detalle especificado.
-
Ejecutar el workflow en Docker:
- Si usas Docker para ejecutar proyectos Hop, aquí tienes cómo ejecutar el workflow:
bash
docker run -it --rm \
--env HOP_LOG_LEVEL=Basic \
--env HOP_FILE_PATH='${PROJECT_HOME}/code/flights-processing.hwf' \
--env HOP_PROJECT_FOLDER=/files \
--env HOP_PROJECT_NAME=my-hop-project \
--env HOP_RUN_CONFIG=local \
--name hop-workflow-container \
-v /ruta/a/mi-hop-project:/files \
apache/hop:latest - Desglose del comando:
--env HOP_LOG_LEVEL=Basic
: Establece el nivel de registro en Basic.--env HOP_FILE_PATH='${PROJECT_HOME}/code/flights-processing.hwf'
: Especifica la ruta del archivo del pipeline.--env HOP_PROJECT_FOLDER=/files
: Asigna la carpeta del proyecto dentro del contenedor.--env HOP_PROJECT_NAME=my-hop-project
: Define el proyecto en Apache Hop.-v /ruta/a/mi-hop-project:/files
: Asigna la carpeta de proyecto local al contenedor.
- Resultado: El workflow se ejecuta dentro del contenedor Docker.
- Si usas Docker para ejecutar proyectos Hop, aquí tienes cómo ejecutar el workflow:
Resumen de la serie "Construye y despliega"
Al concluir la serie, hagamos un repaso de los pasos y lecciones clave de cada publicación:
- Construye y despliega 1: Instalación, primer proyecto y entorno.
- Construye y despliega 2: Desarrollo de pipelines en un workflow.
- Construye y despliega 3: Gestión del proyecto Apache Hop con integración Git.
- Construye y despliega 4: Actualización de Apache Hop sin perder configuraciones.
- Construye y despliega 5: Primer proyecto y entorno usando Hop Conf.
- Construye y despliega 6: Ejecución de pipelines y workflows con Hop Run.
- Construye y despliega 7: Ejecución de pipelines y workflows en Docker.
- Construye y despliega 8: Actualización y reejecución del proyecto.
Conclusión
Con esto concluye nuestra serie "Construye y despliega" para Apache Hop. Hemos cubierto desde la configuración inicial hasta el desarrollo de pipelines, la gestión de proyectos con Git, la actualización de Hop y la ejecución de workflows en diferentes entornos. Con estas habilidades, ahora estás preparado para construir, gestionar y desplegar workflows y pipelines complejos de datos usando Apache Hop en una variedad de entornos.