Apache Hop es una plataforma de ingeniería y orquestación de datos que permite a los ingenieros y desarrolladores diseñar visualmente workflows y pipelines de datos para construir soluciones avanzadas.
Después del desarrollo y pruebas iniciales de tu proyecto, es crucial comprender lo que sucede en tiempo de ejecución.
Los Workflow Logs en Hop permiten que la información de registro de workflows se pase a un pipeline para su procesamiento en forma de objetos JSON. Este pipeline receptor puede procesar la información de registro con todas las funcionalidades que ofrecen los pipelines de Hop, como escribir en bases de datos relacionales o NoSQL, enviar datos a un tópico de Kafka, etc.
Hop enviará la información de registro de cada workflow que ejecutes al Workflow Log pipeline que especifiques.
En esta guía, veremos un ejemplo de cómo configurar y usar el metadato Workflow Log para registrar la información de ejecución en una base de datos relacional.
Para crear un Workflow Log, haz clic en New -> Workflow Log o selecciona Metadata -> Workflow Log.
Aparecerá la vista New Workflow Log con los siguientes campos para configurar:
Ejemplo de configuración:
Name: Nombre del objeto de metadatos (workflow-log).
Enabled: El registro está activado por defecto (enabled).
Logging parent workflows only: Registra solo workflows principales, evitando redundancias en ejecuciones anidadas (enabled).
Pipeline executed to capture logging: Selecciona o crea el pipeline para capturar la actividad (${PROJECT_HOME}/code/logging/workflow-log-database.hpl).
${PROJECT_HOME} representa el directorio raíz del proyecto.
Puedes seleccionar un pipeline existente, especificar una ruta personalizada para crearlo o generar uno nuevo directamente.
📍 Importante: El pipeline debe comenzar con un Workflow Logging Transform como primer paso para garantizar la captura y procesamiento de logs.
Guarda la configuración del Workflow Log.
💡 Nota: El registro se aplicará a todos los workflows del proyecto. Si solo quieres registrar workflows específicos, agrégales a la tabla Capture output of the following workflows.
Ejemplo: en la siguiente imagen solo se registra el workflow flights-processing.hwf del proyecto my-hop-project.
Para crear el pipeline:
Ahora, configuraremos el Workflow Logging transform:
El Table Output transform permite cargar datos en una tabla de base de datos. Equivale a una instrucción INSERT en SQL.
💡 Nota: En este ejemplo usaremos una base de datos relacional para almacenar los logs, pero también puedes usar archivos de salida. Si decides usar una base de datos, asegúrate de que esté instalada y disponible.
Para agregar un Table Output transform:
Ahora, configurémoslo:
Ejecuta un workflow haciendo clic en Run -> Launch.
El Workflow Log pipeline se ejecutará junto con cualquier workflow que lances.
Ejemplo: en este caso, usamos un workflow básico que ejecuta dos pipelines, ambos incluidos en my-hop-project.
Los datos de la ejecución se registrarán en la tabla workflows-log.
Puedes verificar los logs directamente en la base de datos.
Comportamiento de logging por defecto (Paso 1): Todos los workflows se registran por defecto, pero puedes personalizar qué workflows incluir o excluir.
Pipeline Logging Transform (Paso 2): Si creas un pipeline desde el diálogo de Workflow Log, se genera automáticamente un pipeline con Workflow Logging Transform.
Opciones de almacenamiento de logs (Paso 3): Si creas el pipeline manualmente, debes agregar el Workflow Logging Transform como paso de entrada para capturar logs. Además, puedes usar archivos de salida en lugar de bases de datos, según los requerimientos del proyecto.