07/05/2013 Departamento de Lenguajes y Sistemas Informáticos BLOQUE II: Integración de Sistemas Software Integración de datos Tema 8 Arquitectura e Integración de Sistemas Software Curso 2012/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía 1 07/05/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía Definición de integración de datos Data integration involves combining data residing in different sources and providing users with a unified view of these data. [Maurizio Lenzerini, 2002] 2 07/05/2013 Integración de datos Query Interfaz de consulta única Fuentes de datos Fuente de datos 1 Fuente de datos 2 Fuente de datos 3 Integración de datos vs Integración de aplicaciones Integración de datos: • Declarativa (Ej. SQL) SELECT * FROM Book WHERE price > 100.00 ORDER BY title; Integración de aplicaciones • Programática (Ej. Java) ... connection1 = connectTo(App1); bookList = connection.get(Books); for(Book book:bookList) { if(book.getPrice() > 100) result.add(book); } sortByTitle(result); return result; 3 07/05/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía Retos de la integración de datos Fuentes de datos heterogéneas: las fuentes de datos pueden tener formatos diferentes (XML, RDF, Relacional, etc.) y los datos contenidos pueden tener esquemas diferentes ( Ej. libros con sus autores y libros con sus editoriales) Datos actualizados: Es importante que los datos de la vista única estén siempre actualizados, es decir, si se modifica la información en alguna de las fuentes, estos cambios se deben reflejar en los resultados lo antes posible. Tiempo de respuesta: Es necesario que el tiempo de respuesta a las consultas de los usuarios no sea muy alto, especialmente si el número de fuentes de datos es alto. 4 07/05/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía Tipos de integración de datos ETL (Extract, Transform, Load) Virtualización 5 07/05/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía Extract, Transform, Load (ETL) ETL: Es un proceso en el que se extrae la información de las fuentes de datos, se transforman para que sean homogéneos y luego se cargan en una fuente destino. La idea es ofrecer una fuente de datos única que contiene toda la información contenida en las distintas fuentes de datos. 6 07/05/2013 Ejemplo de ETL ETL ETL Ventajas: • La información está físicamente en un repositorio único • Las consultas se resuelven de forma más rápida Desventajas: • La información no suele estar actualizada: hay que ejecutar el proceso ETL para sincronizar los datos en caso de que las fuentes se actualicen. 7 07/05/2013 Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía Virtualización • Definición: Ofrece una vista virtual que responde las consultas de los usuarios . La integración de los datos se hace en tiempo real, consultando cada una de las fuentes de datos cada vez que un usuario hace una consulta, es decir, ofrecer una vista en tiempo real de los datos. • Se utiliza mapeo (mapping) para dividir consultas y componer datos: 8 07/05/2013 Virtualización Ventajas: • Ofrece una vista actualizada de los datos en tiempo real • Las fuentes trabajan de forma independiente (No hay que estar actualizando de forma continua) Desventajas: • Es más difícil resolver las consultas para dividirlas en las distintas fuentes y hacer el mapeo entre las fuentes y la vista de datos (Supone más tiempo para resolver las consultas) Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía 9 07/05/2013 Ejemplo Esquemas de datos: Fuente y destino 10 07/05/2013 Mapping 1/3 Mapping 2/3 11 07/05/2013 Mapping 3/3 Reglas generadas automáticamente Rule_v2_v0_512974586: for each x26: IBDBookSet(title: x26) -> exist Y27: BookSet(title: x26, pubId: Y27). Rule_v5_v1_923779658: for each x30, x31: IBLPublisherSet(id: x30, name: x31) -> PublisherSet(id: x30, name: x31). Rule_v4_v0_22178810: for each x28, x29: IBLBookSet(title: x28, pubId: x29) -> BookSet(title: x28, pubId: x29). Rule_v3_v0v1_692590998: for each x32, x33: LOCSet(title: x32, publisher: x33) -> exist Y34: BookSet(title: x32, pubId: Y34), PublisherSet(id: Y34, name: x33). Y34: SK(Tuples=[BookSet.Book.title: [x32]], [PublisherSet.Publisher.name: [x33]]**Joins=[[PublisherSet.Publisher.name: [x33]].PublisherSet.Publisher.id=[BookSet.Book.title: [x32]].BookSet.Book.pubId]) 12 07/05/2013 SQL generado automáticamente create table work.pos_CQWN_1697391144 AS select distinct rel_v3.id AS v3id, rel_v3.name AS v3name, rel_v1.title AS v1title, rel_v1.pubId AS v1pubId from source.IBLPublisherSet AS rel_v3, source.IBLBookSet AS rel_v1 where rel_v3.id = rel_v1.pubId; create table work.CQWN_1752073437 AS select distinct * from work.pos_CQWN_1752073437 EXCEPT select distinct work.pos_CQWN_1752073437.* from work.pos_CQWN_1752073437, work.pos_CQWN_1697391144 where work.pos_CQWN_1752073437.v0publisher = work.pos_CQWN_1697391144.v3name AND work.pos_CQWN_1752073437.v0title = work.pos_CQWN_1697391144.v1title ; insert into target.PublisherSet select distinct cast(work.TARGET_VALUES_rule_v0_v5v4_37675848.v5id as text) as v5id, cast(work.TARGET_VALUES_rule_v0_v5v4_37675848.v5name as text) as v5name from work.TARGET_VALUES_rule_v0_v5v4_37675848 UNION select distinct cast(work.TARGET_VALUES_rule_v3_v5_908096794.v5id as text) as v5id, cast(work.TARGET_VALUES_rule_v3_v5_908096794.v5name as text) as v5name from work.TARGET_VALUES_rule_v3_v5_908096794; … Mapping de las entidades 13 07/05/2013 Algunas herramientas The Clio Project Índice Definición de integración de datos Retos Tipos de integración de datos Extract-Transform-Load (ETL) Virtualización Ejemplo Bibliografía 14 07/05/2013 Bibliografía Tutorial de integración de datos (Maurizio Lenzerini-2002): http://www.dis.uniroma1.it/~lenzerin/homepagine/talks/TutorialPODS02.pdf Survey sobre integración de datos:(Alon Y. Levy-2001) https://cs.uwaterloo.ca/~david/cs740/answering-queries-using-views.pdf Integración de datos basada en vistas (Yannis Katsis, Yannis Papakonstantinou-2009) http://db.ucsd.edu/pubsFileFolder/355.pdf Disclaimer and Terms of Use All material displayed on this presentation is for teaching and personal use only. Many of the images that have been used in the presentation are Royalty Free images taken from http://www.everystockphoto.com/. Other images have been sourced directly from the Public domain, from where in most cases it is unclear whether copyright has been explicitly claimed. Our intention is not to infringe any artist’s copyright, whether written or visual. We do not claim ownership of any image that has been freely obtained from the public domain. In the event that we have freely obtained an image or quotation that has been placed in the public domain and in doing so have inadvertently used a copyrighted image without the copyright holder’s express permission we ask that the copyright holder writes to us directly, upon which we will contact the copyright holder to request full written permission to use the quote or images. 15