Primeros pasos con Talend

1. Introducción

Talend, es una ETL de código libre. Una ETL, es una herramienta para Extraer, Transformar y Carga los datos (Extract-Transform-Load). Mediante herramientas de este tipo, podemos hacer transformaciones en los datos, fusionar campos, aplicar cálculos de funciones sobre los campos, etc. 

En esta introducción a Talend, veremos la facilidad de uso de la herramienta. En nuestro ejemplo deseamos cambiar el separador de campo por otro carácter. Vamos a partir de un fichero con los siguientes registros:

0|ALGERIA|0| haggle. carefully final deposits detect slyly agai|
1|ARGENTINA|1|al foxes promise slyly according to the regular accounts.|
2|BRAZIL|1|y alongside of the pending deposits. carefully special about the ironic forges.|
3|CANADA|1|eas hang ironic, silent packages. fluffily bold|
 

Cada campo, está separado por el carácter  ‘|’. Por lo que tenemos 5 campos (el último no contiene nada). Lo transformaremos de forma que cada campo este separado por el carácter ‘\t’.

 

2. Creación de la metadata

Vamos a empezar, creando un nuevo  proyecto e indicamos  su nombre.

Desplegamos la opción Metadata y con el botón derecho pulsamos sobre “File Delimited” para que nos deje crear la metada (como está estructura el fichero delimitado). Nos aparecerá un asistente que consta de 4 pasos:

  1. Nombre del File Delimited que vamos a crear.
  2. Seleccionamos el fichero que deseamos tratar, y si está en formato Windows o Linux.
  3. Indicamos separador de campo usa el fichero, aparte podemos indicar el separador de línea, si el fichero tiene cabecera o si queremos sólo seleccionar n filas del fichero para trabajar. En el ejemplo, no tenemos cabecera y como carácter de separación usamos ‘|’. Estos son los parámetros que le tenemos que indicar al asistente. Pulsamos sobre “Refresh Preview” . Veremos una muestra del fichero en  diferentes columnas, una por cada campo que hay.
  4. Imagen eliminada.

  5. En la última parte del asistente, podemos darles nombres a cada una de las columnas e indicar de que tipo de datos se trata. Igualmente si lo deseáramos podríamos desechar alguna de las columnas del fichero.

Imagen eliminada.

Con la estructura del fichero ya creada, la copiaremos como genérica, ya que esta es la que usaremos para el fichero de salida.  Desplegaremos la estructura del fichero de entrada, nos ponemos encima y pulsamos “copy to generic schema“, tal y como se ve en la imagen.

Imagen eliminada.

Con la metadata genérica creada, la editamos para eliminar el último campo (en el fichero de entrada, este campo no contenía nada). Desplegamos el nuevo esquema genérico creado y con el botón derecho hacemos click en “Edit Generic Schema”. Nos aparecerá un asistente muy parecido al anterior, vamos al paso 2 y nos posicionamos sobre la columna que deseamos borrar, en este caso la última y pulsamos el icono con la X roja.

Imagen eliminada.

 

3 . Creación del Job

Con las metadatas de entrada y salida definidas, pasamos a crear un job, podríamos definirlo como un proceso dentro de un proyecto de ETL. Para poder crear el Job, desde el repositorio pulsamos encima de “Job Design” con el botón derecho y vamos a la opción de crear nuevo Job. Le damos un nombre, que sea lo suficientemente descriptivo de su función.

Al crear el Job, nos aparece una parte de la pantalla en blanco, aquí es donde iremos arrastrando todos los componentes que utilizaremos.

De nuestro repositorio, arrastramos la estructura que hemos creado para el fichero (NO el genérico), al soltarlo encima de nuestra pantalla de trabajo, nos aparecerá una ventana que nos pregunta que tipo de componente deseamos crear, le vamos a indicar “tFileInput Delimited“.

Imagen eliminada.

El siguiente paso, es añadir el componente para el fichero de salida, este lo arrastraremos de la lista de componentes de la derecha – sección “File” y escogemos “tFileOutputDelimited“.

Vamos a configurar las propiedades de este componente, las que indicaremos son donde se guardará el fichero y que carácter usaremos como separador de campo. Para poder modificar estas propiedades, seleccionamos el componente y en la parte inferior de la pantalla vamos a  la pestaña Component.

Imagen eliminada.

 

El siguiente paso, es colocar el componente que nos permita relacionar el componente de entrada con el de salida. Este componente se llama “tMap“. Lo encontraremos en “Components – processing – tmap“. Lo colocamos entre el componente de entrada y el de salida.

Para unirlos,  seleccionamos el componente de entrada, y con el botón derecho lo arrastramos sobre el mapa. Ahora seleccionamos el mapa, botón derecho y lo arrastramos hacia el componente de salida, nos va a pedir un nombre, podemos ponerle “outNation“. Tendríamos de tener una pantalla como esta:

Imagen eliminada.

Indicamos las propiedades del componente de entrada,  seleccionamos el componente y en la pestaña component vamos a “Advanced settings” para poder marcar “trim all columns“.

Configuramos el “tMap“,  para esto pulsamos 2 veces encima suyo y nos aparecerá una pantalla que sirve para relacionar la entrada con la salida. A la izquierda tenemos la entrada y a la derecha la salida. En la salida tenemos que indicar cual es su esquema, vamos a usar el esquema genérico que pasos  atrás hemos creado. Pulsamos sobre la llave que tenemos a la derecha , en “schema type” indicamos “repository“, en “repository id” escogemos el esquema genérico que hemos creado.

Imagen eliminada.

Ahora ya podemos mapear la entrada con la salida, si las columnas de la entrada y la salida tienen el mismo nombre, podemos pulsar el botón automap, que nos va a relacionar las columnas que tenga el mismo nombre o bien si lo deseamos podemos arrastrar cualquier columna de la izquierda con cualquier columna de la derecha. El resultado  tendría que ser:

Imagen eliminada.

 

Ahora ya sólo nos queda ejecutar el proceso, mediante el botón Run.

Imagen eliminada.

Como hemos visto en esta pequeña introducción a Talend, con poco esfuerzo hemos podido  modificar el separador de  campo de un fichero. En próximas entradas de este Blog mostraremos ejemplos de Talend más complejos.

 

 

 

 

Una herramienta muy interesante y útil para gestionar procesos ETL. Para quien quiera entrar más en detalle sobre los procesos ETL, qué son y sus principales aplicaciones y usos, os recomiendo descargar la siguiente guía, que a mi personalmente me fue de gran utilidad. http://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/288844/Qu%C3%A9-son-los-procesos-ETL Un saludo. Juan.