Crear una rutina propia en Talend

0
9316

Crear una rutina propia en Talend

0. Índice de
contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Mac Book Pro 17″ (2,6 Ghz Intel Core i7, 8 GB DDR3)
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • Talend versión TOS_DI-r104014-V5.3.1

2. Introducción

La mayoría de vosotros ya habréis oído hablar de esta herramienta de ETL. En Autentia desde hace algún tiempo lo tenemos claro, cuando sale una historia de usuario del tipo «Como administrador quiero realizar la carga de datos mensual para que puedan ser explotados en el sistema». Enseguida todos a la vez decimos: ¡Talend!

Prueba de ello es la cantidad de tutoriales que tenemos publicados sobre ella y que están disponibles a través del buscador de esta página.

En este tutorial vamos a ver una forma sencilla de extender la funcionalidad de Talend utilizando rutinas propias que podremos usar en nuestros jobs.

3. Vamos al lío

Lo primero que vamos a hacer es crear un nuevo job con los siguientes elementos:

  • 1.- tFileInputDelimited: vamos a utilizar este elemento para poder leer una serie de cadenas a las que aplicaremos la rutina.
  • 2.- tMap: ahora simplemente va a recibir cada una de las cadenas del fichero y las va a pasar al siguiente elemento.
  • 3.- tLogRow: nos permite ver la salida del tMap

En la imagen vemos como está configurado el job y la salida que obtenemos:

Ahora lo que queremos es aplicar una rutina propia a cada una de las palabras del fichero. Para este ejemplo didáctico simplemente vamos a convertir cada una de ellas a Base64, a fin de mostrar como se pueden utilizar librerías de terceros en nuestras propias rutinas.

Para crear nuestra rutina tenemos que ir a la pestaña «Repository». Dentro del árbol desplegamos el nodo «Code» y con el botón derecho pulsamos en «Routines» y seleccionamos la opción «Create Routine»

Ahora rellenamos la información de nuestra rutina.

Talend nos crea una clase que podemos utilizar como base. Vemos que los métodos se definen de forma estática. Por tanto, vamos a modificar el método de ejemplo por el nuestro. Como ya he comentado vamos a hacer uso de una librería de terceros que nos realiza la conversión a Base64.

Para poder hacer uso de esta librería tenemos que registrarla en nuestra rutina. Cerramos la pestaña del editor para desbloquear el elemento y pulsamos con el botón derecho sobre nuestra rutina seleccionando la opción «Edit Routines Libraries»

En el formulario que se muestra pulsamos en «New» y seleccionamos la librería deseada:

Ahora podemos implementar nuestro método, que tiene que ser público y estático; que se va a encargar de realizar la transformación de una cadena de texto a Base64. Este podría ser un ejemplo. A fin de probar la ejecución del método podemos también crear un método main que no afectará a la hora de llamar a la función desde un job de Talend.

Una vez implementada la función vamos a darle uso. Para ello accedemos a la configuración del tMap y establecemos que en la salida vamos a tener dos elementos. El primero será la cadena plana y el segundo será la misma cadena pero aplicando la función.

Para aplicar la función podemos crear una variable a la que llamaremos «texto_base64» y en la zona de expresión podemos aplicar nuestra función al parámetro de entrada texto

Ahora basta con enlazar el parámetro de entrada y la variable creada a la salida del tMap.

Hecho esto ejecutamos el job para probar la rutina y vemos que en el tLogrow se muestran dos columnas una con el texto plano y otra con el mismo texto convertido en Base64.

4. Conclusiones

Hemos visto como de una forma muy sencilla podemos extender aún más la funcionalidad de Talend para realizar ciertas rutinas sencillas. Para casos más complejos podríamos plantearnos crear un componente. Aunque este lío ya lo veremos en un próximo tutorial.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.

Dejar respuesta

Please enter your comment!
Please enter your name here