Download Structured Data
Document related concepts
Transcript
Integración de Datos Distribuidos: De la Teoría a la Práctica Alberto Pan Universidad de A Coruña 15/10/2009 Integración de Datos Distribuidos El problema de la integración de datos distribuidos consiste en integrar datos de fuentes distribuidas, heterogéneas y posiblemente autónomas. Heterogéneas Distribuidas Autónomas Poco estructuradas Sistema De Integración Tipos de Heterogeneidad (1) Heterogeneidad a múltiples niveles: Nivel de estructuración: Información estructurada (bases de datos), Información no estructurada y semiestructurada (documentos, sitios web). Información en formatos “legibles para humanos” pero no para máquinas. Ejemplo: HTML. Modelo de datos (e.g. Modelo relacional vs Modelo jerárquico). Plataforma software (e.g. MySQL vs Postgress). Convenciones de sintaxis y semánticas (“Calle Alcalá, nº 32”, “C\Alcalá, 32 ”). Tipos de Heterogeneidad (y 2) Heterogeneidad a múltiples niveles: Heterogeneidad de esquema. Ejemplo: representación de información de criminales y tipos de delito: Una BD tiene una tabla CRIMINALES y una tabla DELITOS con una relación M:N. Otra BD tiene una única tabla CRIMINALES que indica el tipo o tipos de delito. Otra BD tiene en una tabla distinta a los criminales de cada tipo de delito: tablas ASESINOS, LADRONES, ESTAFADORES, etc. Etc. Clasificación Sistemas Integración de Datos Materializados vs Virtuales Datos se copian a un gran almacén central (materializado) o se mantienen en las fuentes y sistema hace de intermediario (virtual). Data Warehouse vs Enterprise Information Integration (EII) Data Warehouse (1) Los datos de las fuentes se copian periódicamente a un almacén central. Pueden copiarse todos los datos o sólo un subconjunto. Para disminuir la carga de las actualizaciones, las fuentes pueden enviar sólo los cambios producidos. Requiere dicho soporte por parte de las fuentes. Ventajas: No es necesario rehacer aplicaciones ni volver a formar a los usuarios Eficiente Data Warehouse (2) Problemas: Datos no actualizados Puede no ser posible o muy ineficiente con fuentes autónomas Sistema de integración “pesado” Organizaciones quieren mantener el control sobre sus datos. No es factible hacer copias masivas periódicas. Contiene gran cantidad de datos. Conclusión: muy útil para informes, tratamiento de históricos, análisis de tendencias, etc. Menos útil en otros ámbitos. En informes/análisis de tendencias, a menudo no es importante tiempo real, pero sí lo es mucho la eficiencia (a veces, los procesos son muy pesados). Data Warehouse (3) Arquitectura típica de una instalación Data Warehouse: Herramienta ETL (Extraction, Transformation and Load) para extraer la información de las bases de datos origen, transformarla de la forma deseada y volcarla en el repositorio central. Base de datos OLAP. Base de datos especial optimizada para consultas que involucren grandes cantidades de datos. Herramienta de generación de informes. Permite crear de forma sencilla informes complejos que utilicen la información almacenada en el repositorio central. Data Warehouse: OLAP (1) Sistemas tradicionales (OLTP) están diseñados para contestar gran número de consultas simultáneas, pero dónde cada consulta es relativamente sencilla. También están optimizados para realizar transacciones de escritura y actualización. Sin embargo, algunas aplicaciones (típicamente las de creación de informes y análisis de tendencias) tienen necesidad de ejecutar menos consultas pero más costosas. Asimismo las inserciones y actualizaciones pueden ser menos críticas o realizarse sólo en modo batch. Se han desarrollado nuevas arquitecturas para tratar estas situaciones de forma eficiente (OLAP). Data Warehouse: OLAP (y 2) OLTP: On-Line Transaction Processing. Consultas y actualizaciones frecuentes que involucran a relativamente pocas tuplas. Ejemplos: información sobre un cliente en un call-center, consulta y reserva de información de vuelos desde la web, etc, etc. Típicamente consultas recuperan información sobre un elemento identificado por una clave (e.g. CIF cliente). OLAP: On-Line Analytic Processing Consultas largas y complejas (pueden durar horas). Inserts/Updates en modo batch. Pueden abarcar a muchos o todos los elementos de información (e.g. todos los clientes). Técnicas válidas sólo si la actualidad de los datos no es crítica. Ejemplos: productos que más se venden de forma conjunta en un supermercado, clientes que compran frecuentemente los mismos items en una tienda electrónica. Sistemas EII (1) En los 70 y 80 predominaban los entornos informáticos homogéneos y centralizados: Un número reducido (a veces uno) de grandes ordenadores en los que se ejecutan múltiples aplicaciones diferentes, casi siempre desarrolladas ad-hoc. Un único repositorio donde se encuentran los datos utilizados por todas las aplicaciones. En los primeros tiempos, el repositorio de datos se compone de ficheros: Ejemplo: Fichero de clientes (tiene datos de los clientes). Fichero de ventas (tiene datos de las ventas; para cada venta incluye el identificador del cliente). Después, el repositorio pasa a construirse usando una Base de Datos. Sistemas EII (2) Ventajas de usar una Base de Datos: No es necesario codificar cada operación de combinación de datos (simplemente escribimos una consulta SQL). Ejemplo: Obtener volumen total de ventas de ordenadores a clientes de A Coruña en el último mes: Antes: Acceder a fichero clientes para obtener clientes de A Coruña. Acceder a fichero ventas para obtener las ventas de esos clientes en el último mes. Calcular total Ahora: SELECT SUM(IMPORTE) FROM CLIENTES JOIN VENTAS ON CLIENTES.NIF=VENTAS.NIF WHERE CLIENTES.CIUDAD=‘A Coruña’ AND VENTAS.PRODUCTO=‘Ordenador’ Sistemas EII (3) Ventajas de usar una Base de Datos: Independencia física: Ejemplo 1: Cambiamos el repositorio de máquina o de lugar en el disco. Antes: hay que cambiar programa de aplicación. Ahora: el cambio se hace en la configuración de la BD y los programas de aplicación no se ven afectados. Ejemplo 2: Añadimos un índice sobre la información de clientes. Antes: hay que cambiar programa de aplicación, recompilarlo y reinstalarlo (para que haga acceso indexado a fichero). Ahora: el cambio se hace en la configuración de la BD y los programas de aplicación no se ven afectados. Sistemas EII (4) Independencia Lógica. Ejemplo 1: El campo ‘NIF’ cambia su nombre por ‘CIF’. Antes: hay que cambiar programa de aplicación, recompilarlo y reinstalarlo. Ahora: puede crearse una vista sobre la tabla física en la que el atributo se sigue llamando CIF -> los programas no se ven afectados. Ejemplo 2: La información de clientes y ventas pasa a estar en una sola tabla. Pueden crearse dos vistas clientes y ventas sobre la tabla física -> los programas no se ven afectados . Sistemas EII (5) Ventajas de usar una Base de Datos: Optimización de Consultas. Existen múltiples formas de ejecutar una consulta dependiendo de factores tales como: Existen índices o no. Tipo de join utilizado. Depende de las selectividades de las condiciones de la consulta. No puede saberse cuál es el más óptimo sabiendo sólo qué tablas se van a combinar. Las diferencias en tiempo de ejecución y consumo de recursos pueden ser inmensas. Un programa que quisiese hacer esta tarea de forma óptima acabaría implementanto múltiples métodos para combinar diversas condiciones (algunos bastante complejos) y además tendría qué determinar la más óptima en cada caso. Dada la consulta a realizar, el método más óptimo es independiente de la aplicación. Las BDs generan automáticamente los posibles planes de ejecución y escogen el más óptimo para cada consulta. Sistemas EII (6) Ventajas (cont): El sistema se ocupa de tratar condiciones especiales: e.g. swapping a disco si la consulta devuelve muchas tuplas, evitando desbordamientos. Pueden implementarse políticas generales de acceso a datos comunes a todas las aplicaciones. … Sistemas EII (7) Hoy, los entornos son distribuidos y heterogéneos. Un CPD se compone de múltiples aplicaciones, cada una de ellas para un propósito específico (e.g. CRM tiene datos de clientes, Facturación tiene datos de las ventas…) Cada aplicación tiene un repositorio de datos propio, no compartido con el resto de aplicaciones. A menudo de fabricantes diferentes. Los programas de aplicación de hoy tienen que acceder a todas estas aplicaciones para implementar procesos de negocio. A menudo estos programas se realizan con la ayuda de un sistema EAI/ESB que permiten modelar fácilmente lógica inter-aplicación. Sistemas EII (8) En los entornos distribuidos y heterogéneos de hoy, las aplicaciones (ad-hoc o EAI) se ven forzadas a combinar los datos por sí mismas (como en los “viejos tiempos” con ficheros). Implementar operaciones de combinación de datos. Preguntar al CRM quiénes son los clientes de A Coruña. Preguntarle a Facturación las ventas de ordenadores de cada uno de ellos Calcular el total. ¿No podríamos resolverlo con una consulta SQL? Optimización. Aplican las mismas consideraciones pero es aún más importante debido al carácter distribuido. Independencia Física. Fuentes cambian de localización o de forma de acceso (antes ODBC, ahora JDBC o Web Service). Aparecen nuevos modos de acceso más eficientes (e.g. todo o parte de los datos de una fuente se copian en una cache). Sistemas EII (9) Independencia Lógica El esquema de datos devueltos por una fuente puede cambiar. Los datos que antes venían de una fuente pueden pasar a venir de otra. Los datos que antes se obtenían combinando información de dos fuentes pueden pasar a obtenerse de una nueva fuente que tiene toda la información. Los datos que antes se obtenían de una sola fuente ahora puede precisarse obtenerlos combinando información de dos o más fuentes. … Condiciones especiales: swapping, desbordamientos,… … Sistemas EII (10) Además, los nuevos entornos necesitan aún más de la capa de combinación de datos: Heterogeneidad: e.g. combinar datos en modelo relacional con datos en modelo XML. Distribución: consideraciones de eficiencia llevan a la necesidad de técnicas específicas (e.g. delegación de procesamiento a las fuentes, cache,…). Sistemas EII (11) EII: Enterprise Information Integration. Datos permanecen en las fuentes y se define un esquema “virtual” de integración. Cuando el sistema recibe una consulta, la subdivide en consultas para los esquemas de las fuentes origen. El sistema EII combina los resultados de las fuentes y devuelve la respuesta unificada de acuerdo al esquema global. Pueden tratar fuentes como bases de datos, servicios web, XML, CSV, aplicaciones paquetizadas. A veces, incluso fuentes web (mediante aplicaciones de automatización web). Sistemas EII (7): Arquitectura APP1 APP2 SOAP JDBC Web Services APP3 APP4 ODBC JDBC XQUERY ODBC XQuery ACCESS INTERFACES SQL / XQuery / XPath Full Text Result Sets / XML EII SYSTEM Metadata Repository Query Analyzer and Decomposer Plan Generator Caché Optimizer Execution Engine Wrapper Creator Database Wrapper Proprietary Wrappers JDBC/ODBC Web Services Wrapper Proprietary APIS and Protocols SOAP Web Wrapper HTTP HTML JDBC/ODBC Propietary Interface Web Services http Local Databases and Data Warehouses Backoffice and Propietary Applications Partner´s Applications External Websites Graphical Tool AI - Based Web Wrapper Generation Sistemas EII (y 8): Ejemplo APLICACIÓN USUARIO DATOS R SELECT * FROM R WHERE TITULO=‘Moby Dick’ NIVEL LÓGICO DATOS R=(DATOS A)(DATOS B) R={TITULO,AUTOR,PRECIO ,PUNTOS} NIVEL FÍSICO SELECT * FROM A WHERE TITULO=‘Moby Dick’ DATOS A DATOS B SELECT * FROM B WHERE TITULO=‘Moby Dick’ SOAP HTTP ENVOLTORIO1 ENVOLTORIO 2 XML A={TITULO,AUTOR,PRECIO} B={TITULO,AUTOR,PUNTOS} Valoración EII En los entornos heterogéneos y distribuidos de hoy, proporciona ventajas análogas a las proporcionadas por las bases de datos en los viejos entornos homogéneos y centralizados. Frente a enfoques de integración puramente batch: Datos en tiempo real. Válidos para fuentes autónomas. Sistema de integración “ligero”. Tratan fuentes semi-estructuradas. Inconveniente: Menos eficiente. Puede usar precargas para las fuentes que se desee. En realidad, contiene “lógicamente” al esquema Data Warehouse, aunque los paquetes software actuales no siempre proporcionen esta funcionalidad. Automatización Web (1) Los sitios web han sido diseñados para su uso por personas. Es difícil para las aplicaciones hacer uso de su información y servicios: Navegación automática. Extracción automática de información desde HTML. Algunos sitios web empiezan a ofrecer APIs (Servicios web SOAP o REST), pero son minoría. Automatización Web (2) Automatización Web (3) Navegación automática: Un usuario realiza una navegación de ejemplo con su browser. El browser tiene un plug-in específico que graba las acciones del usuario (eventos sobre elementos del árbol DOM de la página). En tiempo de ejecución, se reproducen las acciones grabadas. Este esquema sencillo tiene problemas en algunos casos (fuentes AJAX complejas). Automatización Web (y 4) Extracción de datos: El usuario marca en el browser ejemplos de la información a extraer. Se usan técnicas de aprendizaje para inducir una expresión o serie de expresiones capaces de extraer la información seleccionada. Hay una gran variación entre las diversas técnicas utilizadas. Casos de uso habituales Plataforma Horizontal de Integración de Datos Distribuidos para Aplicaciones Operacionales. Business Intelligence Operacional Vista Unificada de Cliente. Vista unificada de producto. Vigilancia Tecnológica y/o de Negocio. Buscadores / comparadores en Internet. Integración B2B. Integración Operacional Single Customer View Operational Intelligence Competitive Intelligence Financial Reporting Query &/or Search SOA/Web Services JDBC/ODBC Metadata Java EII Platform United Data View & Transformation Engine Query Automati on Web Services Indexing Cac he Adapters & Connector s Extract & Structure Web Integratio n SA P Data Data XML bases Warehouses Files UnSemi Structured Semi & Un- Structured Data Data Structured Web Data Sieb el Ema il Even ts Applications BI Operacional Vista Unificada de Clientes Clientes Ventas Servicio Dirección Portal Autoservicio Soporte Ventas Soporte Clientes Cuadro Mando Directivo Plataforma EII Sistemas Legados CRM ERP Facturación Internet EOS 20D Digital SLR. Q3 Score Card Sales 136,540 units % of Goal 91% Supply Status Market Share Canon 25% -2% Nikon 28% +4% Olympus 12% +1% Other 35% -3% Price History – EOS 20D 12 Customer 4.6* Rating Price History – Nikon D70 Price Δ: 30% Price Δ: 27% Supply Metrics Customer Reviews Target Actual Order to Ship days Competitor Watch: (Nikon, Olympus) 31/07/06 [News story] Nikon D70, Coming to spoil Canon’s party? >>> 24/07/06 [Analyst] Interface makes a difference to Camera Buyers >>> 03/07/06 [Magazine] Olympus Camedia C8080 DIWA Award >>> 01/04/06 [Analysis] Olympus Teams With Adobe for DP in classroom >>> Technology Watch: (CMOS Sensor) 12/08/06 [News story] Sony launches ClearVid CMOS sensors >>> 09/08/06 [News story] Nikon D2X CMOS sensor made by Sony >>> 07/08/06 [News story] Canon Launches CMOS Sensor Technology Site >>> 06/08/06 [Industry news] Fujifilm CMOS Organic Image Sensor >>> Marketing Metrics (Buzz Meter) EOS 20D Nikon D70 • Analyst Reviews: 12 8 3 3 Inventory DOS 15 12 • User Reviews: Returns 5% 8% • Media Hits: Warranty Claims 2% 5% • Awards: 1540 122 6 1225 84 2 Automate Extraction Process of both structured and unstructured content Product Models correlated with customer id Customer ID correlated with CRM DB Customer comments are indexed and then converted into structured information for use in the Reports Identificación de tendencias en I+D en el sector eléctrico Extracción de informes e indicadores periódicos Planificación de extracciones automáticas de información Generación periódica de indicadores Ayuda para la generación de informes: Exportación de la información a otros formatos (Ej. Excel, Word, pdf…) Identificación de tendencias en I+D en el sector eléctrico Responder a nuevas preguntas Identificación de fuentes Estrategias de búsqueda Filtrado Análisis Generación de los indicadores Buscadores / Comparadores