Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
USO DE TRIGGERS Y SNAPSHOTS COMO TÉCNICA INCREMENTAL EN EL PROCESO DE EXTRACCIÓN, TRANSFORMACIÓN Y TRANSFERENCIA DE DATOS (ETT) EN UN DATA WAREHOUSE. TESIS MAESTRÍA EN CIENCIAS EN TECNOLOGÍA INFORMÁTICA INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY DIVISIÓN DE GRADUADOS EN ELECTRÓNICA, COMPUTACIÓN, INFORMÁTICA Y COMUNICACIONES POR MA. ELIZABETH ALCALÁ FLORES JUNIO 2003 INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY DIVISIÓN DE ELECTRÓNICA, COMPUTACIÓN, INFORMACIÓN Y COMUNICACIONES PROGRAMAS DE GRADUADOS EN ELECTRÓNICA, COMPUTACIÓN, INFORMACIÓN Y COMUNICACIONES Los miembros del comité de tesis recomendamos que la presente tesis de Ma. Elizabeth Alcalá Flores sea aceptada como requisi to parcial para obtener el grado académico de Maestra en Ciencias en Tecnología Informática. Comité de tesis: Carmen Isabel Reyes Peraza, MC Asesor Juan Carlos Lavariega Jarquín, PhD. Sinodal María Cristina Hernández Rodríguez, MC. Sinodal _________________________________________ David Alejandro Garza Salazar, PhD. Director del Programa de Graduados en Electrónica, Computación, Información y Comunicaciones. JUNIO 2003 USO DE TRIGGERS Y SNAPSHOTS COMO TÉCNICA INCREMENTAL EN EL PROCESO DE EXTRACCIÓN, TRANSFORMACIÓN Y TRANSFERENCIA DE DATOS (ETT) EN UN DATA WAREHOUSE. POR: MA. ELIZABETH ALCALÁ FLORES TESIS Presentada al Programa de Graduados en Electrónica, Computación, Información y Comunicaciones. Este trabajo es requisito parcial para obtener el título de Maestro en Ciencias en Tecnología Informática INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY JUNIO 2003 iv DEDICATORIA A mis padres, por haberme dado la vida, por su inmenso amor, porque los quiero mucho y por ser mi mayor bendición. A Marisol, a Norma, a Nora y a Thelma, por tantos momentos que hemos compartido y que sé son inolvidables para las cinco, por ser mis hermanas. A Horacio, por tener un lugar especial en mi corazón, por ser el ADMV y por contar con él en estos momentos. A mis sobrinos, Isis Vianney y Héctor Josué por siempre tener una sonrisa para mí. A Oraldo y a Susy, por ser mis mejores amigos y por los ánimos que siempre me dieron para terminar este trabajo. Dedico especialmente este trabajo a Dios, porque gracias a él tengo a tantas personas que me quieren a mi lado. v AGRADECIMIENTOS A la Lic. Carmen Isabel Reyes Peraza por su apoyo, sus consejos, su paciencia, su tiempo y sobre todo por haber aceptado ser parte de este trabajo como asesora. A la Ing. María Cristina Hernández Rodríguez y al Dr. Juan Carlos Lavariega Jarquín por las valiosas recomendaciones y observaciones que me hicieron para realizar un mejor trabajo. A mis padres, por esa confianza que tienen en mí y por el apoyo incondicional que siempre me han demostrado. A mis hermanas, por hacerme sentir cerca cuando estoy lejos y por creer en mí. A Horacio (ADMV) por estar conmigo cuando lo necesito, pero sobre todo por su amor incondicional. A todas la personas que de una u otra forma me apoyaron para la realización de esta tesis. vi RESUMEN En la actualidad, nuestra sociedad ha colocado a la información en un lugar de vital importancia, particularmente en las organizaciones ya que éstas necesitan tener un buen control y manejo de los datos para poder obtener mejores resultados en sus acciones. Como parte primordial para esto, es necesario contar con sistemas de información apropiados, dentro de ellos se encuentra el Data Warehousing. Un sistema Data Warehousing cuenta con varios procesos para su funcionamiento, uno de ellos y quizá el más importante es aquel que se encarga de la extracción, la transformación y la transferencia de los datos del sistema operacional fuente hacia el Data Warehouse, mismo que es conocido como el proceso ETT. Este proceso es uno de los que más tiempo y recursos demanda en la implementación de un Data Warehouse, y a pesar de ello existe una limitada investigación y documentación en torno a él. Para llevar a cabo el desarrollo del proceso ETT existen dos tipos de técnicas que se pueden emplear, las secuenciales y las incrementales. Las secuenciales se caracterizan por extraer, transformar y transferir todos los datos del sistema operacional fuente que son requeridos en el Data Warehouse, en cambio las incrementales se concentran en extraer, transformar y transferir únicamente las actualizaciones que surgieron en el sistema operacional fuente. La tesis que se presenta proporciona un estudio, con información necesaria, para llevar a cabo el proceso ETT con la técnica secuencial a través de archivos de datos y con la técnica incremental utilizando una combinación de Triggers y Snapshots. Además ofrece una comparación entre dichas técnicas para determinar en que medida es mejor una que otra y cuáles son los beneficios que cada una ofrece en el proceso de extracción, transformación y transferencia de datos desde un sistema operacional fuente hacia el Data Warehouse. vii TABLA DE CONTENIDO Dedicatoria ...................................................................................iv Agradecimientos..............................................................................v Resumen .......................................................................................vi Tabla de contenido ........................................................................vii Lista de Figuras.............................................................................. x Lista de Tablas .............................................................................xii CAPÍTULO 1. Introducción ................................................................. 1 1.1 Definición del problema....................................................................2 1.2 Objetivos .....................................................................................2 1.2.1 Objetivos Específicos............................................................................2 1.3 Justificación..................................................................................3 1.4 Hipótesis ......................................................................................3 1.5 Restricciones .................................................................................4 1.6 Aportaciones de la investigación..........................................................4 1.7 Organización del Documento ..............................................................5 CAPÍTULO 2. Marco Conceptual.......................................................... 6 2.1 Definiciones del Data Warehouse .........................................................6 2.2 Características del Data Warehouse ......................................................8 2.3 Ventajas del Uso del Data Warehouse....................................................9 2.4 Desventajas del Uso del Data Warehouse.............................................. 10 2.5 Procesos que conforman la operación de un Data Warehouse...................... 10 2.6 Proceso de Extracción, Transformación y Transferencia (ETT) de datos.......... 12 2.6.1 Extracción ....................................................................................... 13 2.6.2 Transformación................................................................................. 13 2.6.3 Transferencia ................................................................................... 13 2.6.4 Problemas en el proceso ETT ................................................................ 14 CAPÍTULO 3. Técnicas Empleadas en el Proceso de Extracción, Transformación y Transferenciade Datos (ETT)..................16 viii 3.1 Clasificación de las técnicas empleadas en el proceso ETT......................... 16 3.2 Técnicas Secuenciales .................................................................... 16 3.2.1 Archivos de datos. ............................................................................. 17 3.2.2 Queries distribuidos ........................................................................... 17 3.3 Técnicas Incrementales................................................................... 18 3.3.1 Snapshots ........................................................................................ 19 3.3.2 Time Stamp ..................................................................................... 20 3.3.3 Particionamiento............................................................................... 21 3.3.4 Triggers ......................................................................................... 21 3.3.5 Snapshots diferenciales ....................................................................... 22 3.3.6 Habilitación de Consultas (Queryable) ..................................................... 22 3.3.7 Monitoreo de registros ........................................................................ 22 3.4 Ejemplos para el uso de las técnicas secuenciales e incrementales ............... 23 3.4.1 Con archivos de datos. ........................................................................ 24 3.4.2 Con queries distribuidos ...................................................................... 26 3.4.3 Con Snapshots .................................................................................. 27 3.4.4 Con Triggers..................................................................................... 27 CAPÍTULO 4. Definición del Caso de Estudio: El Data Warehouse del Área de Escolar del Tecnológico de Monterrey y su Proceso ETT ....29 4.1 Los servicios escolares del Tecnológico de Monterrey en el Data Warehouse .... 29 4.2 Proceso ETT que se siguió en el caso de estudio ..................................... 32 4.2.1 Extracción y Transformación................................................................. 37 4.2.2 Transferencia ................................................................................... 39 4.3 Pruebas realizadas ........................................................................ 40 CAPÍTULO 5. Combinación de Triggers y Snapshots para el proceso ETT....42 5.1 Explicación general del Proceso ETT que se propone con una combinación de Triggers y Snapshots. ..................................................................... 42 5.2 Cambios estructurales al Data Warehouse del área de escolar del Tecnológico de Monterrey................................................................ 44 5.3 Desarrollo de Triggers, para la extracción local ...................................... 46 5.3.1 Validación ....................................................................................... 46 5.3.2 Extracción - Actualización.................................................................... 48 5.3.3 Manejo de Excepciones ....................................................................... 51 5.4 Desarrollo de Trigger para la transferencia de los datos a la tabla concentradora. ............................................................................ 51 5.4.1 String de Conexíón............................................................................. 52 5.4.2 DbLink… .......................................................................................... 52 5.5 Desarrollo de Snapshot ................................................................... 53 ix 5.5.1 Creación del Snapshot......................................................................... 53 5.5.2 Creación del Snapshot Log.................................................................... 53 5.6 Pruebas realizadas ........................................................................ 54 CAPÍTULO 6. Resultados Obtenidos....................................................56 6.1 Proceso ETT utilizando archivos de datos.............................................. 56 6.1.1 Ventajas. ........................................................................................ 57 6.1.2 Desventajas ..................................................................................... 57 6.2 Proceso ETT utilizando Snapshots y Triggers .......................................... 58 6.2.1 Ventajas. ........................................................................................ 60 6.2.2 Desventajas ..................................................................................... 60 6.3 Comparación de las dos técnicas del proceso ETT realizadas....................... 61 CAPÍTULO 7. Conclusiones y Trabajos Futuros .....................................63 7.1 Conclusiones ............................................................................... 63 7.2 Trabajos futuros ........................................................................... 65 Bibliografía ..................................................................................66 Anexos ........................................................................................68 A.1 Diccionario de datos de la tabla ST4ORGN ............................................ 68 A.2 Diccionario de datos (modelo de datos del sistema operacional que se utilizó para crear la tabla Profesor del Data Warehouse).................................... 68 A.3 Indicaciones para extraer los datos y manejo de errores ........................... 73 A.4 Código del programa para la extracción y transformación de los datos del sistema operacional del Tecnológico de Monterrey. ................................. 77 A.5 Código del programa de transferencia de datos en el Data Warehouse........... 79 A.6 Trigger SP1PERS_UPDATE................................................................. 84 A.7 Trigger SI1FACD_UPDATE................................................................. 84 A.8 Trigger SIBINST_UPDATE.................................................................. 85 A.9 Trigger SP1IDEN_UPDATE................................................................. 86 A.10 Trigger SO1DEGR_UPDATE................................................................ 87 A.11 Trigger DWH_ESCOLAR_UPDATE......................................................... 89 Vita… . .........................................................................................91 x LISTA DE FIGURAS Figura 2-1 Procesos en un Data Warehouse .................................................... 11 Figura 2-2 Operaciones involucradas en el proceso ETT...................................... 14 Figura 3-1 Proceso ETT con archivo de datos .................................................. 17 Figura 3-2 Proceso ETT con Snapshot ........................................................... 20 Figura 3-3 Estructura de las tablas de unidades organizacionales .......................... 23 Figura 4-1 Sistemas operacionales relacionados con el Modelo de datos del Data Warehouse del Área de Escolar .................................................................. 30 Figura 4-2 Modelo de datos de la base de datos operacional utilizado para la generación de la tabla Profesor del Data Warehouse....................................................... 31 Figura 4-3 Tabla Profesor del Data Warehouse del área de escolar. ....................... 33 Figura 4-4 Ejemplo del contenido del archivo de datos de Profesores..................... 38 Figura 5-1 Representación gráfica de lo que se propone para llevar a cabo el proceso ETT con una combinación del uso de Snapshots y Triggers .................................. 43 Figura 5-2 Tabla Profesor del Data Warehouse ................................................ 45 Figura 5-3 Ejemplo dela primera validación que se hace en los triggers creados para la actualización de la tabla Profesor. .............................................................. 47 Figura 5-4 Ejemplo de la segunda validación que se hace en uno de los triggers creados para la actualización de la tabla Profesor...................................................... 47 Figura 5-5 Campos que actualiza el triggers SP1IDEN_UPDATE en la tabla PROFESOR... 48 Figura 5-6 Campos que actualiza el trigger SP1PERS_UPDATE en la tabla PROFESOR.... 49 Figura 5-7 Campos que actualiza el trigger SI1FACD_UPDATE en la tabla PROFESOR.... 49 Figura 5-8 Campos que actualiza el triggers SIBINST_UPDATE en la tabla PROFESOR.... 49 Figura 5-9 Campos que actualiza el triggers SO1DEGR_UPDATE en la tabla PROFESOR . 50 Figura 5-10 Campos que actualiza el triggers SO1DEGR_UPDATE en la tabla PROFESOR 52 xi Figura 5-11 Estructura de la tabla MLOG$_DWH_PROFESOR, generada con el Snapshot Log ................................................................................................... 54 xii LISTA DE TABLAS Tabla 3-1 Extracción de cambios utilizando time stamp ..................................... 21 Tabla 4-1 Diccionario de datos de la estructura Profesor. ................................... 34 Tabla 4-2 Origen de los datos para la tabla Profesor ......................................... 35 Tabla 4-3 Ejemplo de dónde y cómo obtener los posibles valores para el campo CLAVE_CAMPUS de la tabla Profesor del Data Warehouse ................................... 36 1 CAPÍTULO 1. INTRODUCCIÓ N El Data Warehouse no es un producto sino un conjunto de procesos, para consolidar y administrar datos de variadas bases de datos fuentes, con el propósito de responder preguntas de negocios, así como tomar decisiones de una manera más rápida y sencilla que antes no era posible. El Data Warehouse ha evolucionado de tal forma que se ha convertido en una clase de aplicación popular en los negocios, debido a que intenta responder a la compleja necesidad de obtener información útil, sin sacrificar el rendimiento de las aplicaciones operacionales; es decir, cumple con las necesidades actuales y futuras para el manejo, explotación y administración de la información. Los procesos principales que conforman la operación de un Data Warehouse son los siguientes: 1. Obtención de los datos operacionales: origen de los datos. 2. Extracción de los datos: selección sistemática de los datos operacionales que serán usados para poblar el Data Warehouse. 3. Transformación de los datos: proceso de cambio en los datos operacionales para lograr los objetivos de orientación a la toma de decisiones del Data Warehouse. 4. Transferencia o carga de los datos: inserción de los datos en el Data Warehouse. 5. Herramientas de acceso al Data Warehouse. Los procesos 2, 3 y 4, conforman lo que se conoce como el proceso de Extracción, Transformación y Transferencia de datos, desde su origen en los sistemas operacionales hasta su destino en el Data Warehouse, estos tres procesos se identifican mejor como el proceso ETT por sus siglas, es en este proceso en donde se lleva a cabo la extracción y transformación de los datos que son necesarios del sistema operacional fuente y la transferencia de los mismos hacia el Data Warehouse. Este proceso es el que más tiempo y recursos demanda en el proyecto, y en el que se enfoca este trabajo de tesis. Las técnicas para realizar el proceso ETT pueden clasificarse en dos tipos, secuenciales que se caracterizan por extraer, transformar y transferir todos los datos del sistema operacional fuente que son requeridos en el Data Warehouse e incrementales que se concentran en extraer, transformar y transferir únicamente las actualizaciones que surgieron en el sistema operacional fuente. Las primeras requieren más inversión de tiempo para lograr su propósito, mientras que las segundas pueden ser más rápidas, siempre y cuando se empleen adecuadamente y se cuente con las capacidades necesarias para realizarlas. 2 1.1 Definición del problema En la actualidad toda organización requiere un uso adecuado de la información, por lo que la implementación de un Data Warehouse es cada vez más frecuente. Es por ello que resulta necesario contar con documentación que ayude a realizar dicha implementación. Una de las partes más importantes en un proyecto Data Warehouse es el proceso ETT encargado de extraer los datos, transformarlos y transferirlos de uno o varios sistemas operacionales fuente al Data Warehouse. Sin embargo, a pesar de lo anterior, existe una limitada investigación y estudios sobre este tema, esto conlleva a la elección de una técnica para realizar la extracción, transformación y transferencia de datos sin haber hecho una evaluación previa del rendimiento y/o los beneficios que ésta ofrece. En otros casos se decide adquirir un software comercial para realizar dichas tareas lo cual representa una gran inversión económica, que independientemente de que se cuente con los recursos económicos para ello, es un gasto innecesario. 1.2 Objetivos El objetivo de esta tesis es proporcionar un estudio con información necesaria para utilizar los archivos de datos y una combinación de Triggers y Snapshots como técnicas de extracción, transformación y transferencia de datos en un Data Warehouse. Además de determinar en que medida el uso de la combinación de Snapshots y Triggers es más eficiente y ofrece mejores resultados que el uso de archivos, como técnicas incrementales. 1.2.1 Objetivos Específicos Los objetivos específicos a cumplir en el trabajo presentado son: ? Realizar el proceso ETT, del Data Warehouse del área de escolar del Tecnológico de Monterrey, con técnicas incrementales usando una combinación de Triggers y Snapshots, así como archivos de datos para hacer una comparación entre las dos técnicas. ? Definir las ventajas, desventajas y características que ofrecen el uso de la combinación de Triggers y Snapshots y el uso de archivos de datos en el proceso ETT. ? Llevar a cabo la investigación de acción, utilizando la base de datos de Escolar del Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Monterrey. 3 ? Desarrollar los programas computacionales en lenguaje Pro*C para extraer, transformar y transferir los datos de los sistemas operacionales fuente a una de las entidades del área de escolar del Data Warehouse del Tecnológico de Monterrey. ? Crear los Triggers y Snapshots necesarios para extraer, transformar y transferir los datos del sistema operacional al Data Warehouse de manera incremental, para una de las tablas del Data Warehouse del Tecnológico de Monterrey. 1.3 Justificación Es evidente que estamos en la era de la información, es decir, todo gira en torno a ésta; ello implica que se debe tener el mejor manejo de la misma para obtener beneficios óptimos. El proceso de extracción, transformación y transferencia de datos en un proyecto Data Warehouse es de mucha importancia debido, precisamente, a que los datos son la materia prima principal en dicho proyecto, tener los datos correctos en el momento correcto en el Data Warehouse es lo que se requiere para que la toma de decisiones sea eficiente. Este proceso aún no se realiza mediante una técnica estándar y son pocos los estudios que se han hecho en torno al tema, a pesar de que éste es una parte importante en el proyecto Data Warehouse [Burleson, 1997]. Con base en el señalamiento de Burleson sobre la escasa existencia de estudios que ayuden en el desarrollo del proceso ETT, y la propia experiencia al trabajar con dicho proceso de un Data Warehouse, se manifestó la inquietud e interés por realizar un estudio sobre las técnicas incrementales usadas en el proceso mencionado, tomando en cuenta principalmente como punto de comparación una técnica con uso de la combinación de Triggersy Snapshots y una técnica con el uso de archivos de datos. Con lo anterior se pretende conocer las características, ventajas y desventajas que cada una de las técnicas analizadas puede ofrecer, además de cómo pueden ser utilizadas en un Proyecto Data Warehosue. 1.4 Hipótesis El uso de una combinación de Snapshots y Triggers como técnica incremental en el proceso (ETT) de extracción, transformación y transferencia de datos de los sistemas operacionales fuente al Data Warehouse, es mejor en cuanto a tiempo de procesamiento en comparación con el uso de los archivos de datos, en un esquema de múltiples bases de datos. 4 1.5 Restricciones La tesis que se presenta considera algunas restricciones, debido a que el proceso de ETT en un proyecto Data Warehouse es extenso y su desarrollo depende de las capacidades que los sistemas operacionales y el Data Warehouse tengan. Así pues, las restricciones que será preciso tener en cuenta son: ? Únicamente se realizará el estudio del proceso ETT y las técnicas para llevarlo a cabo en una parte de un proyecto Data Warehouse. ? En este documento no se analizarán todas las técnicas existentes de extracción, transformación y transferencia de datos. ? La comparación de dos técnicas será únicamente entre el uso de archivos de datos y uso de Snapshots en combinación con el uso de Triggers. ? La investigación de acción se reduce a una parte del Data Warehouse que se está implementando para el área de Servicios Escolares en el Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Monterrey. ? La base de datos que funge como sistema operacional fuente en el Data Warehouse mencionado anteriormente, se encuentra en plataforma Oracle y cuenta con las siguientes características. o Oracle8 Enterprise Edition Release 8.0.6.3.0 o PL/SQL Release 8.0.6.3.0 ? La base de datos en el Data Warehouse que se utilizará también está en plataforma Oracle, pero con las siguientes características. o Oracle8 Enterprise Edition Release 8.0.6.0.0 o PL/SQL Release 8.0.6.0.0 1.6 Aportaciones de la investigación Con la culminación de esta tesis se pretende generar las siguientes aportaciones: 1. Obtener una técnica incremental que sea una solución factible de implementar en el proceso ETT, para llevar a cabo la extracción, transformación y transferencia de datos de una base de datos operacional a un Data Warehouse, a través de una combinación que haga uso de Snapshots y Triggers. 2. La técnica incremental que se proponga con el uso de una combinación de Snapshots y Triggers para la plataforma Oracle sirva como base para dar solución en otras plataformas. 3. Hacer la comparación entre el proceso ETT utilizando archivos de datos y el que se propone utilizando una combinación de Snapshots y Triggers. 4. Los encargados del Data Warehouse en el Tecnológico de Monterrey podrán contar con un estudio sobre la extracción, transformación y transferencia de datos de una base de datos operacional a un Data Warahouse usando la técnica propuesta, que fue realizado exclusivamente para el proyecto de Data Warehouse del área de escolar del Tecnológico de Monterrey. 5 1.7 Organización del Documento El presente documento de tesis, está estructurado con siete capítulos, el primero de ellos constituye la parte introductoria a todo el documento, enunciando el planteamiento del problema, los propósitos y justificación de este estudio, así como las hipótesis, restricciones y aportaciones. En el capítulo dos se incluye una breve introducción de lo qué es el Data Warehouse, diferentes definiciones, características, ventajas y desventajas que ofrece un Data Warehouse, así como la descripción del proceso de Extracción, Transformación y Transferencia (ETT) de datos y los problemas que éste puede presentar en un proyecto de Data Warehouse. La clasificación y descripción de las técnicas empleadas en el proceso ETT y algunos ejemplos de ellas forman el capítulo tres. El capítulo cuatro trata sobre la definición, documentación técnica y de ejecución del caso de estudio, como lo es: las bases de datos involucradas y la forma en que se realiza el proceso ETT actualmente en el Data Warehouse del Tecnológico de Monterrey. En el capítulo cinco se describe el proceso ETT que se llevo a cabo con el uso de la técnica incremental propuesta, es decir, usando la combinación de Snapshots y Triggers. Los resultados obtenidos con la implementación de la técnica usando la combinación de Triggers y Snpashots y de la técnica usando archivos de datos en el proceso ETT, así como la comparación de los resultados de ambas técnicas, están concentrados en el capítulo seis. Por último, en el capítulo siete se plasman las conclusiones generales que se obtuvieron de la realización del trabajo de tesis y el planteamiento de trabajos futuros que se pudieran derivar del trabajo presentado. 6 CAPÍTULO 2. MARCO CONCEPTUAL Las necesidades de información hoy en día han variado. La disponibilidad de gran cantidad de información es de vital importancia para los negocios, ya que las decisiones para el futuro se suelen tomar con base a dicha información. Los procesos que obtienen información con la estructura adecuada (resumidos, globalizados, etc.) son sistemas que, a priori, involucran un alto costo en consumo de recursos, dado el gran volumen de datos sobre el que actúan y el tiempo de procesamiento que conlleva la obtención de las nuevas estructuras. Está claro que las denominadas "bases de datos operacionales" o "de producción" de una empresa, no se pueden ver afectadas en sus tiempos de respuesta por dicho consumo en recursos, esto, unido al hecho de que la estructura de las bases de datos de producción puede no ser la opción óptima para la obtención de la información deseada, obliga a la aparición de una nueva estructura en la información: el Data Warehouse, el cual consiste en una "réplica masiva de los datos" disponibles en las bases de datos operacionales, de tal forma que su estructura ya no responde a las necesidades del modelo relacional puro, puesto que en la base de datos del Data Warehouse no se van a efectuar las operaciones que se hacen sobre las base de datos operacionales que le dieron origen. Dado lo anterior ya no existe la necesidad de mantener una estructura de información que esté normalizada, lo que supone un ahorro en el fraccionamiento de la información y en las costosas operaciones de recuperación, y al mismo tiempo, se puede tener una "réplica" conjunta de todas las bases de datos operacionales de la organización. Así pues tras las dificultades de los sistemas tradicionales para satisfacer las necesidades de información, surge el concepto de Data Warehouse como solución. Este término establecido por Bill Inmon, se traduce literalmente como almacén de datos. No obstante, si el Data Warehouse fuese exclusivamente un almacén de datos, los problemas seguirían siendo los mismos que en los Centros de Información. El presente capítulo tiene como objetivo principal dar una breve introducción de lo que es un Data Warehouse, mencionando diferentes definiciones, ventajas, desventajas, así como los procesos que lo conforman. De igual manera se hace una descripción del proceso de Extracción, Transformación y Transferencia (ETT) de datos dentro de un proyecto Data Warehouse y los problemas que se pueden presentar en este proceso. 2.1 Definiciones del Data Warehouse El concepto de Data Warehousing surgió a mediados de los 80’s, y en esencia pretendía proporcionar un modelo arquitectónico para el flujo de datos de los sistemas operacionales hacia los ambientes de soporte en la toma de decisiones, al mismo tiempo 7 era un intento por solucionar los diversos problemas asociados con este flujo y con los altos costos inmersos en él [Manning, 1999]. Existen muchas definiciones de Data Warehouse, que han ido surgiendocon el paso de los años. En opinión de algunos autores [Inmon, Gupta, Jonhson, Mayer] un Data Warehouse puede definirse de muchas maneras, la siguiente definición toma las puntos más importantes que cada uno de los autores mencionados considera como Data Warehouse. Un Data Warehouse es una colección de datos orientados a temas específicos, integrados, no volátiles, variantes en el tiempo, organizados para soportar necesidades empresariales, transformados lógica y físicamente a partir de varias aplicaciones fuentes con el fin de proveer beneficios empresariales, eliminar una gran cantidad de datos inútiles y no deseados, y cubrir todos los aspectos de los procesos, productos y consumidores de la compañía; en otras palabras, es una estructura de base de datos que concentra información de manera detallada o resumida que puede provenir de múltiples fuentes de datos, que está orientada a servir para el proceso de toma de decisiones, y que se encuentra almacenada en una forma fácil de comprender por los usuarios finales. Los datos están estructurados de tal forma que permiten hacer más fácil y efectiva su administración, acceso y análisis. Castañeda [2001], menciona que las definiciones del Data Warehouse lo presentan de una u otra manera como una solución que se basa en: 1. Datos que pueden provenir de diferentes y variadas fuentes de información. 2. Datos que ayudan a establecer la situación de la empresa desde una perspectiva histórica. 3. Datos que se convierten en información básica para la toma de decisiones de la organización 4. Datos que deben de tener una presentación ideal para su entendimiento y alineación con los objetivos de la empresa, permitiendo así la generación del conocimiento. La innovación de la Tecnología de Información dentro de un ambiente Data Warehousing, puede permitir a cualquier organización hacer mejor uso de los datos, tratándolos como ingredientes clave para hacer más efectivo el proceso de toma de decisiones. Las organizaciones tienen que aprovechar sus recursos de información para crear la información de la operación del negocio, pero deben considerarse las estrategias tecnológicas necesarias para la implementación de una arquitectura completa de Data Warehouse. Actualmente el Data Warehouse es el centro de atención de las grandes instituciones, porque provee un ambiente para que éstas hagan un mejor uso de la información que es administrada por diversas aplicaciones operacionales. 8 2.2 Características del Data Warehouse El Data Warehouse puede verse como un lugar en donde están almacenados todos los datos necesarios para realizar las funciones de administración de la empresa, de manera que puedan utilizarse fácilmente según se necesite. El contenido de los datos, la organización y la estructura son dirigidos a satisfacer las necesidades de información. A continuación se dan a conocer algunas de las características más importantes de un Data Warehouse [Solis], [Inmon, 1996]: ? Contiene datos históricos, resumidos y consolidados: o Bases de datos muy grandes. o Datos de fuentes heterogéneas que requieren de integración para formar parte del Data Warehouse. ? Se puede realizar un procesamiento intensivo de búsquedas-consultas: o Dirigidas por tiempo. o Modelos multidimensionales y nuevas operaciones como la CUBE* ? Es orientado al tema: o Los datos se organizan de acuerdo al tema, no a la aplicación, por ejemplo una compañía de seguros podría organizar sus datos por cliente, premios, y reclamaciones, en lugar de por diferentes productos (automóviles, vida, etc.). o Los datos organizados por sujetos contienen sólo la información necesaria para los procesos de soporte en la toma de decisiones. ? Es integrado: o Cuando los datos residen en muchas aplicaciones separados por los distintos entornos operacionales, la descodificación de éstos es a menudo inconsistente. Por ejemplo, en una aplicación, la palabra género podría codificarse como "m" y "f" en otra como "0" y "1"; cuando los datos fluyen de un entorno operacional a un entorno de Data Warehouse, estos asumen una codificación consistente, por ejemplo género siempre se transformaría a "m" y "f". ? Tiene variación-temporal: o El Data Warehouse contiene un lugar para guardar datos con una antigüedad de 5 a 10 años, o incluso más antiguos, para poder ser usados en comparaciones, tendencias y previsiones. Estos datos no se modificarán. o Se pueden establecer pronósticos para planificar esfuerzos. ? No es inestables: o Los datos no serán modificados o cambiados de ninguna manera una vez que han sido introducidos en el Data Warehouse, solamente podrán ser cargados, leídos y/o accedidos. ? Ayuda a realizar la toma de decisiones estratégicas a mediano y largo plazo. ? Permite que la información de administración sea accesible, correcta, uniforme y actualizada. ? Acceso interactivo e inmediato a información estratégica de un área de negocios. * Operación utilizada para calcular subtotales de todas las posibles combinaciones de un grupo de dimensiones y además calcular un gran total [ORACLE 8i]. 9 2.3 Ventajas del Uso del Data Warehouse Es necesario conocer las ventajas que puede ofrecer un Data Warehouse para justificar la elección de un proyecto de este tipo, a continuación se mencionan algunas de las más importantes que describe [Díaz]: ? La implementación de un Data Warehouse permite centralizar todos los datos de la organización dentro de un único almacenamiento. ? La administración de un Data Warehouse es más eficiente que administrar varios Data marts*. ? El uso de un Data Warehouse permite identificar nuevas oportunidades de negocios. ? En un Data Warehouse se obtienen respuestas en tiempos razonables. ? El Data Warehouse permite analizar desde una perspectiva en el tiempo, con la información histórica que se brinde, proporcionando la capacidad de aprender de los datos del pasado y de predecir situaciones futuras en diversos escenarios. ? Permite tener fuentes externas para ayudar con la información que se requiere. ? La información proveniente de fuentes operacionales es transformada y limpiada para lograr consistencia. ? Simplifica dentro de la empresa la implantación de sistemas de administración integral de la relación con el cliente. ? Menor costo en la toma de decisiones: se suprime el despilfarro de tiempo que se producía al intentar ejecutar consultas de datos largas y complejas en las bases de datos operacionales, las cuales están diseñadas específicamente para transacciones cortas y sencillas. ? Mayor flexibilidad ante el entorno: el Data Warehouse convierte los datos operacionales en información relacionada y estructurada que genera el "conocimiento" necesario para la toma de decisiones. Esto permite establecer una base única del modelo de información de la organización, que puede dar lugar a una visión global de la información en base a los conceptos de negocio que tratan los usuarios. Además, aporta una mejor calidad y flexibilidad en el análisis del mercado, y del entorno en general. ? Mejor servicio al cliente: lo que repercute en la relación directa con el cliente, que como se sabe, es uno de los pilares básicos en los que descansa cualquier organización. De hecho, el que un Data Warehouse implique una mayor flexibilidad ante el entorno tiene una consecuencia directa en una mayor capacidad para responder a las necesidades de los clientes. ? Rediseño de procesos: ofrecer a los usuarios una capacidad de análisis de la información de su negocio que tiende a ser ilimitada y permite con frecuencia obtener una visión más profunda y clara de los procesos de negocio propiamente dichos, lo que a su vez permite obtener ideas renovadoras para el rediseño de los mismos. ? La capacidad de decisiones distribuidas es cada vez más necesaria para las empresas,y es uno de los aspectos en los que el Data Warehouse puede aportar una contribución esencial. * Los Data Marts generalmente se conocen como un componente del Data Warehouse, están enfocados en un conjunto de datos específicos o en un proceso del negocio [Hammergren, 1996]. 10 La ventaja principal de este tipo de sistemas se basa en la estructura de la información. Este concepto significa el almacenamiento de información homogénea y fiable, en una estructura basada en la consulta y el tratamiento jerarquizado de la misma, y en un entorno diferenciado de los sistemas operacionales. 2.4 Desventajas del Uso del Data Warehouse Así como es importante conocer las ventajas de un Data Warehouse, también lo es conocer cuáles pueden ser algunas de sus desventajas. ? Realizar una consulta muy compleja en un Data Warehouse con una base de datos muy grande puede ser un proceso lento, sobre todo si no se cuenta con una plataforma paralela y una capacidad de consultas paralelizadas. ? La implementación de un Data Warehouse requiere de un equipo considerable de analistas, de desarrolladores, de hardware, de software, de tiempo y de dinero. ? El tiempo de desarrollo e implementación de un Data Warehouse puede durar muchos meses o más de un año. ? La construcción y manejo final de un Data Warehouse por parte de los usuarios puede ser muy complejo y difícil sino se cuenta con la capacitación y las herramientas adecuadas. 2.5 Procesos que conforman la operación de un Data Warehouse Es importante considerar los procesos que conforman la operación de un Data Warehouse, ya que estos son los que hacen posible la existencia del mismo. A continuación se describen dichos procesos clave en la administración y operación de un Data Warehouse: 1. Obtención de los datos operacionales: origen de los datos. 2. Extracción: obtener los datos de las distintas fuentes tanto internas como externas, para poblar el Data Warehouse. 3. Transformación: filtrar, limpiar, depurar, homogeneizar y agrupar los datos para lograr los objetivos orientados a la toma de decisiones. 4. Transferencia y/o Carga: organizar y actualizar los datos en el Data Warehouse. 5. Explotación: extraer y analizar los datos en los distintos niveles de agrupación del Data Warehouse. Desde el punto de vista del usuario, el único proceso visible es la explotación del Data Warehouse, aunque el éxito del Data Warehouse radica en los procesos 2, 3 y 4, que alimentan la información del mismo, y suponen el mayor porcentaje de esfuerzo (aproximadamente un 80%) a momento de desarrollar un Data Warehouse. 11 En la figura 2-1, se muestran gráficamente los procesos que se llevan a cabo en un proyecto Data Warehousing, en ésta se puede ver que los datos operaciones pueden tener su origen en fuentes internas y/o externas, ya sean sistemas operacionales corporativos, sistemas operacionales departamentales u otros; los datos operacionales son los que normalmente están presentes en las organizaciones y es a partir de los cuales se realiza la captura de datos que se contemplará en el Data Warehouse. De igual manera se pueden ver las tres funciones u operaciones clave en el proceso ETT, mostradas en orden, la Extracción, la Transformación y la Transferencia de los datos operacionales al Data Warehouse. Y por último se ve la Explotación de los datos existentes en el Data Warehouse. Figura 2-1 Procesos en un Data Warehouse Las tareas de Extracción, Transformación, Transferencia (ETT) o carga de datos requieren de mucho tiempo en un proyecto de Data Warehouse; en estas tareas es donde se demanda el mayor esfuerzo [ORACLE]. El proceso de Explotación, también podría denominarse como un componente de administración, y los servicios que ofrece incluye un servicio de mantenimiento de datos y un servicio de distribución para exportar datos del Data Warehouse a servidores de bases de datos descentralizadas, y a otros sistemas de soporte en la toma de decisiones de los usuarios. El componente de administración también ofrece servicios de seguridad (archivo, respaldos, recuperación) y monitorización. El Data Warehouse no produce resultados en forma mágica. Los administradores de empresas y los analistas deben acceder y recuperar los datos del Data Warehouse y convertirlos en información y en hechos. Estos hechos conforman los cimientos de una base de conocimientos que sirve para determinar la salud de la empresa y la dirección futura del negocio. Como en las granjas, los usuarios sólo cosecharán la información que se pueda derivar de los datos que sembraron en el Data Warehouse, y sólo mediante el uso de herramientas adecuadas, algunas de ellas son: ? Las de acceso y recuperación. ? Las de reportes de base de datos Extracción Transform ación Transferencia Data Warehouse Ex pl ot ac ió n Fuentes Externas Fuentes Interna s Da to s O pe ra ci on al es Proceso ETT 12 ? Las de análisis ? Las de data mining (minería de datos). Uno de los retos al cosechar un Data Warehouse consiste en no convertir montículos de información en montañas de datos. Es fácil caer en la trampa de "entre más, mejor". No es esencial conocer todos los hechos, sólo los cruciales. Herramientas de soporte de decisiones es el término genérico para referirse a las aplicaciones y herramientas del Data Warehouse que se emplean para recuperar, manipular y analizar los datos, y para presentar después los resultados. Estas herramientas se usan en dos modalidades: verificación y descubrimiento. En la modalidad de verificación, el usuario empresarial crea una hipótesis -una cuestión empresarial- e intenta confirmarla accediendo a los datos en el Data Warehouse. Las herramientas que implementan la modalidad de verificación son de consulta, de sistemas de reporte y de análisis multidimensional. En la modalidad de descubrimiento, las herramientas intentan descubrir características en los datos como patrones de compra o la asociación entre la adquisición de artículos diferentes. En la modalidad de descubrimiento, o eureka, el usuario empresarial no conoce ni sospecha los patrones y asociaciones descubiertos. La herramienta de Data Mining es un ejemplo de la modalidad de descubrimiento. Desde la perspectiva de disponibilidad de herramientas, las dos modalidades de verificación y descubrimiento se clasifican en tres enfoques: Procesamiento Informático, Procesamiento Analítico y Data Mining*. 2.6 Proceso de Extracción, Transformación y Transferencia (ETT) de datos. La extracción, transformación y transferencia de los datos de los sistemas operacionales fuente al Data Warehouse forman el proceso mejor conocido como ETT en un proyecto Data Warehouse. El propósito del Data Warehouse de servir como un medio para poder analizar el negocio, hace latente la necesidad mantener actualizados los datos regularmente, en otras palabras, el proceso ETT no se realiza una sola vez, constantemente se lleva a cabo, razón por la cual frecuentemente se ha considerado como una tarea difícil en el proyecto del Data Warehouse. En el proceso ETT se encuentran los pasos por los que atraviesan los datos para ir desde el sistema operacional (fuente de datos utilizada) hasta el Data Warehouse. La extracción es lo primero que se hace, después en algunas ocasiones se requiere de la transformación y por último se lleva a cabo la Transferencia de los datos. * es al análisis de la información con el fin de descubrir patrones, relaciones, reglas, asociaciones o incluso excepciones que sean útiles para la toma de decisiones [Estivill, 1997]. 13 2.6.1 Extracción La extracción se refiere al mecanismo por medio del cual los datos operacionales son leídos desde su fuente original. Diseñar y crear el proceso de extracciónusualmente es la tarea que más tiempo consume en el proceso ETT y por supuesto en el proyecto de Data Warehouse completo. Los sistemas operacionales fuente pueden ser muy complejos, por lo que determinar cuales datos son necesarios para el proyecto en ocasiones es una tarea difícil, sobre todo porque dichos sistemas no pueden ser modificados, su accesibilidad y desempeño no pueden ser afectados para satisfacer las necesidades del proceso de extracción del Data Warehouse [Oracle]. 2.6.2 Transformación La transformación (también conocida como limpieza) es la etapa por la que algunas veces pueden atravesar los datos de las distintas fuentes para ser estandarizados, normalizando y fijando una estructura para ellos en el Data Warehouse. En algunas ocasiones esta operación no es requerida debido a que en e Data Warehouse se espera el dato tal y como se encuentra en el sistema operacional. Algunas de tipos de transformaciones que comenta [Flower, 2003] que pueden ser aplicadas, son las siguientes: ? Tipo de coerción, es cuando se necesita hacer una transformación en los datos porque el tipo de columna en las tablas del Data Warehouse son diferentes del tipo de columna en los sistemas operacionales. Por ejemplo, supóngase que existen dos sistemas operacionales fuentes que tienen información sobre productos, en uno de los sistemas el identificador del producto es de tipo char(10) porque los códigos usados son alfanuméricos y en el otro sistemas está definido como numérico. Esto quiere decir que el dato en el campo numérico deberá ser transformado a un dato alfanumérico. ? Manipulación de cadenas (strings), es cuando se requiere aplicar operaciones de concatenación, eliminación de espacios (trim), convertir a mayúsculas (up case), etc., en los datos. ? Cálculos matemáticos, es cuando se hace uso de las funciones aritméticas. ? Asignación condicional, se refiere a derivar el valor para los campos de las tablas de Data Warehouse a través de la aplicación de ciertas condiciones a los datos de los sistemas operacionales. ? Agregación, es cuando se necesita un dato resultado de generar una consulta con una función de agregación. 2.6.3 Transferencia La transferencia literalmente consiste en el acto de mover los datos de un sistema operacional a otro; en el ambiente del Data Warehouse consiste básicamente en llevar 14 (remota o localmente) los datos leídos y estandarizados (extraídos y transformados) al Data Warehouse. Una forma gráfica de ver las operaciones involucradas en el proceso ETT es la mostrada en la figura 2-2, como se menciono anteriormente, la transformación de los datos puede o no existir ya que depende de cómo se encuentren los datos en las bases de datos fuente y la necesidad de integración. Figura 2-2 Operaciones involucradas en el proceso ETT 2.6.4 Problemas en el proceso ETT Al ser el proceso ETT uno de los más importantes en un proyecto Data Warehouse, es necesario tener presente los problemas que pueden ocurrir en éste. El proceso ETT tiene como meta llevar los datos del sistema operacional fuente al Data Warehouse; para lograrlo es necesario que tanto la extracción como la transformación y la transferencia de los datos se lleve a cabo satisfactoriamente, sin embargo [Montolio, 2001] argumenta que esto plantea una serie de problemas que son inherentes a dicho proceso, mismos que a continuación se describen. ? El primero de estos problemas es el de la integración de los datos, dado que una situación normal en este entorno es que cada una de las bases de datos operacionales esté soportada por manejadores de bases de datos de diferentes fabricantes, esto puede provocar que un atributo sea de tipo diferente en cada uno de los sistemas operacionales, aún cuando los sistemas provengan del mismo fabricante se puede presentar lo anterior, debido a que las bases de datos pudieron haber sido diseñadas e implementadas por distintos equipos/departamentos y en Extracción Sistemas Operacionales Datos externos Transformación Transferencia Data Warehouse 15 diferentes fechas. Es evidente que, por trivial que sea, dicha integración supone un trabajo extra. ? El segundo de los problemas que conlleva este proceso es elegir el momento en que se produce la carga o transferencia al Data Warehouse. Lo importante en este tema se centra en que la extracción se debe realizar en un momento en que todas las bases de datos estén en un estado “estable” de tal forma que se minimicen las posibles inconsistencias, que por otra parte, de producirse, deben detectarse y corregirse en este punto, ya que es el único en el que se debe permitir la actualización. ? Asociado a lo anteriormente expuesto, está el hecho de que para realizar la carga o transferencia de datos, no se puede parar la operación diaria de la organización porque normalmente es fundamental para su buen funcionamiento. Esto nos lleva a diseñar y preparar los procedimientos necesarios para minimizar el tiempo destinado a dichas actividades. Todo ello lleva a que, en general, se realice una carga en un área temporal sobre la que sí está permitido hacer transformaciones asociadas a la integración y comprobación de coherencia anteriormente mencionadas. ? Adquiere especial importancia también, la existencia de un buen diccionario de datos o “metadatos” ya que es absolutamente necesario conocer, de la estructura final del Data Warehouse, todos los detalles posibles. Esto quiere decir que un diccionario de datos de estas características no puede ser un mero registro de las características principales de los atributos, sino que debe contemplar todas las especificaciones tales como el atributo del que proviene, de qué base de datos, qué transformación ha sufrido, por qué es necesario para el Data Warehouse, etc. ? Por último hay que tener en cuenta detalles de más bajo nivel que pueden afectar al proceso de carga debido a las características del sistema usado. Así, una mejora en la carga la constituye el hecho de eliminar completamente los índices de la base de datos para pasar a proceder con la carga y, finalmente volver a generar los índices (ya que de mantenerse los índices, lo normal es que por cada registro que se inserta en una tabla el manejador de bases de datos debe proceder a reordenar todos los índices). 16 CAPÍTULO 3. TÉCNICAS EMPLEADAS EN EL PROCESO DE EXTRACCIÓ N, TRANSFORMACIÓ N Y TRANSFERENCIA DE DATOS (ETT) El proceso ETT es la clave para el éxito de un Data Warehouse, es por ello que se considera importante que la elección de las técnicas a usar en dicho proceso esté en función principalmente de la plataforma en la que se encuentren las bases de datos, tanto de los sistemas operacionales fuente como del Data Warehouse, del volumen y de la volatilidad de los datos [Hammergren, 1996]. Como parte de este capítulo se describen algunas de esas técnicas empleadas en el proceso ETT, dando una breve explicación y algunos ejemplos de técnicas secuenciales y técnicas incrementales. 3.1 Clasificación de las técnicas empleadas en el proceso ETT Es muy poca la documentación publicada que existe en cuanto a la forma en que se pueden clasificar las técnicas usadas en el proceso ETT, una clasificación general de éstas es separarlas en técnicas secuenciales y en técnicas incrementales [Palomar, 2002]. ? Las técnicas secuenciales son aquellas en las que se extraen y transfieren todos los datos del sistema operacional fuente que son requeridos para el Data Warehouse, es decir se obtienen todos los datos sin importar si hubo alguna actualización o no en ellos. ? Las técnicas incrementales son las que se concentran únicamente en la extracción y transferencia de los datos que sufrieron alguna actualización en el sistema operacional fuente y que tiene que ser actualizado en el Data Warehouse. 3.2 Técnicas Secuenciales De acuerdo a [ORACLE 8i], existendos categorías para las técnicas secuenciales del proceso ETT. ? Las técnicas para extraer datos de un sistema operacional colocándolos dentro de un archivo (por ejemplo descargas de datos y exportaciones a través de programas computacionales que generan archivos de datos). 17 ? Las técnicas para extraer datos de un sistema operacional y transferirlos directamente al Data Warehouse (por ejemplo gateway y queries distribuidos). 3.2.1 Archivos de datos. La extracción y transferencia de datos con archivos puede realizarse con queries hechos en SQL (Standard Query Language) dirigiendo la salida a un archivo de datos, los queries obtendrán los datos que se encuentren en las tablas indicadas y que cumplan con las condiciones dadas. Otra forma de obtener los datos es con programas computacionales, en un lenguaje que sea soportado por la plataforma, como se puede ver en la figura 3-1 esta técnica consiste en hacer un programa para la extracción de los datos operacionales de las fuentes existentes y la transformación de los que lo requieran, dichos datos son guardados en un archivo plano, el cual se transfiere a la máquina del Data Warehouse, a través de otro programa computacional se hace la carga de los datos, usando el archivo que resulto con el primer programa. El primer programa, obviamente se ejecuta en la o las bases de datos fuente y el segundo en la base de datos del Data Warehouse. Figura 3-1 Proceso ETT con archivo de datos 3.2.2 Queries distribuidos La técnica de queries distribuidos consiste en extraer datos de una tabla del sistema operacional fuente y transferirlos directamente a otra tabla en el Data Warehouse. Éste es quizá el método más simple para mover datos entre las bases de datos involucradas, porque se combina la extracción y la transferencia en un sólo paso, y por otra parte, requiere un mínimo de programación. Para hacer uso de los queries distribuidos, ambas bases de datos, la del sistema operacional fuentes y la del Data Warehouse, deben de tener la capacidad de accesar tablas en una base de datos diferente. Programa de extracción y transformación Transferencia del archivo generado Programa de transferencia y/o carga Data Warehouse Lee los datos del archivo Extracc_datos.dat Genera el archivo Extracc_datos.dat Datos operacionales fuente 2 Datos operacionales fuente 1 18 3.3 Técnicas Incrementales Las técnicas incrementales permiten reducir considerablemente el tiempo destinado, tanto para la extracción como para la transferencia de datos, esto se debe a que sólo se extraen, se transforman y se transfieren los datos que han tenido alguna modificación, o que son nuevos para el Data Warehouse [Fiore, 1998]. De ahí que, resulta deseable el uso de técnicas incrementales como parte del proceso ETT. Para [Bokun, 1998] existen dos categorías de técnicas incrementales, él las nombra captura estática e incremental de cambios en los datos. ? Las técnicas para la captura estática de los datos que han cambiado, son las que extraen los datos en un tiempo determinado. A veces todos los datos son recuperados, pero solamente un subconjunto será utilizado. Para realizar este tipo de técnicas se pueden utilizar: Snapshots, Timestamp, Comparación de Archivos también conocida como Snapshots Diferenciales, Partitioning, Monitoreo de registros, entre otros. ? Las técnicas para la captura incremental de los datos que han cambiado, son técnicas que dependen del tiempo para capturar los cambios en un sistema operacional, son la mejor opción cuando los cambios en los datos son significativamente más pequeños que el tamaño del conjunto de datos en un periodo de tiempo especifico. Estas técnicas son más complejas que las anteriores, porque están más relacionadas con los DBMS (Sistema manejador de Bases de datos) o con el software operacional que actualiza los DBMS. Para llevar a cabo este tipo de técnica se utilizan: captura asistida por aplicaciones, captura basada en triggers y captura de registro de transacciones. El uso de técnicas incrementales para detectar y extraer los cambios en los datos del sistema operacional fuente, depende de la capacidad de soporte que tenga los propios sistemas, tanto el operacional como el Data Warehouse [Adiwijaya, 1997]. Previo a utilizar una técnica incremental por lo menos debe existir una extracción y transferencia completa de los datos operacionales para alimentar el Data Warehouse, por lo que parece necesario hacer uso de una técnica secuencial antes de utilizar por primera vez una técnica incremental. En algunos proyectos de Data Warehouse las técnicas incrementales no son usadas como parte del proceso de extracción. En lugar de esto, las tablas completas del Data Warehosue son extraídas en un momento determinado, para ser comparadas con una previa extracción que se hace del sistema operacional fuente, identificando el cambio en los datos y de esta manera actualizar el Data Warehouse. Esta actividad no tiene un impacto significante en los sistemas fuentes, pero si lo tiene en el Data Warehouse, particularmente si el volumen de los datos es muy grande [Oracle 8i]. Para que una técnica de extracción incremental tenga el mínimo impacto en el sistema operacional fuente según [Ram, 2000] se requiere: 19 ? No afectar en el desempeño del sistema operacional fuente. Esto debido a que uno de los propósitos primarios de un Data Warehouse es tomar el proceso de la carga de sistemas operacionales. ? Tener la facilidad de capturar los cambios en los datos. ? No modificar las aplicaciones existentes. 3.3.1 Snapshots Un Snaphot captura los datos que se encuentran en una estructura, de la base de datos fuente, en un momento determinado. Para [Corke, 2000] un Snapshots es como un proceso programado para ejecutarse automáticamente y satisfacer tanto la volatibilidad de los datos como los requerimientos de actualización de los mismos. La extracción y transferencia de los datos con el Snapshot pueden darse de dos formas [Bokun, 1998]: ? Recargar, consiste en obtener todos los datos de los sistemas operacionales que son necesarios en el Data Warehouse tal y como están en un tiempo determinado, para ello se asume que previamente a la ejecución del Snapshot se eliminan y recrean la o las tablas en el Data Warehouse o se borran todos los registros que contienen dichas tablas. ? Añadir, es cuando se asume que existen datos en las tablas en donde se hará la carga de información y que la información en esas tablas cumple con reglas predefinidas, por ejemplo que si un registro existe se sobrescribirá y sino se insertará. El resultado de las operaciones que realiza el Snapshot es casi igual que el de realizar una copia tradicional; la principal diferencia es que el tiempo requerido para crear una copia con Snapshots se mide en segundos a diferencia del tiempo que se requiere para realizar la duplicación tradicional la cual se mide en minutos u horas. El uso de Snapshots como herramienta para la extracción y transferencia de los datos al Data Warehouse, puede o no tener resultados benéficos dependiendo de cómo y cuándo se utilice. 20 Figura 3-2 Proceso ETT con Snapshot 3.3.2 Time Stamp El timestamp especifica la hora y la fecha en que un registro fue modificado por última vez. Está técnica se puede emplear cuando las tablas de algún sistema operacional tiene columnas timestamp (guardar la fecha de actualización), entonces el dato más reciente puede ser fácilmente identificado usando dichas columnas. Si el timestamp no está disponible en un sistema operacional, el sistema puede ser modificado para incluirlos. Esto requiere, primero, modificación de las tablas del sistema operacional para incluir la nueva columna timestamp y segundo, crear un trigger para actualizar la columna timestamp cada vez que una operación modifique un registro.Las técnicas basadas en timestamp requieren un barrido completo de la tabla, a menos de que exista un índice definido en el atributo de la fecha de actualización. Esta técnica es claramente aplicable a la extracción de datos de los sistemas operacionales fuente que soportan timestamp nativamente y que tienen poca actividad de cambio. La tabla 3.1 muestra los resultados obtenidos por [Ram, 1998] del tiempo requerido para la extracción de datos que sufrieron algún cambio en una base de datos fuente, aplicado a una tabla de 1G con 10 millones de registros de 100 bytes. Se hizo la extracción para tamaños de 100, 200, 400, 600, 800 Megas y la tabla completa. Así mismo se muestran los tiempos cuando los datos son dirigidos a un archivo, a una tabla y a una tabla con exportación. SISTEMA OPERACIONAL Data Warehouse Estado de la tabla de 10:00 am a 11:00 am SNAPSHOT Dato 1 Actualiza 2 Dato 3 Estado del Snapshot de la tabla X a las 10:30 am Tabla X Dato 1 Actualiza 2 Dato 3 Tabla X Actualiza 1 Actualiza 2 Actualiza 3 Estado de la tabla de 11:00 am a 12:00 am 21 Tabla 3-1 Extracción de cambios utilizando time stamp 3.3.3 Particionamiento El concepto de particionamiento es dividir una tabla en partes separadas, lo cual aumenta la velocidad de acceso a una partición individual de las bases de datos y también puede ser utilizado como una técnica incremental en el proceso ETT del Data Warehouse, para esto es necesario que las tablas tengan una partición por fechas que permitan identificar rápidamente un nuevo dato o cambios en los datos. 3.3.4 Triggers Los triggers almacenan procedimientos que pueden contener instrucciones de actualización, eliminación o inserción de datos que se invocan cuando ciertas condiciones o eventos ocurren. Así pues al hacer uso de los triggers no se tienen que extraer y transferir los datos que no sufrieron algún cambio y esto disminuye la cantidad de registros que tienen que ser procesados. Cabe aclarar que la base de datos fuente tiene doble trabajo de carga cuando toda la población que es parte del Data Warehouse sufre algún cambio. La técnica de extracción de datos basada en triggers es considerada muy simple de implementar y no requiere de cambios en la aplicación del sistema operacional fuente. Debido a que esta técnica está basada en eventos, es una de las mejores opciones cuando la captura de cambios es requerida para mantener actualizado el Data Warehouse. Hay dos formas de emplear los triggers: a nivel base de datos y a nivel de aplicación. Cabe mencionar que la primera opción es menos costosa que la segunda. Los triggers se pueden crear en los sistemas operacionales para no perder de vista los registros actualizados recientemente. Se pueden usar en conjunto con las columnas timestamp para permitir identificar la hora y fecha exacta cuando un registro tuvo la última modificación. Para esto se crea un trigger en cada una de las tablas fuente de las que se requiere capturar el cambio en los datos. Siguiendo cada instrucción que es ejecutada en la tabla fuente, los triggers actualizan la columna timestamp con la hora actual. Así, la columna timestamp provee la hora y la fecha de la última actualización realizada al registro. Extracción de Cambios Salida a 100M 200M 400M 600M 800M 1G Archivo 17min 26min 43min 59min 1hr 19min 1hr 36min Tabla 29min 55min 1hr 45min 2hr 40min 3hr 29min 4hr 24min Tabla + exportación 32min 1hr 8min 2hr 8min 3hr 17min 4hr 25min 5hr 56min 22 Con el uso de triggers se pueden actualizar e insertar registros del Data Warehouse, dependiendo de la acción que se realice en los sistemas operacionales fuente. 3.3.5 Snapshots diferenciales Está técnica también es conocida como comparación de archivos y consiste en mantener una imagen de los datos importantes para el Data Warehouse antes y después de los últimos cambios registrados. Se hace una descarga del estado actual de las tablas de la base de datos del sistema operacional fuente en un tiempo indicado, para compararla con el Snapshot generado en el mismo sistema y que previamente fue almacenado. Para detectar los cambios, uno a uno los registros obtenidos antes y después del cambio son comparados y para detectar los datos nuevos (inserción) y los datos que ya no existen (eliminación) se hace una comparación de la llave de los registros. Como se puede ver esta forma de extraer y transferir los datos requiere del uso de una técnica de carga y descarga de la base de datos de los sistemas operacionales fuente y además programación computacional para comparar los Snapshots obtenidos antes y después de que suceden los cambios y poder detectar los cambios en los datos. Esta técnica es compleja por naturaleza y se recomienda usarla sólo cuándo es la única solución, es decir en casos donde ninguna otra técnica es factible de usar [Bokun, 1988]. 3.3.6 Habilitación de Consultas (Queryable) Para esta técnica se asume que el sistema operacional fuente es queryable. Para detectar y extraer los cambios del sistema operacional fuente, los queries deben ser editados. El valor actual de los datos relevantes es comparado con su valor anterior, una diferencia en el valor indica que ocurrió un cambio, en este caso el sistema central es el que realiza la mayor parte de las tareas de detección y extracción de cambios. 3.3.7 Monitoreo de registros El monitoreo de registros consiste en aplicar los cambios que están archivados en los registros del sistema de procesamiento en línea, también conocido como OLTP por sus siglas en inglés On Line Transaction Processing, a los datos que se encuentran en el Data Warehouse. Cada una de las técnicas anteriormente descritas debe de ser cuidadosamente evaluada por los dueños de los sistemas operacionales fuente antes de la implementación, sobre todo cuando es necesario realizar modificaciones en dichos sistemas. 23 Identificar y extraer sólo los datos que han cambiado después de la última actualización del Data Warehouse, hace más eficiente el proceso ETT porque sólo se extrae un volumen de datos muy pequeño. Desafortunadamente para muchos sistemas operacionales esta tarea puede ser muy difícil o inapropiada para la operación del sistema. Las técnicas incrementales pueden trabajar en conjunto con las técnicas secuenciales. Por ejemplo, la técnica timestamp puede ser usada cuando los datos se descargan en archivos de datos y cuando se accesan vía query distribuido o Snapshots. Así mismo, las ventajas y desventajas que cada una de las técnicas pueda ofrecer depende particularmente de las capacidades que tengan los sistemas operacionales fuente y el Data Warehouse, así como también del tiempo promedio de cambio en dichos datos. 3.4 Ejemplos para el uso de las técnicas secuenciales e incrementales Para efecto de los ejemplos se considerará lo siguiente: ? En el sistema operacional fuente existe una tabla que almacena las unidades organizacionales de una institución educativa, esta tabla es nombrada ST4ORGN (diccionario de datos, en el anexo A.1) cuya estructura se muestra en la figura 3-1 a. ? El Data Warehouse tiene una tabla llamada UNID_ORG, la cual contendrá los campos mostrados en la figura 3-1 b. ? El origen de los campos de la tabla UNID_ORG se indica en la figura 3-1 con las flechas. Figura 3-3 Estructura de las tablas de unidades organizacionales a) Base de datos fuente b) Base de datos del Data Warehouse 24 Tomando en cuenta lo anterior, la aplicación de las técnicas para mantener actualizada la tabla UNID_ORG con los datos operacionales, es presentada a continuación. 3.4.1 Con archivos de datos. En la base de datos fuente, se genera una consulta, usando SQL, para obtener los datos que se requieren de la tabla ST4ORGN para alimentar la tabla UNID_ORG del Data Warehouse. SETECHO OFF SPOOL unidades_org.dat /* Se direcciona la salida a un archivo */ SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que ST4ORGN_EFF_DATE, se ocupan */ ST4ORGN_CODE_PRED, ST4ORGN_EFF_DATE_PRED, ST4ORGN_NOMBRE, ST4ORGN_SIGLAS FROM SATURN.ST4ORGN SPOOL OFF; Haciendo uso de un programa computacional, en un lenguaje permitido por la plataforma del sistema operacional fuente, por ejemplo Pro*C, el siguiente código corresponde a una función para extraer los datos de la tabla indicada en un archivo plano. Primero se genera un archivo tipo texto con el nombre de Unidades_Org.dat, después con la ayuda de un query (utilizando lenguaje SQL) se hace el cursor para extraer todos los datos de la tabla ST4ORGN, cada registro producido por el query se escribe (utilizando lenguaje C) en el archivo que previamente fue creado. void Unidades_Organiacionales() { FILE *datos; int contador = 0; str10 CODE, CODE_PRED, SIGLAS; str15 EFF_DATE, EFF_DATE_PRED, DATE; str70 NOMBRE; shoirt CODE_i, CODE_PRED_i, SIGLAS_i, DATE_i, NOMBRE_i, EFF_DATE_i, EFF_DATE_PRED_i; Crea_Archivo("Unidades_Org.dat",&datos,"w"); EXEC SQL DECLARE Cursor_ST4ORGN CURSOR FOR SELECT ST4ORGN_CODE, ST4ORGN_EFF_DATE, ST4ORGN_CODE_PRED, ST4ORGN_EFF_DATE_PRED, ST4ORGN_NOMBRE, ST4ORGN_SIGLAS, ST4ORGN_ACTIVITY_DATE FROM SATURN.ST4ORGN; EXEC SQL OPEN Cursor_ST4ORGN; for (;;) { EXEC SQL WHENEVER NOT FOUND DO break; EXEC SQL FETCH Cursor_ST4ORGN INTO :CODE :CODE_i, :EFF_DATE :EFF_DATE_i; /*Declaración de variables*/ /*Crea el archivo en donde se escribirán los datos extraídos*/ /*Declaración del cursor principal, sólo se consultan los datos que se ocupan en el Data Warehouse */ /*Para cada registro arrojado por la 25 :CODE_PRED :CODE_PRED_i, :EFF_DATE_PRED :EFF_DATE_PRED_i, :NOMBRE :NOMBRE_i, :SIGLAS :SIGLAS_i, :DATE :DATE_i; EXEC SQL WHENEVER NOT FOUND continue; if (CODE_i < 0) strcpy(CODE,""); if (EFF_DATE_i < 0) strcpy(EFF_DATE,""); if (CODE_PRED_i < 0) strcpy(CODE_PRED,""); if (EFF_DATE_PRED_i < 0) strcpy(EFF_DATE_PRED,""); if (NOMBRE_i < 0) strcpy(NOMBRE,""); if (SIGLAS_i < 0) strcpy(SIGLAS,""); if (DATE_i < 0) strcpy(DATE,""); fprintf(datos,"%s|%s|%s|",CODE,EFF_DATE,CODE_PRED); fprintf(datos,"%s|%s|",EFF_DATE_PRED,NOMBRE); fprintf(datos,"%s|%s|\n", SIGLAS,DATE); contador ++; } EXEC SQL CLOSE Cursor_ST4ORGN; EXEC SQL COMMIT WORK; Cierra_Archivo(datos); } consulta se revisa que no haya errores*/ /*Escritura de los datos de un registro en el archivo*/ /*Se cierra el archivo*/ Después de que ya se tiene el archivo plano con los datos necesarios, se procede a la transferencia y carga de los datos en el Data Warehouse. Para la transferencia se puede utilizar FTP* (File Transfer Protocol). Una vez que el archivo de datos se encuentra en la máquina del Data Warehouse se hace uso de otro programa computacional, también hecho en Pro*C, para realizar la carga, la función para poblar la tabla UNID_ORG con los datos que contiene el archivo generado, es la siguiente: void CargaTabla_UNID_ORG() { int cont_update=0, cont_insert=0, cont_error=0, existen_errores=0, k=0, j=0; char cadena[150], cadena_num[20]; Abre_Archivo("Unidades_Org.dat",&datos,"r"); Crea_Archivo("Unidades_Org.ctl",&control,"w"); while (!feof(datos)) { leer_campo(datos,cadena); strcpy(CODE,cadena); leer_campo(datos,cadena); strcpy(EFF_DATE,cadena); leer_campo(datos,cadena); strcpy(CODE_PRED,cadena); leer_campo(datos,cadena); strcpy(EFF_DATE_PRED,cadena); leer_campo(datos,cadena); strcpy(NOMBRE,cadena); leer_campo(datos,cadena); strcpy(SIGLAS,cadena); leer_campo(datos,cadena); strcpy(DATE,cadena); leer_fin(datos); if (feof(datos)) break; /*Declaración de variables*/ /*Abre el archivo de datos y crea un archivo para resumir las operaciones que se realizaron*/ /*Se leen las columnas de un renglón para obtener cada campo de la tabla UNID_ORG, haciendo uso de la función leer_campo*/ * Se recomienda el uso del protocolo de transferencia de archivos, debido a que el método más común para transportar datos es éste [ORACLE, 8I]. 26 existen_errores = 0; EXEC SQL SELECT COUNT(*) INTO :cant :cant_i FROM UNID_ORGN WHERE CLAVE_UNID_ORG = :CODE; if (cant > 0) { EXEC SQL UPDATE UNID_ORG SET UNID_ORG_FECHA_EFF = :EFF_DATE, CLAVE_UNID_ORG_PRED = :CODE_PRED, UNID_ORG_FECHA_EFF_PRED = :EFF_DATE_PRED NOMBRE_UNID_ORG = :NOMBRE SIGLAS_UNID_ORG = :SIGLAS UNID_ORG_ACTIVITY_DATE = :SYSDATE WHERE CLAVE_UNID_ORG = :CODE; cont_update ++; } else { EXEC SQL INSERT INTO UNID_ORG (CLAVE_UNID_ORG, UNID_ORG_FECHA_EFF, CLAVE_UNID_ORG_PRED, UNID_ORG_FECHA_EFF_PRED, NOMBRE_UNID_ORG, SIGLAS_UNID_ORG, UNID_ORG_ACTIVITY_DATE) VALUES(:CODE, :EFF_DATE, :CODE_PRED, :EFF_DATE_PRED, :NOMBRE, :SIGLAS, :SYSDATE); cont_insert ++; } fprintf(control,"\nProcesando # : %d. %c",k-1,13); fprintf(control,"\n\n Terminado .... \n"); fprintf(control,"\nRegistros Totales %d",k-1); fprintf(control,"\nRegistros Insertados UNID_ORG %d",cont_insert); fprintf(control,"\nRegistros Actualizados UNID_ORG %d",cont_update); fprintf(control,"\nRegistros Con Error UNID_ORG %d",cont_error); EXEC SQL COMMIT WORK; Cierra_Archivo(datos); Cierra_Archivo(control); } /*Para cada registro leído se hace una consulta para saber si ya existe o no en la tabla UNID_ORG*/ /*Si existe el registro se hace una actualización de los datos*/ /*Sino existe se hace una inserción*/ /*Se escribe en el archivo de control el resumen de las operaciones realizadas*/ /*Se cierran los archivo de lectura y escritura*/ 3.4.2 Con queries distribuidos Para extraer los datos del sistema fuente haciendo uso de los queries distribuidos es necesario que la base de datos tenga los permisos necesarios para ser accesada remotamente. Una vez que se ha establecido conexión entre el Data Warehouse y el sistema fuente se hace un query similar al que se hizo en el punto 3.4.1. CREATE TABLE UNID_ORG AS SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que se ST4ORGN_EFF_DATE, ocupan */ ST4ORGN_CODE_PRED, 27 ST4ORGN_EFF_DATE_PRED, ST4ORGN_NOMBRE, ST4ORGN_SIGLAS FROM ST4ORGN@SOURSE_DB /* Se hace referencia a la tabla remota En la que se ejecutará el query */ 3.4.3 Con Snapshots Para hacer la extracción con el uso de Snapshots, el db link de conexión al sistema operacional es creado con el nombre de OPERA_PROD. create snapshot S_UNID_ORG /* Se crea el snapshot tablespace DEVL_DWH refresh complete /* Forma de pasar los datos start with SysDate as SELECT ST4ORGN_CODE, /* Se hace la consulta de los datos que se ST4ORGN_EFF_DATE, ocupan */ ST4ORGN_CODE_PRED, ST4ORGN_EFF_DATE_PRED, ST4ORGN_NOMBRE, ST4ORGN_SIGLAS FROM ST4ORGN@OPERA_PPRD; Al ejecutarse el snapshots la tabla
Compartir