Este término, ETL, se acuña a la mayoría de transformaciones de datos que deben de realizar empresas para compatibilizar sus datos con los de sus proveedores y/o clientes.
Este sistema se basa en los tres pasos de los que salen sus siglas:
- Extration: la extracción se refiere a obtener datos. Si tenemos una fuente de datos como puede ser un fichero CSV, o un fichero Excel (lo más típico en muchas empresas), el trabajo comienza por configurar ese fichero como origen de datos. También hay posibilidad, según la complejidad del sistema o lo avezado del programador, de poner otros orígenes de datos más originales, como son: base de datos relacionales, jerárquicas (o directorios), conjuntos de ficheros, conexiones HTTP, FTP, POP3 o IMAP, etc.
- Transformation: la transformación se refiere a, con los datos tomados de las fuentes específicas, realizar las transformaciones oportunas para obtener los datos que se requieren. Estas transformaciones se pueden realizar en múltiples lenguajes de script. Normalmente, en muchas plataformas, se usan lenguajes como JavaScript, otros tienen una interfaz gráfica desde la que se configuran las transformaciones.
- Loading: la carga de datos consiste en tomar los datos procesados, una vez terminada la operación de transformación, y depositarlos donde se indique, ya sea una base de datos, un conjunto de ficheros o un fichero, en el directorio especificado o enviado a través de FTP, HTTP POST o SMTP... etc.
El sistema es simple y, por lo tanto, como todo lo simple, tiene una gran cantidad de aplicaciones que facilitan, entre otras cosas:
- Automatización de tarifas, ya que si el proveedor nos envía sus tarifas en formato de fichero o en un email formateado de alguna forma, se pueden obtener esos datos y cargarlos en nuestro sistema de base de datos, hacer las transformaciones precisas e, incluso, enviar los resultados a nuestros clientes en formato PDF por email.
- Comunicación con el cliente, en modo de que, tomando los datos de nuestras base de datos con referencia a saldos, ingresos, tarifas o cualquier información que interese al cliente, pueden ser también ofertas o productos marcados como rebajados, se envíe esta información en formato PDF con una presentación predefinida a cada uno de nuestros clientes.
- Generación automática de informes. Por supuesto, estos ETL que se creen se pueden ejecutar cuantas veces se quiera y de forma programada, por lo que, pueden servir para generar, por ejemplo, ficheros HTML estáticos (o incluso con código PHP) que nos muestren información referente a datos de nuestra base de datos.
- Simplificar datos. Otra forma de usarlos es para crear lo que se conoce como tablas resumen, son tablas que tienen un conjunto de datos representados por la suma de sus campos, como por ejemplo el gasto de un cliente, se puede representar, además de por las líneas de detalle, por una sola tupla que sume todas esas líneas y se presente solo una por mes, e incluso en otra fuente de datos, una por año.
En cuanto más se adentra uno en este mundo de la acumulación e integración de datos, más funcionalidades se le pueden dar a estos sistemas ETL.
Sistemas ETL disponibles hay:
- Benetl: un software algo simple, escrito en Java, que presenta las posibles transformaciones a través de pantallas. Ofrece bastantes características, pero se ve algo limitado.
- Barracuda Integrator: tiene la pega, para mi gusto, de que es software propietario y que parece que solo funciona en Windows, pero hay que admitir que tiene buenas características y tiene una serie de presentaciones en las que se puede apreciar su uso, fácil y sencillo, y su potencial. El lenguaje para transformaciones es Visual Basic.
- Clover ETL: este software es gratuito, no libre y, la parte negativa, es que la interfaz (Clover GUI) es de pago. No obstante, ofrece un sistema intuitivo, ágil y fácil de usar. Se ejecuta sobre varias plataformas, no solo Windows, y el lenguaje de transformación implementado (además de la posibilidad de uso gráfico) es propio: CTL; basado en C.
- Pentaho Data Integration: es un software libre escrito en Java que permite tomar información de muchos y diversos orígenes de datos, hacer la transformación en lenguajes como Javascript y hacer la "entrega" de datos en distintos destinos.
Por tanto, considero el sistema ETL a tener en cuenta y usar software específico, una forma de acelerar los procesos más pesados en lo que respecta la informatización de tareas en las empresas.