Datavin3

Guía paso a paso para el registro de Workflow en Apache Hop

Escrito por Adalennis Buchillón Soris | 27 de febrero de 2025 9:07:33 Z

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.

Paso 1: Crear un objeto de metadatos Workflow Log

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.

  • Execute at the start of a workflow: Captura logs al inicio de la ejecución (enabled).
  • Execute at the end of a workflow: Captura logs al finalizar la ejecución (enabled).
  • Execute periodically during execution: Permite registrar logs en intervalos regulares. En este caso, está desactivado (disabled).
  • Interval in Seconds: Si se habilitara, registraría logs cada 30 segundos (30).

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.

Paso 2: Crear un nuevo pipeline con el Workflow Logging transform

Para crear el pipeline:

  1. Ve a la perspectiva Pipeline o haz clic en New dentro del diálogo New Workflow Log.
  2. Elige una carpeta y un nombre para el pipeline.
  3. Se generará un pipeline con un Workflow Logging transform conectado a un Dummy transform (Save logging here).

Ahora, configuraremos el Workflow Logging transform:

  • Transform name: Nombre único del transform en el pipeline (log).
  • Also log transform: Activado por defecto.

Paso 3: Agregar y configurar un Table Output 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:

  1. Haz clic en cualquier parte del canvas del pipeline.
  2. Busca table output y selecciona Table Output.

Ahora, configurémoslo:

  • Transform name: Nombre único del transform en el pipeline (workflows logging).
  • Connection: La conexión a la base de datos donde se almacenarán los logs (logging-connection). Esta conexión se configura con el archivo logging-connection.json, que contiene variables de entorno.
  • Target table: Nombre de la tabla en la base de datos (workflows-log).
  • Haz clic en SQL para generar automáticamente la consulta SQL de creación de tabla.
  • Ejecuta las sentencias SQL (en proyectos reales, es recomendable manejar el DDL con herramientas como Liquibase o Flyway).
  • Abre la tabla creada para verificar los campos de logging.
  • Guarda y cierra el transform.

Paso 4: Ejecutar un Workflow y verificar los logs

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.

Observaciones

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.