Como es usual en Antartec, seguimos explorando nuevas herramientas y soluciones para nuestros clientes. En los últimos meses pasamos una buena cantidad de tiempo construyendo una herramienta basada en Talend, un software ETL que resultó ser una importante ayuda a los procesos automatizados de inteligencia de negocios. En este artículo se describen nuestra percepción inicial de este producto y su aplicación práctica.
Definición de ETL
Para poder hablar de Talend primero tenemos que definir qué es un software ETL.
Extraer, transformar y cargar (Extract, Transform and Load en inglés, frecuentemente abreviado a ETL) es el conjunto de procesos que permite a las organizaciones mover datos desde múltiples orígenes y modificar su formato, para luego enviarlos en otra base de datos, datamart, o data warehouse para análisis posterior, o enviar los datos hacia otro sistema operacional para apoyar un proceso de negocio.
Talend
Talend Open Studio es una herramienta Open Source de integración y gestión de datos, así como integración de aplicaciones empresariales: en palabras simples una herramienta ETL.
Talend está basado en Java, requiere específicamente JDK 6 y por tanto puede ser ejecutado en Windows y Linux sin mayor dificultad, solo basta con descomprimir su ‘instalador’.
Niveles de Talend
Talend basa su diseño en 3 niveles:
- Business Models (Modelos de Negocios): es nivel diseñado para modelar de manera teórica la aplicación, para lo cual se realizan diagramas de flujo básicos con actores de los procesos.
- Job Designs (Diseño de Trabajos): el nivel mas interesante, en el cual se diseña el trabajo en sí, el código que será ejecutado.
- Contexts (Contextos): el es nivel que contiene los contextos, los cuales pueden ser definidos como variables globales de ejecución del programa, como la carpeta donde se ejecutará la aplicación final o variables iniciales de entrada.
Job Designs
Es el nivel empleado con mayor frecuencia en Talend Open Studio. Formado por el conjunto de Jobs, o tareas a realizar. Cada Job inicialmente de una grilla (grid) en blanco, donde se arrastran elementos de una paleta ubicada en la parte derecha del diseñador.
En dicha paleta se encuentran varios elementos configurables, llamados Subjobs, los cuales se encargan de ejecutar tareas predeterminadas pero configurables como conexiones, consultas, código personalizado, etc.
Dichos Subjobs se encuentran separados en la paleta en diversas categorías: BI, Cloud, Custom Code, Data Quality, ETL, Orchestation, System, etcétera.
Algunos Subjobs que pueden resultar interesantes son:
- Conexiones estandarizadas y personalizables a bases de datos, incluye soporte a gran cantidad de las bases de datos Open Source (MySQL, PostgreSQL, SLQLite) e incluso Sybase y Oracle.
- Ejecutores de consultas y procedimientos almacenados en las mencionadas bases de datos.
- Código Java personalizable.
- Iteradores, repetidores de subtareas.
- Inscripción de variables globales, muy usado para mantener una variable global, ya que los subjobs solo crean variables locales.
- Extractores e insertores de datos de archivos (xml, properties), también configurables.
- Conexión a FTP para envío y descarga de archivos.
- Compresión de archivos.
- Modificadores de carpetas (crear, eliminar, modificar).
- Filtros de información.
Los mencionados y varios otros elementos más se unen mediante un flujo secuencial, guiado por flechas extraídas de cada uno de ellos (visibles haciendo click derecho) que hacen referencias a eventos de dos clases:
- row: evento que transmite data del elemento al elemento apuntado.
- trigger: conjunto de eventos, activados por posibles modos de ejecución.
- OnSubjobOk: cuando el elemento ha sido ejecutado sin errores.
- OnSubjobError: cuando el elemento ha tenido algún error en la ejecución.
- otros eventos, dependiendo del tipo de Subjob.
Adicionalmente, un Job puede contener a uno o varios otros Jobs e invocarlos como parte de un nuevo flujo, ejecutando los Subjobs contenidos dentro de cada uno.
Finalmente, cada Job es exportable a un archivo comprimido en formato ZIP, que contiene el ejecutable: un archivo .jar llamado a partir de un archivo .bat (para Windows) o un archivo .sh (Linux).
En resumen, podemos decir que Talend es una herramienta versátil para el proceso de ETL, con un buen entorno de desarrollo visual y múltiples conexiones a bases de datos sin embargo tiene una curva de aprendizaje un poco elevada y un par de bugs pendientes por resolver.
Más información
- Talend Home Page Página oficial de la compañía desarrolladora de Talend
- ETL Wikipedia Definiciones de conceptos básicos sobre ETL
- Talend Tutoriales Algunos manuales de uso
No related posts.


