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:
- Nombre del File Delimited que vamos a crear.
- Seleccionamos el fichero que deseamos tratar, y si está en formato Windows o Linux.
- 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.
- 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.
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.
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.
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“.
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.
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:
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.
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:
Ahora ya sólo nos queda ejecutar el proceso, mediante el botón Run.
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
Subido por procesos ETL (no verificado) el 3 Noviembre, 2013 - 19:06