Hola Mundo Apache Hop

Category : Noticias

Apache Hop es el nuevo proyecto de Matt Casters, Bart Maertens y parte de la comunidad de kettle – pentaho data integration.

Para ser francos, Hop es una reescritura de kettle desde la libertad que te da el no deponer de una empresa y tener ciertos objetivos. Haciendo las cosas cómo crees que se deben hacer. Con sus aciertos y sus errores, claro. Hop no es sólo un nuevo cambio de nombre de kettle. Es un renacimiento.

Si ya sabías usar Kettle, Hop te resultará muy familiar.

En la página del proyecto hay la documentación oficial. Este post es una traducción libre del «primeros pasos» y mis opiniones .

Lo primero que tienes que hacer es descargarte la última versión. Hop está en desarrollo activo, por lo que puede haber cambiado desde la escritura de estas líneas.

 

Conceptos básicos:

Hop es un motor basado en metadatos. Esto quiere decir que, cuando nosotros definimos una manipulación de datos. Lo que generamos es una serie de instrucciones que pasaremos al motor de Hop para que las ejecute. Hop NO es un generador de código.

Los procesos se articulan siguiendo dos conceptos básicos:

  • Pipelines: Son la unidad básica de trabajo y son los flujos que se definen para leer, procesar o entregar datos.
  • Workflow: Es una definición de flujo de trabajo. Es un proceso secuencial donde se definen las diferentes acciones a realizar. En una visión muy superficial, un workflow es una secuencia de pipelines ( y otros workflows y muchas más cosas.)

 

Principales componentes:

  • Hop gui: Cómo su nombre indica es la interfaz de usuario. Para arrancarla llamaremos al script hop-gui.bat en windows o hop-gui.sh en linux / *nix.
  • Hop server: Es un servidor web Hop que nos permitirá ejecutar workflows y pipelines de forma remota. Se ejecuta con hop-server(.bat / .sh)
  • Hop run: Es el script que nos permite ejecutar workflows y pipelines

 

Hop gui

La interfaz de usuario es una de las novedades más llamativas de Hop. La verdad es que me costó un poco aceptarla porque es muy minimalista. Pero hay que reconocer que es funciona.

Así es como se ve cuando arrancas Hop

Y vemos detalles interesantes que abordaremos a su debido tiempo.

 

Hola Mundo

Tras clicar en el botón de + se abre el diálogo de añadir nuevos elementos… Elegiremos un nuevo pipeline

Y ya tenemos nuestro lienzo donde colocar los pasos que compondrán nuestro flujo. Tan sólo hay que seguir las instrucciones «Clica en cualquier lugar del lienzo»

Tras lo cual se abrirá un menú contextual con todas las opciones que podemos añadir.

Debo reconocer que este ha sido uno de los puntos de fricción que he tenido. El menú, si tienes un equipo con recursos limitados, tarda un segundo o dos en aparecer y al principio era un poco tosco.

Pero poco a poco va mejorando la funcionalidad y lo cierto es que ahora es bastante práctico. Tan sólo hay que acostumbrarse a la nueva forma de trabajar.

Aquí tenemos la mayoría de los pasos agrupados en categorías de forma similar a cómo lo teníamos en Kettle/PDI. Y la configuración de los pasos es muy similar. En algunos casos, simplificada.

Una vez definido nuestro pipeline tan sólo hay que ejecutarlo. «Dándole al play»

Cómo ves. Se conservan muchos conceptos y maneras de hacer de PDI / Kettle y se incorporan muchas nuevas funcionalidades realmente interesantes:

  • Gestión de proyectos y entornos ( Ya lo veremos más adelante ). Algo que todos hacíamos de alguna manera u otra. Ahora ya hay un gestor incorporado en Hop. Bien!
  • Mejora de la gestión de los metadatos del proyecto. Bien!
  • Todo es un plugin. Por lo que el proyecto se ha adelgazado significativamente. De hecho ahora va súper rápido en comparación con PDI / Kettle. Además puedes generar un «fat jar» con sólo los componentes que necesitas. Por lo que en realidad debería ser «slim jar»
  • Integración nativa con Git.
  • Y muchas otras cosas que iremos viendo.

Hop dice que todavía no es una versión estable lista para producción. Pero les he estado siguiendo la pista durante todo este tiempo y empieza a estar muy maduro.

Felicidades HOP Team!

Finalmente: