Título: Implementación del proceso de extracción, transformación y carga en un almacén de datos operacional para CIMEX.
Trabajo de Diploma para optar por el título de Ingeniero en Ciencias Informáticas
Autoras:
Yohanlena Hartman Díaz Dailen Ramón Zequeira
Tutor:
Ing. Yonelbys Iznaga González
Ciudad de la Habana Mayo, 2009
“Los que se enamoran de la práctica sin la teoría son como los pilotos sin timón ni brújula, que nunca podrán saber a dónde van.”
Leonardo Da Vinci
I Declaramos ser autores de la presente tesis y reconocemos a la Universidad de las Ciencias Informáticas los derechos patrimoniales de la misma, con carácter exclusivo.
Para que así conste firmo la presente a los _____ días del mes de ____________ del año 2009.
Yohanlena Hartman Diaz Dailen Ramon Zequeira
_____________ _____________
Firma del Autor Firma del Autor
Yonelbys Iznaga Gonzalez _____________
Firma del Tutor
II
Agradezco a todos los que facilitaron mi estancia en la universidad: los que enseñaron, los que criticaron, los que dejaron huellas a seguir. A mis padres, por el apoyo incondicional, por el infinito amor que a diario cultivan, por dejarme trazar mi camino, por confiar, por permitirme venir desde tan lejos a crecer. A las embajadoras (Maylen, Mayen, Marisol, Dailen y Yudith), por dejarme compartir con ellas estos años, por prestarme sus experiencias, por volar juntas con la libertad desconocida. A los profesores que me ayudaron a descubrir lecciones, y a los demás que hicieron su mejor esfuerzo. A Mailen, por seguir siendo mí mejor amiga aun en la distancia. A Tony, por regalarme sanas ironías que iluminaron el camino. A Ivet, por darle vida a mi buzón, por las muchas razones que me diste para seguir. A Ariel, por la ayuda invaluable y los sabios consejos. A Posada, por los mejores y peores momentos. A Yonelbys, porque sin ti no estaría escribiendo agradecimientos y esta tesis aún seria un manojo de archivos desordenados. Y a todos los que no menciono, pero de quienes guardo alguna historia. Gracias por la colaboración, por aun seguir aquí...
Yohanlena
III
La gratitud es la memoria del corazón, y son muchas las memorias a las cuales les debo agradecer por ser hoy lo que soy. Dice un viejo proverbio chino que cuando bebas agua, debes recordar siempre la fuente, hoy, es realmente difícil agradecer a todas aquellas fuentes que cuando he tenido sed han estado ahí para mí y me han bridado sus cristalinas aguas, para poder seguir adelante y llegar a realizar mi gran sueño. De todas formas y siguiendo el proverbio haré el intento.
En la vida uno tiene muchos tesoros, para mí, los más valiosos han sido mis abuelitos, quienes me guiaron en mis primeros años de vida y me dieron todo su amor, es por ello, que mi primer agradecimiento esta vez será para mima, donde quiera que estés y a pipo por saber darme las alas para volar. Para mi papito y mi mamita mi eterno agradecimiento por darme la vida, por su amor, cariño, comprensión, por estar ahí cuando los he necesitado, por apoyarme y por estar orgullosos de mí, arma fundamental para seguir adelante cada día. A mi tía Isora por todo su amor, por cuidarme y preocuparse por mí, por acogerme y hacerme sentir como una hija más. Al resto de mi familia por ser tan unida, por demostrarme que juntos podemos soportarlo todo, por su apoyo y por confiar siempre en mí.
Los amigos son un regalo de dios que pasan por la vida dejando huellas imborrables; a todos ellos mi agradecimiento por dejarme formar parte de sus vidas, en especial a las “embajadoras” por compartir nuevas experiencias, por las alegrías y las tristezas, a Mary por apoyarme siempre y abrirme su corazón, a Laira por nuestra eterna amistad y a Mailin, Yadira y Mayu porque estoy segura que siempre estaremos ahí cuando nos necesitemos. El amor es abono que toda planta necesita para seguir adelante, gracias le quiero dar en esta ocasión a Darián por su amor infinito, por ser mi abono, por soportar mis malacrianzas por estar a mi lado cuando lo necesito, por apoyarme y por ser quien es.
Gracias a todos aquellos que me abrieron las puertas y me dejaron entrar a este maravilloso mundo, a todos los que han confiando en mí, a los que me han brindado un sorbo de agua para seguir en pie…
Dailen
IV
A mi mama, por ser la luz de mi vida, por el amor que nunca me cobras, por la sencillez y ternura que profesas, porque no imagino mi vida sin ti.
A mi papa, por el apoyo incondicional, por ser el amigo que no juzga, por ser una parte inseparable de mí.
A mi hermana, quien siempre me muestra la cara de la moneda que no alcanzo a ver, por ser el espejo que no me permite caer.
A Julio Alberto, por las muestras de afecto de todos estos años, porque siempre serás mi familia.
A mi sobrino, por sembrar sonrisas en mis días, ojala mis huellas algún día te sirvan para construir un mejor camino.
Yohanlena
A mima, mi ángel, donde estés, por tu infinito amor y entrega.
A pipo por estar tan orgulloso de mí, por todo su cariño, dedicación, por ser mi inspiración para lograr lo que soy.
A mi papito por ser mi sostén, mi amigo, por su eterno amor, por todo lo que representas para mí.
A mi mamita por su gran amor, por ser mi confidente y amiga, por confiar y apoyarme, por estar siempre junto a mí.
A mi tía Isora, por darme la posibilidad de tener una madre más.
Dailen
V El proceso de Extracción, Transformación y Carga permite mover datos desde múltiples fuentes, reformatearlos, limpiarlos, y cargarlos en otra base de datos para analizar, o en otro sistema operacional para apoyar algún proceso de negocio. A grandes rasgos consiste en extraer los datos desde los sistemas de origen, convertir los datos a un formato preparado para iniciar el proceso de transformación, donde se aplican una serie de reglas de negocio o funciones sobre los datos extraídos para convertirlos en datos que serán cargados en el sistema de destino.
En este trabajo, se implementará un proceso de extracción, transformación y carga a los datos ubicados en una base de datos que pertenece a la corporación CIMEX; para la creación y carga a un almacén de datos operacional, que facilitará una adecuada gestión del conocimiento y toma de decisiones acerca del negocio mayorista de esta empresa.
VI
INDICE
INTRODUCCIÓN ... 11
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 15
¿Qué es la integración de datos? ... 15
Proceso ETL. Principales características. ... 16
Extracción ... 18
Limpieza y Transformación ... 19
Carga ... 20
Orígenes de datos. Categorías. ... 21
Roles y Responsabilidades del equipo ETL. ... 23
Proceso ETL. Importancia y Desafíos. ... 24
¿Qué parámetros tener en cuenta para la selección de la herramienta ETL a utilizar? ... 26
Herramientas ETL a tener en cuenta para selección. Principales características. ... 28
Spoon de Pentaho Data Integration ... 29
Talend Open Studio ... 32
Valoraciones finales de las herramientas ETL. Comparación. ... 34
Herramienta de modelado a utilizar. Principales características. ... 35
Herramienta de perfilado de datos a utilizar. Principales características... 36
Conclusiones del Capítulo 1. ... 37
CAPÍTULO 2: IMPLEMENTACIÓN DEL PROCESO ETL PARA CIMEX ... 38
VII
Principales procesos del negocio que existen en CIMEX. ... 38
Aspectos a tener en cuenta en el proceso ETL de CIMEX. ... 40
Llaves sustitutas. ... 40
Llaves nulas y huérfanas. ... 41
Dimensiones lentamente cambiantes... 42
Análisis de datos. ... 43
Minería de Datos ... 44
Perfilado de Datos ... 45
Metadatos ... 46
Seguridad de los datos. ... 49
Extracción, transformación, y limpieza de los datos... 49
Tablas dimensionales. ... 56
Cliente ... 56
Proveedor... 60
Producto ... 64
Nivel Precio ... 69
Atributo valor ... 72
Atributo ... 74
Grupo Inventario... 76
Tiempo ... 77
VIII
Factor costo ... 77
Específico... 78
Tablas hechos. ... 79
Compra ... 79
Venta ... 81
Ajuste precio ... 83
Carga de los datos al almacén de datos operacional CIMEX. ... 85
Conclusiones del capítulo 2 ... 86
CAPÍTULO 3: VALORACIÓN DE LOS RESULTADOS OBTENIDOS. ... 87
Calidad de Datos. ... 87
Estrategia de validación de calidad. ... 88
Auditoría a los datos. ... 91
Conclusiones del capítulo 3. ... 92
CONCLUSIONES GENERALES ... 93
RECOMENDACIONES ... 94
BIBLIOGRAFÍA ... 95
ANEXOS ... 96
Anexo 1. Ejemplo de dimensión lentamente cambiante. Dimensión Cliente. ... 96
Anexo 2. Ejemplos de perfilado de datos... 96
Anexo 3. Ejemplos de los ficheros extraídos. ... 99
IX Anexo 4. Ejemplo de carga al almacén de datos operacional. Dimensión Proveedor. ... 101 Anexo 5. Ejemplo de dimensión auditoría. Hecho Compra. ... 103 GLOSARIO DE TÉRMINOS ... 104
X
11
INTRODUCCIÓN
El mundo actual evoluciona a pasos agigantados, diariamente la tecnología progresa, dando enormes avances al desarrollo científico-técnico. Este crecimiento tecnológico provoca una feroz competencia en el mercado, así las empresas se esfuerzan en elevar su nivel profesional en aras de ganar prestigio y demanda entre los clientes. Debido a esta alta competitividad, la información que se genera en las empresas crece en volumen, provocando que la toma de decisiones sea más difícil y que el acceso a la información almacenada requiera mayor rapidez y precisión. Una buena solución para lograr que la información sea fiel, rápida, útil y precisa lo constituye el uso de Inteligencia de Negocios1, como proceso para analizar los bienes o datos acumulados en la empresa y extraer una cierta inteligencia o conocimiento de ellas. En inteligencia de negocios se engloban muchas funciones como;
multidimensionalidad, data mining, y data warehouse. El motor impulsor de esta inteligencia de negocios lo constituye el proceso de Extracción, Transformación y Carga2 para la integración de datos, garantizando que estos sean precisos, completos, creíbles, accesibles, rigurosos en el tiempo y con gran calidad.
La corporación CIMEX3 es una empresa mayorista y minorista que tiene gran prestigio en Cuba. CIMEX utiliza el sistema automatizado Sentai para la gestión empresarial de su comercio mayorista por excelencia, este software ha presentado ciertos inconvenientes; pues a pesar del buen funcionamiento desde el punto de vista transaccional, no es posible realizar sobre este sistema procesamiento analítico de gran envergadura, las consultas muy complejas se ejecutan lentamente debido a la forma en que están estructurados sus datos, por lo que no satisfacen las necesidades de eficiencia que solicitan los analistas, además los datos que gestiona son inconsistentes, no están organizados ni integrados de la forma más óptima. Por esta razón la empresa pretende desarrollar un Almacén de Datos Operacional4, para ello necesita que los datos se encuentren limpios, organizados, integrados y preparados para luego ser cargados en el ODS propuesto.
1 Conocido este término como BI (Business Intelligence) por sus siglas en inglés.
2 Proceso conocido en el mundo comercial como ETL (Extract, Transform and Load) por sus siglas en inglés.
3 Corporación Importadora y Exportadora.
4 También llamado ODS (del inglés Operational Data Store) es un contenedor de datos activos, es decir operacionales que ayudan al soporte de decisiones y a la operación.
12 Debido a esto se identifica el siguiente problema científico: ¿Cómo lograr la preparación, limpieza y organización de los datos a integrar en un almacén de datos operacional para CIMEX?
Así, este trabajo se encargará de realizar un acercamiento al proceso ETL, aportando los métodos y herramientas necesarias para reformatear, limpiar y cargar los datos desde múltiples fuentes a un almacén de datos operacional vinculado a la corporación CIMEX. Definiendo como objeto de estudio:
Proceso de extracción, transformación y carga de datos. Y a partir del análisis de este se determina como campo de acción: Proceso de extracción, transformación y carga de datos en un almacén de datos operacional para CIMEX.
Para certificar que los datos a cargar en el almacén tengan la claridad y organización necesaria, garantizando con esto una mejor toma de decisiones se ha propuesto como objetivo general:
Implementar el proceso de extracción, transformación y carga en un almacén de datos operacional para CIMEX. Concretándose en los siguientes objetivos específicos:
1. Realizar un estudio del estado del arte del proceso de extracción, transformación y carga de datos.
2. Seleccionar y estudiar las herramientas de código abierto que brinden los servicios y las funcionalidades necesarias para realizar la extracción, transformación y carga de datos.
3. Implementar el proceso de extracción, transformación y carga de datos hacia un almacén de datos operacional.
A partir de lo anteriormente expuesto se plantea la siguiente hipótesis: Si se realiza el proceso de extracción, transformación y carga en un almacén de datos operacional, se logrará la preparación, limpieza y organización de estos datos para dicho sistema.
Teniendo como variable independiente: Proceso de extracción, transformación y carga en un almacén de datos operacional. Y como variable dependiente: Preparación, limpieza y organización de los datos.
Para lograr el objetivo se plantean las siguientes tareas investigativas:
1. Realizar un estudio del estado del arte del proceso de extracción, transformación y carga de datos.
13 2. Realizar un estudio de las herramientas de código abierto para el diseño e implementación del
proceso de extracción, transformación y carga de datos.
3. Realizar un estudio de los principales procesos del negocio que existen en CIMEX.
4. Realizar un estudio de los orígenes de datos de CIMEX.
5. Implementar el proceso de extracción, transformación y limpieza de los orígenes de datos de CIMEX.
6. Implementar el proceso de carga de datos al almacén de datos operacional.
7. Evaluar la eficiencia del proceso de extracción, transformación y limpieza, así como la calidad de los datos cargados.
De esta manera el posible resultado que se obtendrá será: La implementación del proceso de extracción, transformación y carga de datos en un almacén de datos operacional.
Para lograrlo se usan algunos métodos teóricos que brindan un carácter científico a este trabajo; entre ellos se encuentran: análisis - síntesis, que permite la división mental del fenómeno en sus múltiples relaciones para facilitar el estudio y la síntesis mental de la unión entre las partes previamente analizadas, posibilitando descubrir las características generales y las relaciones esenciales entre los elementos de la investigación; otro método es la inducción – deducción, procedimiento que facilita el estudio de hechos aislados arribando a proposiciones generales, o a partir de un hecho general inferir casos particulares por un razonamiento lógico. Otro método que se utilizó para obtener un buen desempeño de la investigación e implementación eficiente, fue la observación, como instrumento universal del científico.
Garantizando cumplir con lo antes expuesto, el presente trabajo se ha conformado de la siguiente forma;
en el capítulo 1 se presentará un estudio del arte del proceso ETL, sus características, la importancia de emplear este proceso, y los desafíos que presenta su utilización, así como los roles y responsabilidades de cada uno de los implicados en el desarrollo de la solución. Brindando además la posibilidad de conocer las herramientas a manejar en la implementación del proceso ETL.
14 Una vez sumergidos en este mundo, conociendo sus particularidades y las herramientas con la que se trabajará para el desarrollo de este proyecto, la actividad fundamental se centra en la implementación del proceso ETL para CIMEX. Exponiendo estas ideas en el capítulo 2, para ello se realizará un estudio de los principales procesos del negocio que existen en CIMEX con el fin de garantizar un buen entendimiento entre el equipo de desarrollo y los clientes, se expondrán los orígenes de datos de CIMEX analizando detalladamente su estructura, para luego implementar el proceso de extracción, transformación y finalmente la carga de estos datos al almacén de datos operacional.
En el capítulo 3 se realizará una propuesta de validación de la calidad de los datos cargados. Evaluando la efectividad de la integración de los datos en el despliegue del almacén de datos operacional a quien el proceso de extracción, transformación y carga provee de datos limpios y en conformidad con la necesidad del CIMEX, permitiendo la toma de decisiones administrativas.
15
CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA
"En este nuevo mundo, la información reina…" afirma Geoffrey A. Moore5. Vivimos en una época donde la información es clave para obtener ventajas comerciales en el mundo de los negocios. Para mantenerse competitiva una empresa, sus gerentes requieren de un acceso rápido y fácil a información útil y valiosa de la organización. Una forma de solucionar este problema es mediante el uso de herramientas de análisis y aplicaciones analíticas, quienes se encargan de examinar los bienes o datos acumulados en la empresa y extraer una cierta inteligencia o conocimiento de ellos. Siendo el proceso de extracción, transformación, y carga, la base de esta inteligencia de negocios, pues un proceso ETL bien diseñado permite extraer datos del sistema fuente, asegura la calidad de los datos, hace cumplir las normas de coherencia, ajusta los datos a fin de que fuentes independientes se pueden utilizar de forma integrada, y ofrece a los datos un formato listo para que los desarrolladores pueden crear aplicaciones y los usuarios finales puedan tomar decisiones. Este capítulo se encargará de brindar un acercamiento al proceso ETL, como procedimiento que añade un valor significativo a los datos.
¿Qué es la integración de datos?
Los procesos de integración de datos están basados en la necesidad de aunar los datos pertenecientes a múltiples fuentes de datos con el fin de obtener de forma centralizada, una mirada única e integrada al problema en cuestión. Como principal enigma a la hora de integrar es que los datos son heterogéneos, se encuentran distribuidos, dispersos, y en la mayoría de los casos no estandarizados. Existen de esta forma numerosas islas de información inconsistentes que imposibilitan una comprensión unificada en cuanto a los términos, cantidades, unidades de medida, etc. Las entidades generadoras de datos, provocan que la tarea de unificar estos datos sea sumamente compleja y costosa. Es por ello que al hablar de integración de datos aparece el término calidad de datos, como una rama o subproceso a tener en cuenta. La información proveniente de diferentes sistemas es entonces inconsistente y con baja calidad, la gran mayoría de las veces al intentar compatibilizarla con otros sistemas, incluso dentro de las mismas empresas o entidades, es común encontrar múltiples sistemas, tecnologías, canales de comunicación y transporte cuando de integración de datos se trata. Tomando en consideración las diferencias entre la
5 Director gerente en TCG Asesores, autor muy vendido en temas de asesoramiento y consulta de estrategias de transformación y modelos de negocio.
16 calidad de datos, los procedimientos para el manejo de datos de los expertos, los formatos, lenguajes y muchas otras inconsistencias, es preciso señalar que la plena y armoniosa integración de los recursos de información es un problema difícil de solventar. Es por esto que la integración de datos es necesaria, tomando fortaleza en las técnicas y tecnologías que maneja. (Kimball 1996)
Proceso ETL. Principales características.
El proceso de extracción, transformación y carga es el encargado de impulsar el flujo de datos haciendo transformaciones intermedias y permitiendo una integración de datos exitosa. Es por esto que cada paso, desde su diseño de acuerdo a los requerimientos de cada negocio, hasta su eficiente puesta en marcha, precisa de la mayor atención y esfuerzo posible. El proceso ETL permite a las organizaciones mover datos desde múltiples fuentes, reformatearlos, limpiarlos, y cargarlos en otra base de datos, protegiendo el linaje de los datos. Encontrándose este proceso enfocado a la integración de datos, tanto por lote, como a tiempo real hacia almacenes, logrando un alto grado de transformaciones para la consolidación de la información. Sincronizando datos desde diversas aplicaciones e involucrando procesos de manipulación que van más allá de un simple movimiento desde el punto A hasta el punto B, donde este proceso no está separado de los sistemas operacionales, sino que está integrado con los demás procesos de la empresa.
El proceso ETL fortalece datos para la construcción de bases de datos permanentes, dedicadas para el análisis o la generación de informes, utilizándose para migrar datos de una o más bases de datos a terceros, para formar repositorios de datos, data marts6, almacenes de datos7 y también para convertir bases de datos de un tipo o formato a otro, entre otras funcionalidades que hacen de este proceso imprescindible a la hora de integrar datos. (Kimball 2004)
Entre las características que describen las tecnologías de ETL se tienen:
Es un mecanismo de carga muy eficiente y efectivo orientado a los almacenes de datos.
Enfocado a migrar y mezclar datos.
6 Versión especial de almacén de datos. Son subconjuntos de datos con el propósito de ayudar a que un área específica dentro del negocio pueda tomar mejores decisiones.
7 Del inglés Data Warehouse, es una colección de datos orientada a un determinado ámbito (empresa, organización, etc.), integrado, no volátil y variable en el tiempo, que ayuda a la toma de decisiones en la entidad en la que se utiliza.
17 Reduce la exposición a desarrollos manuales (codificación) producto de la existencia en el mercado de herramientas potenciales para la implementación visual, con manejo de excepciones, gestión y planificación de tareas.
Necesita pocos servicios de administración y mantenimiento.
Gran capacidad para llevar a cabo transformaciones.
Tecnología enfocada a la integración de datos en bases de datos versátiles hacia los almacenes de datos.
Como se puede dilucidar es un proceso complejo, pues precisa de un alto nivel de detalle, y en caso de ser mal diseñado puede provocar serios problemas operativos, por lo se debe regir por su arquitectura, donde la que se define para el tipo de solución en cuestión se presenta en la siguiente figura:
Fig. 1. Arquitectura de la solución ETL.
Las componentes de la arquitectura mostrada son los siguientes:
18 Servicios de administración y operaciones: aseguran la utilización efectiva de los recursos en el ambiente de sincronización y una administración idónea mediante la planificación, seguimiento de tareas, gestión de metadatos8 y recuperación de errores.
Servicios de transportación: garantizan el movimiento de la información cruda o transformada desde una fuente hasta un repositorio destino.
Servicios de metadatos: los metadatos son información descriptiva sobre los datos y otras estructuras, como objetos, reglas de negocio, y procesos que manipulan los datos. Los metadatos pueden ser agrupados en dos categorías:
Metadatos mecánicos: enfocado a los diseñadores, desarrolladores y administradores durante el desarrollo, y mantenimiento del proceso. Este es el punto técnico que agrupa las herramientas, aplicaciones y sistemas, para que juntos constituyan la solución.
Metadatos del negocio: brindan una imagen clara del servicio del ambiente de trabajo a los usuarios finales.
Teniendo el proceso ETL, tres subprocesos fundamentales, que permiten la división y entendimiento efectivo de este arduo trabajo. Los cuales se explicarán a continuación.
Extracción
Consiste en extraer los datos desde los sistemas de origen, estas fuentes primarias pueden encontrarse sobre arquitecturas, o estructuras heterogéneas, cada sistema separado puede usar una organización diferente de los datos o formatos distintos. Los formatos de las fuentes normalmente se encuentran en bases de datos relacionales o ficheros planos, pero pueden incluir bases de datos no relacionales u otras estructuras diferentes. La extracción convierte los datos a un formato preparado para iniciar el proceso de transformación. Una parte intrínseca del proceso de extracción es verificar los datos extraídos, de lo que resulta un chequeo que comprueba si los datos cumplen lo que se espera, de no ser así los datos son rechazados. Un requerimiento importante que debe exigir la tarea de extracción es que ésta cause un mínimo impacto en el sistema origen, pues si los datos a extraer son muchos, el sistema de origen se podría colapsar, provocando que no pueda utilizarse con normalidad para su uso cotidiano. Por esta razón, en sistemas grandes las operaciones de extracción suelen programarse en horarios o días donde
8 La definición más difundida de metadatos es que son «datos sobre datos».
19 este impacto sea nulo o mínimo. Las herramientas utilizadas en la extracción deben ser adaptables, extensibles y capaces de filtrar los datos relevantes a extraer de las fuentes, permitiendo la compresión, descompresión, y encriptación de datos.
Limpieza y Transformación
Etapa central del proceso, donde los datos extraídos son convertidos de su estado original a un formato consistente con el repositorio destino, sin perder su exactitud o veracidad con respecto a las fuentes. Para esta etapa medular, los datos deben ser limpiados, pues en el mundo real son sucios; se muestran incompletos, donde faltan valores de los atributos, o contienen solo agregados de datos; se presentan con ruido, conteniendo errores o valores fuera de límites, manteniendo discrepancias en nombre o códigos.
Por ello se realiza un proceso de limpieza que elimina errores e inconsistencias en los datos y resuelve el problema de identidad de los objetos. Teniendo este proceso como tareas fundamentales: llenar valores ausentes, identificar valores fuera de límite, eliminar el ruido en los datos, corregir las inconsistencias de los datos, e integrarlos.
Fig. 2. Problemas a resolver por la limpieza de datos.
20 Una vez que los datos se encuentren limpios, se procede a realizar las transformaciones, que pueden ir desde simples conversiones de formato, hasta las más complejas operaciones de integración. Aunque lo ideal es seguir los siguientes pasos:
Análisis de datos.
Definición del flujo de trabajo de las transformaciones y las reglas de correspondencia.
Verificación Transformación
Flujo inverso de datos limpios.
Comenzando por el análisis de datos, obteniendo metadatos que ayuden a determinar las características de los datos y patrones de valores no usuales, usando principalmente los enfoques de perfil de datos9 y minería de datos10. Luego que los datos se encuentran limpios, homogeneizados, y se cuenta con metadatos fiable. Se generan las reglas de transformación que va desde realizar tratamientos a valores nulos, aplicar reglas del negocio, combinar los datos de las distintas fuentes o realizar búsquedas de valores en diversas tablas, hasta implementar agregaciones que aceleran los tiempos de análisis, ocultan complejidad de los datos, y proveen múltiples vistas del mismo conjunto de datos. Culminando esta fase con la retroalimentación del flujo inverso de datos limpios.
Carga
Es la fase donde se realiza la transferencia del conjunto resultado de las transformaciones a su destino, ya sean sistemas o ficheros con cierto formato, dependiendo de los requerimientos de la organización. Este subproceso puede abarcar una amplia variedad de acciones diferentes. En algunas bases de datos se sobrescribe la información antigua con nuevos datos, en los almacenes de datos al mantener un historial de los registros se puede hacer una auditoría de los mismos y disponer de un rastro de toda la historia de un valor a lo largo del tiempo. Independientemente de la acción a tomar para la carga, al realizar esta
9 Del inglés (Data Profiling)), es una técnica que utiliza perfiles de heurística donde se establecen reglas, para medir los datos, y corregirlos.
10 Del inglés (Data Mining), prepara, sondea y explora los datos para sacar la información oculta en ellos.
21 operación, se aplicarán todas las restricciones y triggers11 que se hayan definido, las cuales contribuyen a que se garantice la calidad de los datos en el proceso ETL.
Orígenes de datos. Categorías.
Según la necesidad de información y el problema a responder, son las fuentes de datos que se van a integrar, por ello la importancia de saber identificarlas. Para poder realizar el proceso de integración es necesario clasificar las plataformas técnicas y demás condiciones físicas de las fuentes de información, para en base a la clasificación de cada una, planificar y desarrollar los mecanismos de integración en cada caso. Las categorías propuestas son las siguientes:
No cooperativas: exportan archivos de intercambio o permiten consultas directas con SQL o a través de servicios web, no se garantiza que el destino de la información la integre.
Snapshots: Copia completa de la Información congelada en un instante de tiempo.
Fuentes específicas: Fuentes que brindan información a partir de archivos intermedios, u otros mecanismos que no implican funcionalidades internas puntuales en base al receptor de la información.
Fuentes consultables: Suministra interfaces para consultas (SQL, servicios web, etc.).
Cooperativas: que a través de mecanismos de replicación, u otros mecanismos, se establecen intercambios mucho más fiables, seguros y responsables.
Fuentes de replicación: Mecanismos de publicación/suscripción.
Fuentes callback: Se invocan códigos externos de ETL cuando ocurren cambios en la información.
Fuentes de cambios internos: Se activan acciones internas cuando ocurren los cambios (Triggers).
Luego de identificadas las fuentes, se debe tener suficiente experiencia para entender los mecanismos de transferencia de información, analizándose si es necesario cambiar de categoría alguna fuente dada.
11 Llamados también disparadores, es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).
22 Fig. 3. Categorías de fuentes.
Puede incluso pensarse en tener resultados con latencia mínima.
Fig. 4. Integración de datos con latencia mínima
Por ello clasificar las fuentes de datos es un paso importante para definir las características del proceso de integración. Donde debe quedar claro las condiciones que la información de la fuente origen a de cumplir:
voluntad política de las autoridades locales y nacionales, de utilizar la información para la toma de decisiones; coordinación con las instituciones - fuentes de información; y el uso de tecnología apropiada para el análisis de información, y evaluación de estrategias. La ausencia de algunas de estas condiciones influye de forma negativa en el éxito de una solución ETL y atenta contra el cumplimiento de los objetivos básicos de la solución.
23
Roles y Responsabilidades del equipo ETL.
En el nivel más elemental, el equipo ETL es responsable de la extracción de datos de las fuentes origen del sistema, la limpieza y transformación, así como también la carga de los datos al almacén destino.
Tener una persona por rol sería idóneo para un cómodo desarrollo, pero teniendo en cuenta la extensión del proyecto, y situaciones que se pueden presentar a lo largo de la vida del proyecto, se tiene que estar preparado para asumir en un momento determinado varios roles por especialista. Más concretamente, y para lograr el resultado óptimo en el proceso ETL las siguientes tareas son responsabilidades del equipo ETL:
Definir el ámbito de aplicación del proceso ETL.
Realizar un análisis de datos del sistema fuente.
Definir una estrategia para lograr calidad en los datos.
Trabajar con usuarios del negocio a fin de reunir y documentar las reglas de negocio.
Desarrollar e implementar el código físico ETL.
Crear y ejecutar subsistemas de control de calidad y planes de prueba.
Realizar el mantenimiento del sistema.
Pero estas tareas se desglosan, formando roles que asumen responsabilidades fundamentales, que dan al traste con la construcción de un óptimo equipo ETL, facilitando la calidad del proceso en cuestión:
Gerente ETL: encargado de la gerencia del equipo y del mantenimiento del almacén de datos operacional en todo lo que se refiere al proceso ETL. Responsable de la gestión de los datos a extraer, transformar, y los procesos de carga en el almacén de datos operacional, supervisa los ensayos y su calidad. Y desarrolla normas para el ambiente ETL, incluyendo convenciones de nomenclatura, y buenas prácticas de diseño.
Arquitecto ETL: las responsabilidades de este rol incluyen el diseño de la arquitectura, la infraestructura y los mapas lógicos de datos12 para el equipo de desarrollo ETL. Este arquitecto debe tener una fuerte comprensión de los requerimientos del negocio y de los sistemas fuente.
12 Del inglés Logical Data Map, instrumento de utilidad en la enseñanza de las ciencias y en la investigación didáctica de las ciencias.
24 Desarrolladores ETL: responsables de la construcción de los procesos físicos ETL. Este rol trabaja en estrecha colaboración con el arquitecto para resolver cualquier ambigüedad en las especificaciones de la codificación real. El desarrollador es encargado de crear rutinas funcionales ETL y probar su fiabilidad para garantizar que se ajusten con las necesidades del negocio.
Especialista de calidad de datos: la calidad del almacén de datos operacional incluye la calidad del contenido y de la estructura de información dentro del almacén. El especialista en calidad de datos trabaja principalmente con el arquitecto ETL para garantizar que las reglas comerciales y las definiciones de datos sean propagadas a lo largo del proceso ETL.
Administrador de bases de datos: principal responsable de traducir el diseño lógico de la base de datos a una estructura física. Por otra parte trabaja muy cerca del equipo ETL para garantizar que los nuevos procesos no corrompan los datos existentes. En algunos ambientes, el administrador de base de datos es propietario de los procesos ETL una vez que se haya migrado a la producción.
Administrador de dimensión: encargado de la definición, construcción, y publicación de una o más dimensiones conformadas para la comunidad de datos extendidos. Asegurándose que las dimensiones configuradas se reproducen de manera simultánea a todas las tablas de hechos para todos los clientes proveedores.
Proveedor de la tabla de hechos: posee tablas de hechos en un entorno de dimensiones configuradas. Recibiendo actualizaciones periódicas de las dimensiones enviadas por el administrador de dimensiones. Convirtiendo la llave natural en la llave sustituta para exponer las tablas de hechos de forma adecuada para el usuario.
Proceso ETL. Importancia y Desafíos.
Un buen proceso ETL permite una integración consistente de los datos. Al culminar este proceso, los datos serán; precisos, completos, creíbles, rigurosos en el tiempo, interpretables, accesibles y con valor añadido. Este proceso no es una simple migración, pues asegura la calidad de los datos, los prepara, conforma, limpia, trasforma, y organiza, brindando a quienes utilicen estos datos un conocimiento que facilitará la toma de decisiones. El proceso ETL suele ser muy extenso y precisa de un alto nivel de escaneo, por ello presenta a lo largo de su desarrollo ciertos inconvenientes que deben ser depurados.
Entre los principales desafíos encontramos; que el rango de valores de los datos o la calidad de éstos
25 pueden no coincidir con las expectativas de los diseñadores a la hora de especificarse las reglas de validación o transformación. Por lo que es recomendable realizar un examen completo de la validez de los datos del sistema de origen durante el análisis, para identificar las condiciones necesarias para que los datos puedan ser tratados adecuadamente por las reglas de transformación especificadas. Otro aspecto a tener en cuenta es la escalabilidad, esto incluye la comprensión de los volúmenes de datos que tendrán que ser procesados según los acuerdos de nivel de servicio13, el tiempo disponible para realizar la extracción de los sistemas de origen podría cambiar, lo que implicaría que la misma cantidad de datos tendría que ser procesada en menos tiempo. Estos son algunos retos que presenta el desarrollo de este proceso, aunque no son los únicos, también podemos encontrar problemas con los volúmenes de datos que crecen de forma exponencial, entonces se tendría que procesar grandes cantidades de datos granulares. Así los sistemas de información crecen en complejidad, aumentando la disparidad de las fuentes, para ello el proceso ETL necesitaría una extensa conectividad a las aplicaciones en paquetes, bases de datos, mainframes14, archivos, servicios web, etc. Otra característica que dificulta este proceso, son las transformaciones que llegan a ser muy engorrosas, pues los datos necesitan agregarse, analizarse, computarse, y procesarse estadísticamente. Estos son algunos retos a los que normalmente se enfrenta un proceso ETL y su equipo, debido a ello en la actualidad las soluciones de integración de datos están cada vez más optimizadas para lograr una adecuada calidad empresarial, siguiendo de forma especial las siguientes características que son críticas para el diseño, desarrollo, ejecución y mantenimiento de los procesos ETL:
Modelación de procesos orientada al negocio que implica a las partes interesadas en el negocio y garantiza una comunicación óptima en las líneas de negocio.
Entorno de desarrollo gráfico que mejora en gran medida la productividad y facilita el mantenimiento.
Amplia conectividad para admitir todos los sistemas.
13 Del inglés (Service Level Agreement), conocido también por las siglas SLA, es un contrato escrito entre un proveedor de servicio y su cliente con objeto de fijar el nivel acordado para la calidad del servicio.
14 Computadora grande, potente y costosa usada principalmente por una gran compañía para el procesamiento de una gran cantidad de datos.
26 Componentes avanzados ETL, incluidas manipulaciones de cadenas, dimensiones lentamente
cambiantes15, soporte para cargas masivas, etc.
Que si bien estas consideraciones no eliminan los muchos desafíos que afronta este proceso en su desarrollo, sí los minimiza y controla.
¿Qué parámetros tener en cuenta para la selección de la herramienta ETL a utilizar?
La decisión de qué herramienta ETL utilizar para el desarrollo del proceso, es una de las de mayor peso.
Pues la selección debe estar respaldada por un serio estudio, ya que migrar de una herramienta a otra es una ardua tarea, debido a que cada una tiene sus particularidades a la hora de reflejar los pasos del proceso, esta selección se apoya en una serie de parámetros que pueden facilitar el establecimiento de una comparación entre las distintas variantes:
Multiplataforma: la herramienta debe ser capaz de funcionar en cualquier plataforma, aunque, de acuerdo a las exigencias del entorno donde se desarrolle el proceso ETL, basta con que la herramienta sea compatible con la plataforma previamente seleccionada.
Requerimientos de hardware y software: analizar si se pueden cumplir los requerimientos de la herramienta en cuanto a hardware y software.
Independencia del tipo de fuente o destino: debe ser capaz de leer y escribir directamente desde y hacia las fuentes y los destinos de los datos, independientemente de su tipo, dando conectividad con distintos gestores de bases de datos.
Soporte para metadatos: una de las mayores ventajas que debe poseer una herramienta es tener disponible la información sobre los datos durante el desarrollo y ejecución de los procesos. La generación de metadatos, que incluyen la definición de los tipos de datos de las fuentes, de las transformaciones y destinos, debe ser un proceso automático.
Soporte funcional: debe ser posible la realización eficiente de operaciones para la limpieza de los datos, transformaciones, agregaciones, reorganización y carga.
15 Del inglés (Slowly Changing Dimensions), este concepto se aplica a como las dimensiones deben tener en cuenta los cambios históricos.
27 Utilidades del sistema operativo y servicios de transporte: debe brindar la posibilidad de interactuar con el sistema operativo, para poder ejecutar distintos procesos y tareas en el sistema de ficheros.
Ofreciendo servicios de transporte, por ejemplo, a través de la red o usando el Protocolo para la Transferencia de Ficheros16.
Soporte al modelo dimensional: la herramienta debe tener incorporado soporte para la creación de tareas de dimensiones lentamente cambiantes, generación de llaves sustitutas y construcción de dimensiones agregadas.
Facilidad de uso: debe ser una herramienta de propósito general y amigable para el desarrollador, de modo que pueda identificarse rápidamente con la misma.
Paralelismo: debe ser posible la ejecución de operaciones en paralelo de manera que una tarea pueda aprovechar el paralelismo inherente de la plataforma sobre la que corre.
Corrección de errores y registro de eventos: debe ser posible rastrear los errores en las transformaciones en tiempo de ejecución, así como ver los datos antes y después de cada transformación. Además, se necesita controle el proceso registrando los distintos eventos durante la ejecución.
Planificación de la ejecución: ofrece una manera de planificar la ejecución de los trabajos de manera automática, o sea sin necesidad de intervención humana para completar su funcionamiento.
Puesta en funcionamiento: debe ser posible agrupar varios objetos ETL y ponerlos en funcionamiento en ambientes de testeo o producción.
Reusabilidad: aporta la posibilidad de aprovechar parte de la lógica de las distintas tareas, de manera que el desarrollador no tenga que hacer repetidas veces una misma transformación.
Documentación, preparación y soporte técnico: se requiere incorpore documentación básica. Se deberá tener en cuenta si ofrecen servicios de preparación para los especialistas, así como soporte técnico.
Extensibilidad: debe permitir al usuario la definición de nuevas funciones y utilizarlas igual que las que incluye la herramienta.
16 FTP (siglas en inglés de File Transfer Protocol) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor.
28 Gestión de las dimensiones lentamente cambiantes: la herramienta debe ser capaz de manipular
las dimensiones lentamente cambiantes.
Gestión de la calidad de datos: se requiere permita al usuario realizar acciones como la limpieza, el filtrado y la validación de los datos para garantizar su calidad.
Gestión de la sustitución de claves: se refiere al aporte de la herramienta para facilitar la sustitución de las llaves del negocio por las llaves de la dimensión.
Perfil de datos: se refiere a si la herramienta permite realizar perfilado de datos a las fuentes.
Muchas veces resulta difícil el proceso de selección, aún más cuando la mayoría de los vendedores tratan de desarrollar un producto que cumpla todos o al menos gran parte de los parámetros descritos.
Actualmente las herramientas se centran en brindar la mayor conectividad posible y ofrecer funciones de integración casi en tiempo real. En un futuro, sin duda alguna, se sumarán nuevos parámetros. No obstante, el orden o prioridad entre cada uno de ellos debe ser determinado de acuerdo a los requisitos o las más urgentes necesidades que tengan los clientes.
Herramientas ETL a tener en cuenta para selección. Principales características.
Varios productos pueden ser los candidatos a tener en cuenta en el momento de realizar una selección, pues actualmente son diversas y numerosas las herramientas de las cuales resultaría provechoso un estudio. Entre las herramientas más conocidas se encuentran; PowerCenter, una plataforma de integración de datos lanzada por Informatica Corporation, que incluye la construcción de almacenes de datos de terabytes, la migración desde los sistemas heredados, la sincronización de los almacenes de datos operacionales, la consolidación de aplicaciones o la obtención de una visión integral de todos los datos relevantes, presentando avances en tres áreas fundamentales: el acceso a los datos empresariales, el despliegue en toda la empresa y en la productividad del desarrollador. También podemos hacer referencia a otras herramientas como; Information Server de IBM17, revolucionaria plataforma que facilita obtener valor de la heterogénea y compleja información difundida a través de los sistemas de su empresa anfitriona; otro producto es SQL Server 2008 Integration Services, bajo la tutela de Microsoft, que muestra
17 International Business Machines o IBM (conocida coloquialmente como el Gigante Azul) es una empresa que fabrica y comercializa herramientas, programas y servicios relacionados con la informática.
29 altas capacidades de integración en forma fácil y asequible, permitiendo gestionar transformaciones de alto rendimiento en una amplia gama de fuentes de datos. Entre las herramientas más novedosas a tener en cuenta se encuentran; Oracle Data Integrator y Oracle Warehouse Builder, productos dentro de la familia de Oracle Fusion Middleware, quienes facilitan la optimización de inteligencia de negocios, almacén de datos y gestión de datos. Pero en este trabajo solo tendremos en cuenta la comparación de herramientas en el ambiente de código abierto18, pues aporta la posibilidad de manejar directamente el código fuente y hasta modificarlo o adaptarlo a necesidades individuales, aunque no se tenga tanta seguridad y más que seguridad, un prestigio como el de los productos de los grandes monopolios. Se ha querido analizar dos herramientas código abierto. Las cuáles son Spoon de Pentaho Data Integration, y Talend Open Studio de Talend.
Spoon de Pentaho Data Integration
Spoon de Pentaho Data Integration es una de las herramientas ETL de código abierto más populares, la cual permite diseñar de forma gráfica la transformación ETL. Reúne un conjunto de componentes que permiten modelar y ejecutar transformaciones sobre flujos de datos. Puede funcionar sobre varias plataformas:
Microsoft Windows (todas las plataformas, desde Windows 95 hasta Vista) OSX de Apple (para máquinas PowerPC e Intel)
Linux (Gtk-PPC/x86/x86_64) AIX (usando una interfaz Motif)
HPUX (usando una interfaz Motif (GTK opcional)) Solaris (usando una interfaz Motif (GTK opcional))
Requiere un sistema que soporte Java 1.4 Runtime Environment o una versión más nueva, y de hardware exige alrededor de 128 MB de RAM. Actualmente soporta diversos tipos de fuentes. Tiene conectividad con cualquier base de datos usando ODBC19 en Windows, Oracle, MySQL, AS/400, MS Access, MS SQL
18 En inglés open source es el término con el que se conoce al software distribuido y desarrollado libremente.
19 Open Database Connectivity (ODBC), es un estándar de acceso a bases de datos desarrollado por Microsoft Corporation, el objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué Sistema Gestor de Bases de Datos (DBMS por sus siglas en inglés) se utilice.
30 Server, IBM DB2, PostgresSQL, Intersystems Caché, Informix, Sybase, dBase, Firebird SQL, MaxDB (SAP DB), Hypersonic, CA Ingress, SAP R/3 System (usando el plugin ProSAPCONN), Teradata. Se integra con ficheros de Microsoft Office, web services y cubos MOLAP20. Incluye procesamiento optimizado de los ficheros planos y provee un JDBC21, que permite la conexión con cualquier base de datos sin tener que instalar un cliente adicional. Esta herramienta brinda soporte para metadatos.
Incorpora operaciones de transformación, así como funciones que permiten operar con los campos en el flujo de datos, renombrando, calculando campos en función de otros, correlacionando valores y realizando búsquedas auxiliares en bases de datos. Se debe destacar, que su rendimiento se puede ver afectado cuando se realizan operaciones de join22 con grandes volúmenes de datos, pues maneja pequeñas cantidades de información en el flujo. Aunque por otra parte ofrece, soporte para operaciones de dimensiones lentamente cambiantes, permite ejecutar código javascript dentro de las transformaciones e incorpora un evaluador de expresiones regulares. Entre las tareas que se pueden incorporar están la copia y eliminación de ficheros, así como su transportación usando FTP, además se pueden descompactar ficheros. Esta herramienta es fácil de usar: es model-driven23, por lo que no es necesario prácticamente incorporar código, aunque el usuario tiene la posibilidad de programar sus propias transformaciones y desarrollar un proceso que consiste en declarar el flujo en una interfaz gráfica.
Brindando la posibilidad de copiar y leer del mismo fichero en paralelo, permitiendo maximizar la capacidad de entrada/salida en el entorno ETL. Esta herramienta también soporta la ejecución de transformaciones en clusters24, aunque el procedimiento de particionar los datos no es automático, por lo que no se logra un procesamiento en paralelo completo. Añade un debugger integrado, diseñado para
20 Multidimensional Online Analytical Processing (MOLAP), también se conoce como procesamiento analítico multidimensional en línea. Permite el almacenamiento de datos en una matriz de almacenamiento multidimensional optimizada.
21 Java Database Connectivity (JDBC), permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java.
22 Sentencia en SQL, que permite combinar registros de dos o más tablas en una base de datos relacional.
23 Model-Driven Architecture (MDA) o Arquitectura dirigida por modelos, proporciona un conjunto de guías para estructurar especificaciones expresadas como modelos.
24 Se aplica a los conjuntos o conglomerados de computadoras construidos mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen una única computadora.
31 mejorar la productividad del desarrollador, ya que se pueden agregar puntos de ruptura condicionales en la ejecución de las transformaciones, dando la posibilidad de pausar y resumir la ejecución de la transformación, así como especificar el número de filas que se van a usar en las ejecuciones de prueba.
Además, se pueden añadir registros personalizados.
Otras aplicaciones de la suite Pentaho Data Integration, son:
PAN ejecuta las transformaciones diseñadas con SPOON.
CHEF permite mediante una interfaz gráfica diseñar la carga de datos incluyendo un control de estado de los trabajos.
KITCHEN permite ejecutar los trabajos diseñados con CHEF.
Mientras el Spoon de Pentaho Data Integration tiene entre sus ventajas, que es una de las más antiguas herramientas ETL de código abierto, cuenta con una gran comunidad de usuarios, su interfaz gráfica permite un aumento de la productividad. Aunque a la hora de la selección, entre sus desventajas podemos encontrar; que no automatiza el proceso de separación y redistribución de datos para el procesamiento paralelo y que no cuenta con un componente de calidad de datos especializada o una asociación con un proveedor de calidad de los datos, además que para realizar búsquedas de mayores volúmenes necesita utilizar una base de datos de búsqueda donde se ejecutan un gran número de sentencias SQL que frenan el rendimiento de ETL. Para un mejor enfoque del funcionamiento de esta herramienta, presentamos la arquitectura que utiliza.(Pentaho 2009)
32 Fig. 5. Arquitectura de Pentaho Data Integration
Talend Open Studio
Talend es un proveedor de productos para la integración de datos, compañía de propiedad privada y respaldada por capital arriesgado. El producto insignia de la compañía es Talend Open Studio. El cuál está disponible bajo la licencia sin costo GPL25, según lo dispuesto por esta licencia, Talend Open Studio no puede ser incorporado como parte de otro software sin su permiso. Esta herramienta es un producto generador de código, que permite ser analizado cada vez que se requiera, esto significa que evita la concepción de ser una caja negra seguida por otros desarrolladores. Soporta las siguientes plataformas:
Solaris MAC Windows
Red Hat Enterprise Linux
25 General Public License (GNU por sus siglas en inglés), orientada principalmente a proteger la libre distribución, modificación y uso de software.
33 Linux (permite arquitecturas de 32 y de 64 bits)
Los scripts generados por la herramienta se pueden ejecutar en cualquier sistema operativo que soporte, en cuanto a requerimientos de software, es necesario instalar Java o Perl en Windows o en Linux. Para realizar las transformaciones ETL, Talend tiene conectividad con: AS400, Access, DB Generic, DB2, Firebird, HSQLDb, Infomix, Ingres, Interbase, JavaDB, JDBC, LDAP, Microsoft SQLServer, MySQL, Oracle, PostgresSQL, SQLite, Sybase, Teradata y Vertica. Pero se debe señalar que el acceso a las fuentes requiere un driver JDBC. Soporta distintos formatos de ficheros y metadatos. Estos son almacenados y administrados en un repositorio, compartido por todos los módulos. Este repositorio centraliza la información de los proyectos y asegura la consistencia de todos los procesos de integración, facilitando la reutilización de los objetos y del código creado. Contiene una librería de más de doscientos componentes y conectores, la cual proporciona funciones básicas como: operaciones de correlación, búsquedas, filtrado de datos, transformaciones, y algunas facilidades para cargar hacia almacenes de datos. La librería de componentes puede ser extendida usando lenguajes como Java, Perl o SQL, pues los desarrolladores pueden introducir nuevas funcionalidades. La herramienta Talend incorpora operaciones para el manejo de ficheros, así como servicio FTP, ofrece además una vista gráfica intuitiva.
Los procesos de integración son construidos arrastrando componentes y conectores al diagrama, dibujando conexiones y relaciones entre ellos y especificando sus propiedades. Talend Open Studio incluye un debugger potente y características sincronizadas que permiten seguir el flujo de datos en tiempo real a través de todo el proceso de transformación. Cuando un trabajo de integración es ejecutado a través de la interfaz de diseño las estadísticas son presentadas, mostrando el número de filas procesadas y rechazadas, así como el rendimiento, permitiendo localizar cualquier embotellamiento en el proceso de forma inmediata. Es también posible activar el modo rastreo, el cual muestra el comportamiento fila por fila, así como el resultado de las transformaciones. Los puntos de ruptura y las variables también están disponibles. Es posible la planificación de la ejecución de tareas realizadas mediante una interfaz centralizada que ofrece Talend, así como la ejecución remota de los trabajos para probarlos sin tener que utilizar procedimientos complejos para su puesta en funcionamiento. Entre sus principales ventajas, se encuentra el foro de la compañía que proporciona soporte de manera gratuita, además la herramienta permite equilibrar la carga entre el servidor de procesamiento de Talend, grupo o red, y el origen o destino de las bases de datos en escena. Otra ventaja es que cuenta con una interfaz ETL para la importación de los metadatos, la configuración, vinculación de los componentes y generación
34 de código, lo cual proporciona ganancias de productividad para los desarrolladores. Las desventajas que ofrece esta herramienta no son muchas, la más significativa es el no aseguramiento de la calidad de los datos , aunque esta función pueden ser cumplida por una tercera parte.(Talend 2009)
Valoraciones finales de las herramientas ETL. Comparación.
Como se ha podido dilucidar, las herramientas evaluadas intentan satisfacer o cumplir los parámetros analizados. Ambas ofrecen amplia conectividad con varias fuentes, brindan un abundante conjunto de transformaciones y soporte para metadatos. Permiten, que el usuario pueda definir sus propias funciones y brindan medios con los que se pueda corregir los errores y registrar eventos durante el flujo de datos.
Para un mejor análisis se comparan las herramientas, para así obtener una mejor vista a la hora de elegir y respaldar el porqué de la herramienta seleccionada.(License 2008)
Pentaho Data Integration Talend Open Studio
Facilidad de uso x
Extensible x x
Reusabilidad x x
Ficheros planos x x
Ficheros XML x x
Ficheros EXCEL x x
Bases de datos Microsoft Access x
Bases de datos DB2 x x
Bases de datos Oracle x x
Bases de datos SQL Server x x
Sistemas ERP (SAP) x x
Ficheros planos x x
Ficheros XML x x
Bases de datos Oracle x x
Bases de datos SQL Server x x
Motor OLAP
Gestión de dimensiones x x
35 lentamente cambiantes
Gestión de la calidad de datos x x
Gestión de la sustitución de claves
x
Perfil de datos
Manipulación de errores x x
Registro de eventos x x
Planificación de tareas x x
Ejecución automáticas de tareas x x
Gestión de metadatos x x
Soporte para ejecución paralela de tareas
x x
Fig. 6. Comparación entre Spoon y Talend
En la figura 6 se observa que existen ciertas diferencias, por ejemplo, en las plataformas sobre las que corren, y los requerimientos en software y hardware, siendo la suite Pentaho Data Integration la herramienta más exigente. También en el soporte que brindan al modelo dimensional, siendo Talend la más pobre en este sentido. Aunque estas herramientas tienen requerimientos que cumplen de forma bastante igualitaria, ambas no realizan perfilado de datos, aunque el Spoon de Pentaho Data Integration tiene como ventaja que es más fácil su uso, y que además permite la gestión de llaves sustitutas, mientras Talend prescinde de este servicio. Debido a este análisis y teniendo como primer parámetro y decisivo el dictamen del cliente, se determina realizar el desarrollo del proceso ETL en la herramienta Spoon de Pentaho Data Integration.
Herramienta de modelado a utilizar. Principales características.
Existen diversas herramientas que potencian el modelado, entre las más conocidas se puede mencionar Rational Rose, la cual potencia prácticas modernas de ingeniería de software, proponiendo la utilización de diferentes tipos de modelo para realizar un diseño del sistema, utilizando una vista estática y otra dinámica de los modelos, uno lógico y otro físico, además permite crear y refinar estas vistas creando un modelo completo que representa el dominio del problema y el sistema de software. Otra famosa herramienta es el Power Designer, la cual permite de manera fácil, visualizar, analizar y manipular
36 metadatos, brindando un enfoque basado en modelos, alineando al negocio con la tecnología de información, facilitando la implementación de arquitecturas efectivas de información empresarial. Otra herramienta profesional y efectiva es Enterprise Architect, la cual aporta un alto rendimiento, es flexible, completa y proporciona un potente modelado en UML, provee lo más nuevo en desarrollo de sistemas, administración de proyectos y análisis de negocio. A partir del estudio de las principales herramientas de modelado, y teniendo en cuenta que la universidad utiliza de forma periódica la herramienta elegida, el equipo de desarrollo decidió modelar en Visual Paradigm para UML26, herramienta visual que ayuda a construir aplicaciones rápidamente, y soporta el ciclo de vida completo del desarrollo de software: análisis y diseño orientados a objetos, construcción, pruebas y despliegue. Esta herramienta permite dibujar todos los tipos de diagramas de clases, código inverso, generar código desde los diagramas y generar documentación, proporcionando abundantes tutoriales de UML, demostraciones interactivas de UML y proyectos UML. Además es colaborativa, o sea soporta múltiples usuarios trabajando sobre el mismo proyecto; genera la documentación del proyecto automáticamente en varios formatos y permite control de versiones. Cabe destacar su robustez, usabilidad y portabilidad. Entre las principales características de la herramienta, encontramos: que permite la creación de diagramas de procesos de negocio, cubriendo además todo el ciclo de vida, facilitando un modelado colaborativo con Subversion27 e interoperabilidad con modelos UML. Además el Visual Paradigm, proporciona el diseño de ingeniería inversa, código a modelo, código a diagrama, permitiendo la realización de diagramas de flujo de datos, generación de bases de datos y la ingeniería inversa de bases de datos, siendo un potente generador de informes.(Headquarters 2009)
Herramienta de perfilado de datos a utilizar. Principales características.
Actualmente el perfilado de datos, no cuenta con muchas herramientas que apoyen esta rama, la más conocida es la herramienta de perfilado de GCC gprof; para su uso, es necesario compilar los programas a perfilar, al ejecutarlos se crea un archivo llamado gmon.out que puede convertirse a un formato legible mediante gprof. Una desventaja es que se necesita recompilar el programa y enlazarlo estáticamente. En
26 Lenguaje Unificado de Modelado (UML, por sus siglas en inglés, Unified Modeling Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado en la actualidad.
27 Software de sistema de control de versiones.
37 esta herramienta la usabilidad se dificulta, por lo que se eligió para el paso de análisis de datos en el proceso ETL, la novedosa herramienta Talend Open Profiler, la cual cuenta con una interfaz amigable que permite explorar las bases de datos y analizar los datos, definiendo parámetros o indicadores y recopilando estadísticas sobre sus datos en unos pocos clics. Viene con un conjunto de expresiones regulares que ayuda a identificar los datos erróneos. Además es posible crear expresiones regulares propias y usarlas en el análisis de los datos. Esta herramienta presenta diversas opciones para cada uno de los indicadores, que cambian el comportamiento del indicador a fin de obtener más información pertinente, y opciones de calidad de los datos. Otra funcionalidad que ofrece, son las estadísticas de resumen, que ayuda a descubrir el porcentaje de los datos de mala calidad, además de que los análisis que se crean se guardan automáticamente para que pueda ser ejecutado varias veces y ver cómo evoluciona la calidad. De forma general esta herramienta es fácil de usar, extensible y reusable, permite un serio perfilado de datos y manipulación de errores, así como la gestión de metadatos. Encontrándose en un ambiente código abierto, lo cual es ideal para el desarrollo del proceso ETL en cuestión.
Conclusiones del Capítulo 1.
En este primer capítulo se ha abordado de manera descriptiva y enfocada las principales características, definiciones y aspectos relacionados con el proceso de extracción, transformación y carga, teniendo en cuenta las herramientas apropiadas para la implementación de este proceso y modelado del mismo.
Subrayando los roles y responsabilidades del equipo ETL, así como en los principales desafíos que los desarrolladores pueden encontrar a su paso, tomando especial hincapié en la importancia del recorrido arduo y detallado de la transformación, limpieza y carga de datos.