ETL con Talend
Cuando se implanta un sistema, normalmente ya disponemos de
otro, aunque sea hojas de cálculo, por lo que es necesario hacer extracción de
datos, transformación y carga de los mismos. Esto es lo que se denomina ETL.
Los equipos poco maduros de desarrollo tiramos demasiado
pronto por la solución aparentemente más sencilla: Con nuestro lenguaje de
programación habitual, nos hacemos un programita que realice este trabajo.
Tenemos que saber diferenciar que tenemos que construir y
que tenemos que utilizar.
Realmente, un buen diseñador de soluciones debería tener
conocimientos suficientes para determinar con criterio cuando y como debemos
construir o utilizar. Cuando se prestan servicios, la mayoría de las veces
deberíamos ser integradores de sistemas y no constructores de software. Debemos
construir el pegamento…
En este tutorial, como en otros muchos básicos y
superficiales, solamente quiero exponer la existencia de una herramienta
llamada talend que, después de revisar las opciones del mercado (dentro de las gratuitas)
creo que es la que voy a utilizar a partir de ahora.
Nos vamos al Web http://es.talend.com/
Elegimos la opción de descarga.
No es precisamente pequeñita ya que ocupa 184 MBytes.
Al instalar, es el proceso clásico ok,ok,ok hasta que nos
pregunta si la deseamos arrancar.
Estas herramientas, sobre todo las visuales, tienen un
comportamiento aparentemente sencillo: Dispones de unos componentes que te
permiten conectarte con distintas tecnologías (como por ejemplo una fuente RSS),
otros internos que te permiten iterar, discriminar, transformar, agregar
informaciones y posteriormente otros para dejarlos en otro formato y/o lugar.
Es conveniente, a la hora de elegir herramienta, ver si
tiene ya los conectores que a nosotros nos interesan. Talend es muy visual a ya
tiene bastantes… y nos damos un paseíto por la ayuda para verlos. De todos
modos, siempre puedes crearte los tuyo para hacer cosas muy específicas, de tal
modo que programes lo mínimo.
Si una empresa evolucionada, y en el mundo en el que estamos
donde el Open Source es una realidad, tuveriera que construir
conectores específicos, tal vez debería plantearse integrarse hacia atrás y
colaborar con el desarrollo de la herramienta o, incluso, ofrecer esos componentes
como extensiones incluso como fuente alternativas de ingresos (aunque es
posible que no sea tu negocio y no te merezca la pena complicarte la vida).
Nada más arrancar te pide que te conectes a un repositorio.
Como no tenemos ninguno creado todavía, nos conectamos a local.
Abajo, fijaros que damos a crear un nuevo proyecto.
Le damos el nombre y elegimos el lenguaje de trabajo.
Una vez creado, lo seleccionamos y ya estamos en marcha.
Bueno, nos registramos … para estar informados de novedades
confiando en que no se pongan demasiado pesados.
Y nos aparece el entorno. Para aquellos que estéis
familiarizados seguros que os suena… la plataforma Eclipse. No es mala idea
darnos un paseo por las opciones.
Casi … que alegría que hubiera estado en castellano por
defecto J.
La herramienta está sorprendentemente evolucionada y me
recuerda a otras de pago usadas en el pasado.
Vamos a crear un modelo de negocio, donde semejante a UML,
podemos diseñar a grandes rasgos el objetivo del sistema a construir. Esto es
como en BPM (Business Process Management). primero es conveniente pintar a
grandes rasgos lo que tienes que hacer para tener claro el encargo, y luego
mecanizarlos con las particularidades de la herramienta. De otro modo, a poco
que sea complejo es sistema, discutir con clientes o compañeros puede ser una
locura.
Le damos los atributos (aparece en rojo porque le he dado a
examinar una vez creada … me comí capturar la pantalla)
Bueno, los iconos son bastante descriptivos aunque como
siempre, no estaría mal el hacer unos pocos bien y documentarlo para que todo
el mundo los haga igualitos (dentro de lo posible).
Ahora, vamos a mecanizar la transformación. Para ello, vamos
a crear un nuevo JOB (trabajo)
En el lado derecho, vemos los distintos conectores que
podemos usar. Yo me quiero ir al web www.adictosaltrabajo.com
y sacar los últimos tutoriales y mostrar por pantalla algún campo y escribirlos
en un fichero.
Pincho sobre el componente de talend tRSSInput y establezco
en la parte inferior de la pantalla los atributos.
Ahora, lo que hago es contactarlo a un componte de talend de
log, para ver lo que sale. Si damos a la flecha ver, podemos probar el
comportamiento.
Sorpresa, nos sales el RSS directamente en la pantalla de
log.
Podemos cambiar los atributos de la salida de log para que
lo veamos más clarito.
Entonces, en qué consistirá hacer un proyecto ETL: Pues en
ir conectando los distintos elementos y configurando su comportamiento para que
a partir de una entrada, sacar lo que queramos. Ahora como siempre, solo hacen
falta horas.
Bueno, a medida que vayamos haciendo cosas con la
herramienta, iremos compartiéndolo con vosotros.
Hola, he estado usando Talend por algún tiempo y se me acaba de presentar un problema, quiero saber si me puedes ayudar a solucionarlo. Gracias.
Muy buenas. He intentado hacer esto que comentas y me da un error a la hora de leer el rss.
http://adictosaltrabajo.com/rss/rss.php : The element type «hr» must be terminated by the matching end-tag «». Nested exception: The element type «hr» must be terminated by the matching end-tag «».Exception in component tRSSInput_1
java.lang.NullPointerException
at prueba.prueba_0_1.Prueba.tRSSInput_1Process(Prueba.java:1707)
at prueba.prueba_0_1.Prueba.runJobInTOS(Prueba.java:2125)
at prueba.prueba_0_1.Prueba.main(Prueba.java:1958)
[statistics] disconnected
Entiendo que la parte de leerlo esta bien y lo que esta mal en este caso es el codigo del rss, no? La url la he sacado haciendo zoom en la foto e imaginandome lo que ponia, igual el problema esta por ahi.