Introducción

Año tras año se generan muchos más datos. Estamos constantemente consultando nuestras redes sociales y usando nuestro teléfono móvil, ordenador o Tablet. Es por esta cantidad de datos que hay que tratar en la actualidad, que es tan importante el proceso de ETL: éste se encarga de extraer, transformar y cargar los datos, además de gestionar y asegurarse de su integración y coherencia. Todo ello nos permite extraer datos de un entorno y cargarlos en un entorno destino, después de haberlos procesado.

Así, el proceso de ETL es una tecnología que tiene la función de integrar datos, para ofrecer una visión mejorada de los mismos. ETL corresponde a las siglas en inglés:

Lamentablemente en la actualidad, aunque contamos con infinidad de datos para analizar, en la mayoría de empresas los datos potencialmente útiles resultan inaccesibles o intratables. Algunos estudios han revelado que:

Los datos en la mayoria de las empresas suelen estar aislados, o se manejan en sistemas heredados o aplicaciones muy poco utilizadas.

ETL es el proceso donde se ponen a disposición los datos extraidos de múltiples fuentes, se limpian y/o transforman en datos útiles, los cuales se cargan en diferentes plataformas.

La gente a menudo confunde un proceso ETL con minería de datos. Los procesos ETL se ocupan de la información existente para su posterior procesamiento, mientras que la minería de datos es un proceso posterior a ETL, que se utiliza en la busqueda de patrones, anomalías y correlaciones en los datos.

¿Para qué se utiliza un proceso ETL?

En prácticamente cualquier operación empresarial los datos desempeñan el papel más importante, pero para que tengan su valor, deben prepararse para su uso, y es donde se necesitan los procesos ETL. Algunos ejemplos de aplicación de ETL:

Evolución procesos ETL. Problemática en entornos Big Data

Un proceso ETL tradicional, extrae datos desde múltiples fuentes origen, después los valida, normaliza, realiza determinadas transformaciones y los guarda en un almácen de datos para su posterior análisis. Cuando en los datos fuentes, tenemos volúmenes altos, una frecuencia de actualización alta en origen o bien son datos no estructurados, estos procesos ETL tradicionales suelen tener problemas en su adaptación, esta suele ser costosa y pueden tener problemas de rendimiento.

El \(80\%\) de los esfuerzos de desarrollo en un proyecto Big Data están en los procesos de integración y sólo un \(20\%\) en los procesos de análisis de datos.

Los procesos ETL realizan los siguientes pasos:

  1. Extracción: los datos en bruto deben extraerse de una variedad de fuentes, por ejemplo:

Además, estos datos pueden estar en diversos ficheros con formatos variados (pdf, word, csv, json, xml, jpg, etc.). Algunos de ellos pueden tener formatos de datos antiguos y costosos de tratar.

  1. Transformación: es donde se produce la operación más crítica. El resultado más destacado de la transformación pasa por aplicar las normas necesarias del negocio a los datos para cumplir con los requisitos de notificación. La transformación modifica los datos en bruto para que presenten los formatos de notificación correctos. Si los datos no se limpian, podríamos obtener resultados completamente erroneos.

Estos son algunos de los estándares que garantizan la calidad de datos y su accesibilidad durante esta fase:

Esta fase de transformación reducen lo que hasta ahora era un montaña de material sin utilidad posible a un producto de datos que puede presentar en la última fase.

  1. Carga la última fase de un proceso de ETL típico es la carga de esos datos extraídos y transformados a su nuevo destino. Existen dos vías habituales de cargar los datos a un almacén de datos: la carga completa y la carga incremental.

Históricamente estos procesos se han realizado codificando manualmente en lenguajes tipo Cobol, RPG, SQL, SAS, etc., actualmente se estima que todavía el \(40\%\) del trabajo sobre procesos ETL (nueva creación, mantenimiento) se realiza con herramientas de este tipo.

Si bien, las herramientas ETL clasicas tienen sus limitaciones, ya que no mapean todo tipo de sistemas fuente o destino y no dan soporte a todo tipo de transformaciones. Estas limitaciones se han ido mitigando en las últimas versiones de estas herramientas, sobre todo en lo relativo a mapeo de fuentes origen y destino. Herramientas tales como Informática Power Center, SAS Data Integration, Capa de integración Oracle B.I, SSIS sobre Microsoft SQL Server, Pentaho Kettle, Business Objetcs Data Integrator, etc.

No obstante, la evolución tecnológica da soporte con grandes dificultades y costes a los desafíos “Big Data”, relativos a crecimiento de volumen de datos, complejidad de los mismos y diversidad en la naturaleza, estructuración y origen del dato: foro de discusión, sites de noticias, redes sociales, wikis, tweets, blogs, etc.

Encontramos habitualmente problemas en el volumen de datos, su frecuencia de actualización, estructuración de datos y diversidad de sistemas fuente, por mencionar sólo algunos.

¿Qué debe buscarse en una herramienta de ETL?

Las prestaciones que deberían buscarse en una herramienta de ETL son:

Nota importante: en este curso promoveremos el uso de herramientas disponibles en R o Python, pero si en algún momento algún equipo quiere explorar alguna otra herramienta, se podría usar, buscando su exploración y abriendo discuciones relevantes para el grupo.

Las plataformas más conocidas en las últimas investigaciones que he realizado, encontre: