Datavin3

Comprendiendo y Utilizando Pipeline Logging en Apache Hop

Escrito por Adalennis Buchillón Soris | 1 de abril de 2024 6:00:00 Z

Descubre la característica de registro de Pipeline de Apache Hop para un procesamiento de datos eficiente. Descubre ideas y mejores prácticas en esta guía.

Pipeline Log

Apache Hop introduce una clara separación entre datos y metadatos, lo que te permite diseñar procesos de datos de forma independiente de los datos mismos. El Metadato de Apache Hop sirve como un repositorio central para metadatos compartidos, incluyendo conexiones de base de datos, configuraciones de ejecución, servidores, conjuntos de datos y más. Una función útil es el "Registro de Pipeline", que facilita el registro de la actividad de un pipeline con otro pipeline.

 

The "Pipeline Log" metadata object streams logging information from a running pipeline to another pipeline and is created in JSON format. For each metadata object of this type, you can execute a pipeline of your choice, passing the runtime information of all your pipelines to it.

La configuración de Registro de Pipeline (Pipeline Log)

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

Paso 1: Crear un objeto de metadato "Registro de Pipeline"

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

     

  • O ve a "Metadatos" -> "Registro de Pipeline" -> "Nuevo".

  • Completa los campos requeridos:

    • Nombre (Name): Proporciona un nombre para el objeto de metadatos (pipelines-logging).
    • Activado (Enabled): Marca esta opción para activar el registro.
    • Registrar solo pipelines principales (Logging parent pipelines only): Esta opción no está marcada en nuestro ejemplo proporcionado. Especifica si el registro del pipeline debe capturar y procesar la información de registro solo para los pipelines principales (el pipeline que se está ejecutando), o si también debe capturar y procesar la información de registro para sub-pipelines que pueden ejecutarse como parte del pipeline 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 Pipeline". Especifica el directorio del pipeline (${PROJECT_HOME}/hop/logging/pipelines-logging.hpl). Detallaremos esto en el segundo paso.
    • ¿Ejecutar al inicio del pipeline? (Execute at the start of the pipeline?): Esta opción permanece seleccionada en nuestro ejemplo proporcionado. La opción especifica si este registro de pipeline debe ejecutarse al inicio de una ejecución de pipeline. Si se establece en verdadero, el registro comenzará al principio de la ejecución del pipeline.
    • ¿Ejecutar al final del pipeline? (Execute at the end of the pipeline?): Mantenemos esto seleccionado en nuestro ejemplo. Determina si este registro de pipeline debe ejecutarse al final de una ejecución de pipeline. Si se establece en verdadero, el registro ocurrirá una vez que el pipeline 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 pipeline debe ejecutarse a intervalos regulares durante la ejecución de un pipeline. 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 pipeline si "Ejecutar periódicamente durante la ejecución" está establecido en verdadero. El registro de pipeline se activará en este intervalo especificado durante la ejecución del pipeline.

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

  • Guarda la configuración.

Paso 2: Crear un nuevo pipeline con la transformación "Registro de Pipeline"

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


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

     

  • Configura la transformación "Registro de Pipeline":

    • Nombre de la transformación (Transform name): Proporciona un nombre único para la transformación (piplog).

    • También registrar detalles de la transformación (Also log transform details): Mantenemos esta opción marcada.

      • Marcada: La transformación genera tanto el registro del pipeline como los detalles y métricas de la transformación. En este escenario, el registro tendrá una línea para cada transformación, que contendrá tanto el registro del pipeline como la información de métricas.
      • No marcada: La transformación produce exclusivamente el registro del pipeline y las métricas.

Paso 3: Agregar y configurar una transformación "Salida de Tabla"

 

  • Elimina la transformación "Dummy".
  • Agrega una transformación de "Salida de Tabla" para cargar datos en una tabla de base de datos:

 

    • Haz clic en cualquier lugar del lienzo del pipeline.

    • Busca 'table output' -> Table Output.

Configura la transformación Salida de Tabla (Table Output):

    • Nombre de la transformación (Transform name): Proporciona un nombre único para la transformación (pipelines-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 (piplog).
    • 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 la transformación.

Paso 4: Ejecutar un pipeline y verificar los registros

  • Inicia un pipeline haciendo clic en "Ejecutar" -> "Lanzar".

  • Usamos un pipeline básico (generate-rows.hpl) que genera una constante y escribe 1000 filas en un archivo CSV.

  • Los datos de ejecución del pipeline se registrarán en la tabla piplog.

     

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

Conclusión

La configuración del "Registro de Pipeline" es sencilla, ofreciendo opciones para ejecutar al inicio o al final de un pipeline, e incluso periódicamente durante la ejecución. Este nivel de flexibilidad permite enfoques de registro adaptados a las necesidades específicas del proyecto. La capacidad de elegir el intervalo en el que se ejecuta el registro agrega una capa adicional de personalización.

En conclusión, el "Registro de Pipeline" de Apache Hop es una herramienta esencial para el registro efectivo en los pipelines de procesamiento de datos. Sus opciones de configuración y su integración perfecta dentro del ecosistema de Apache Hop lo convierten en un activo valioso para los ingenieros de datos y desarrolladores que buscan mejorar las capacidades de registro y mantener procesos de datos robustos. La clara separación de datos y metadatos, combinada con herramientas poderosas como el "Registro de Pipeline", posiciona a Apache Hop como una solución líder para la integración y procesamiento de datos eficiente y simplificado.