Download Structured Data

Document related concepts

Esquema en copo de nieve wikipedia , lookup

Almacén operacional de los datos wikipedia , lookup

Middleware wikipedia , lookup

Data mart wikipedia , lookup

Open Database Connectivity wikipedia , lookup

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