Descubre la característica de registro de Pipeline de Apache Hop para un procesamiento de datos...
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.
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".
-
O ve a "Metadatos" -> "Registro de Flujo de Trabajo" -> "Nuevo".
-
Completa los campos requeridos:
-
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.
-
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.
-
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.
-
Configura el transformador de "Registro de Flujo de Trabajo":
-
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"
- Elimina el transformador "Dummy".
- Agrega un transformador de "Salida de Tabla" para cargar datos en una tabla de base de datos:
-
-
Haz clic en cualquier lugar del lienzo del pipeline.
-
Busca 'salida de tabla' -> Salida de Tabla.
-
-
Configura el transformador de "Salida de Tabla":
- 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.
-
Ejecuta las declaraciones SQL y verifica los campos de registro en la tabla creada.
-
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.
-
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.
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.