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:
una tercera parte de las empresas obtienen “muy pocos resultados tangibles” de sus datos.
Menos del \(0.5\%\) de los datos producidos mundialmente se analizan.
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.
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:
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:
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.
Estos son algunos de los estándares que garantizan la calidad de datos y su accesibilidad durante esta fase:
Normalización: definir qué datos entrarán en juego, cómo se formatearán y almacenarán, y otras consideraciones básicas que definirán las etapas sucesivas.
Eliminación de duplicados: notificar los duplicados a los administradores de datos; excluyendo y/o eliminando los datos redundantes.
Verificación: ejecutar comprobaciones automatizadas para cotejar información similar, como tiempos de transacción o registros de acceso. Las tareas de verificación permiten seguir limpiando los datos no utilizables y pueden alertar sobre anomalías en sus sistemas, aplicaciones o datos.
Clasificación: maximizar la eficiencia de los almacenes de datos agrupando y clasificando elementos como los datos en bruto, audios, archivos multimedia y otros objetos en categorías. Las normas de transformación determinarán cómo se clasifica cada dato y a dónde se trasladará.
Las demás tareas: las define el científico de datos y las configura para que se ejecuten automáticamente.
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.
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.
Las prestaciones que deberían buscarse en una herramienta de ETL son:
Muchos conectores: son muchos los sistemas y aplicaciones existentes en el mundo; cuantos más conectores preinstalados tenga su herramienta de ETL, más tiempo se ahorrará su equipo.
Código abierto: las arquitecturas de código abierto suelen ofrecer más flexibilidad, contribuyendo a la vez a evitar la dependencia de un solo proveedor.
Portabilidad: es importante para la integración de datos y su ejecución desde cualquier ubicación.
Facilidad de uso: las herramientas de ETL deberían ser fáciles de aprender y utilizar, para facilitar la visualización de sus canalizaciones de datos.
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: