Saltar al contenido

Comprendiendo y Utilizando Workflow Logging en Apache Hop

Descubre la función de registro de flujo de trabajo de Apache Hop para un procesamiento de datos eficiente. Descubre ideas y mejores prácticas en esta guía.

Registro de Flujo de Trabajo(Workflow Log)

Apache Hop cambia la forma en que se manejan los datos y metadatos al establecer un límite claro entre ellos. Esta separación te permite diseñar procesos de datos de forma autónoma respecto a los datos reales. Centralizando metadatos esenciales como conexiones de bases de datos, configuraciones de ejecución, servidores, conjuntos de datos y más, el Metadato de Apache Hop actúa como un centro para metadatos compartidos. Una función invaluable, el "Registro de Flujo de Trabajo", permite el registro sin problemas de actividades de flujo de trabajo en conexión con pipelines.

Apache Hop - Workflow Log
 

El objeto de metadatos "Registro de Flujo de Trabajo" transmite información de registro de un flujo de trabajo en ejecución a un pipeline y se crea en formato JSON. Para cada objeto de metadatos de este tipo, puedes ejecutar un pipeline de tu elección, pasando la información de tiempo de ejecución de todos tus flujos de trabajo.

Configuración del "Registro de Flujo de Trabajo"

Para configurar y usar el metadato del "Registro de Flujo de Trabajo", sigue estos pasos:

Paso 1: Crear un Objeto de Metadato "Registro de Flujo de Trabajo"

  • En el menú horizontal, haz clic en "Nuevo" -> "Registro de Flujo de Trabajo".

    Apache Hop - New dialog
  • O ve a "Metadatos" -> "Registro de Flujo de Trabajo" -> "Nuevo".

     

    Apache Hop - Metadata perspective
  • Completa los campos requeridos:

    Screenshot 2023-10-02 at 20.47.27

     

    • Nombre (Name): Proporciona un nombre para el objeto de metadatos (workflows-logging).

    • Activado (Enabled): Marca esta opción para activar el registro.

    • Registrar solo flujos de trabajo principales (Logging parent workflows only): Esta opción no está marcada en nuestro ejemplo proporcionado. Especifica si el registro de flujo de trabajo debe capturar y procesar información de registro solo para los flujos de trabajo principales (el flujo de trabajo que se está ejecutando), o si también debe capturar y procesar información de registro para sub-flujos de trabajo que pueden ejecutarse como parte del flujo de trabajo principal.

    • Pipeline ejecutado para capturar el registro (Pipeline executed to capture logging): Selecciona o crea el pipeline que procesa la información de registro para este "Registro de Flujo de Trabajo". Especifica el directorio del pipeline (${PROJECT_HOME}/hop/logging/flujos-logging.hpl). Detallaremos esto en el segundo paso.

    • ¿Ejecutar al inicio del flujo de trabajo? (Execute at the start of the workflow?): Esta opción permanece seleccionada en nuestro ejemplo proporcionado. La opción especifica si este registro de flujo de trabajo debe ejecutarse al inicio de una ejecución de flujo de trabajo. Si se establece en verdadero, el registro comenzará al principio de la ejecución del flujo de trabajo.

    • ¿Ejecutar al final del flujo de trabajo? (Execute at the end of the workflow?): Mantenemos esto seleccionado en nuestro ejemplo. Determina si este registro de flujo de trabajo debe ejecutarse al final de una ejecución de flujo de trabajo. Si se establece en verdadero, el registro ocurrirá una vez que el flujo de trabajo haya completado su ejecución.

    • ¿Ejecutar periódicamente durante la ejecución? (Execute periodically during execution?): Dejamos esto sin marcar. Indica si este registro de flujo de trabajo debe ejecutarse a intervalos regulares durante una ejecución de flujo de trabajo. Si se establece en verdadero, el registro se ejecutará periódicamente.

    • Intervalo en segundos (Interval in seconds): Especifica el intervalo, en segundos, en el que se ejecuta el registro de flujo de trabajo si "Ejecutar periódicamente durante la ejecución" está establecido en verdadero. El registro de flujo de trabajo se activará en este intervalo especificado durante la ejecución del flujo de trabajo.

💡 Consejo: Por defecto, el registro de flujos de trabajo se aplica a todos los flujos de trabajo en el proyecto actual. Sin embargo, si prefieres limitar el registro a flujos de trabajo específicos, puedes seleccionarlos en la tabla debajo de las opciones de configuración etiquetadas como Capturar salida de los siguientes flujos de trabajo (Capture output of the following workflows). En la captura de pantalla debajo, solo el flujo de trabajo main-read.hwf está seleccionado para el registro en el proyecto how-to-apache-hop.

Screenshot 2024-03-14 at 15.23.03

  • Guarda la configuración.

Paso 2: Crear un Nuevo Pipeline con el Transformador de "Registro de Flujo de Trabajo"

  • Crea un nuevo pipeline desde la opción "Nuevo" en el diálogo de "Registro de Flujo de Trabajo" eligiendo una carpeta y un nombre.

    Apache Hop - New Workflow Logging

  • El pipeline se genera automáticamente con un transformador de "Registro de Flujo de Trabajo" conectado a un transformador "Dummy" ("Guardar registro aquí"). Ahora configuraremos otra salida para este pipeline. También puedes crear el pipeline desde cero.

    Apache Hop - New Workflow Logging

     

  • Configura el transformador de "Registro de Flujo de Trabajo":

    Apache Hop - Workflow Logging dialog
    • Nombre del transformador (Transform name): Proporciona un nombre único para el transformador (worklog).

    • También registrar detalles de acción (Also log action details): Mantenemos esta opción marcada.

      • Marcada (Checked): El transformador genera tanto el registro del flujo de trabajo como los detalles y métricas de la acción. En este escenario, el registro tendrá una línea para cada acción, que contendrá tanto el registro del flujo de trabajo como la información de métricas.
      • No marcada (Unchecked): El transformador produce exclusivamente el registro del flujo de trabajo y las métricas.

Paso 3: Agregar y Configurar un Transformador de "Salida de Tabla"

Apache Hop - New Workflow Logging pipeline

 

  • Elimina el transformador "Dummy".
  • Agrega un transformador de "Salida de Tabla" para cargar datos en una tabla de base de datos:

Apache Hop - New Workflow Logging pipeline

    • Haz clic en cualquier lugar del lienzo del pipeline.

       

    • Busca 'salida de tabla' -> Salida de Tabla.

  • Configura el transformador de "Salida de Tabla":

    Apache Hop - Table output

     

    • Nombre del transformador (Transform name): Proporciona un nombre único para el transformador (workflows-logging).
    • Conexión (Connection): Selecciona la conexión de base de datos donde se escribirán los datos (dvdrental-connection), que se configuró usando el archivo de entorno logging-connection.json.
    • Esquema objetivo (Target schema): Especifica el nombre del esquema para la tabla donde se escribirán los datos. (logging).
    • Tabla objetivo (Target table): Especifica el nombre de la tabla a la que se escribirán los datos (worklog).
    • Haz clic en la opción SQL para generar automáticamente el SQL para crear la tabla de salida.
Apache Hop - Table output

  • Ejecuta las declaraciones SQL y verifica los campos de registro en la tabla creada.

    Apache Hop - Table output

    Apache Hop - logging table
  • Guarda y cierra el transformador.

Paso 4: Ejecutar un Flujo de Trabajo y Verificar los Registros

  • Inicia un flujo de trabajo haciendo clic en "Ejecutar" -> "Lanzar".

     

  • Usamos un flujo de trabajo principal (main-read.hwf) que ejecuta 3 pipelines. Cada pipeline carga una entidad en una base de datos MongoDB. Consulta la publicación Migra datos a MongoDB con Apache Hop.

Apache Hop - Workflow logging

  • Los datos de ejecución del flujo de trabajo y de cada acción se registrarán en la tabla de registro de flujos. La ejecución de los pipelines incluidos en el flujo de trabajo se registrará en la tabla "registro de pipelines". Consulta la publicación previa Comprende y Utiliza del Registro de Pipeline en Apache Hop.

  • Revisa los datos en la tabla "piplog" y la tabla "worklog" para revisar los registros.

    Apache Hop - Workflow logging table

    Apache Hop - Workflow logging table

     

Conclusión

Configurar el "Registro de Flujo de Trabajo" es muy sencillo, ofreciendo la opción de activarse al inicio o al final del flujo de trabajo (incluidos los pipelines y flujos de trabajo ejecutados dentro). Además, permite la ejecución periódica, proporcionando estrategias de registro adaptadas a los requisitos del proyecto. La flexibilidad para definir el intervalo de ejecución agrega una capa adicional de personalización.

En resumen, el "Registro de Flujo de Trabajo" de Apache Hop es un instrumento fundamental para el registro eficiente dentro de los flujos de trabajo de procesamiento de datos. Su naturaleza configurable y su integración perfecta en el ecosistema de Apache Hop lo convierten en un activo invaluable para los ingenieros de datos y desarrolladores que buscan elevar las capacidades de registro y mantener procesos de datos resilientes. Con la clara segregación de datos y metadatos y enriquecido con funciones robustas como el "Registro de Flujo de Trabajo", Apache Hop se consolida como líder para la integración y procesamiento de datos eficiente y efectivo.