1k likes | 1.25k Views
Optimizaci ón y Evaluación de Consultas en Fuentes de Datos Heterogéneas. Optimizaci ón de Consultas en Ambientes Heterogéneos con Capacidades Limitadas. Capacidades Limitadas Information Manifold Garlic. Propiedades de las Fuentes de Datos en el Internet.
E N D
Optimización y Evaluación de Consultas en Fuentes de Datos Heterogéneas
Optimización de Consultas en Ambientes Heterogéneos con Capacidades Limitadas Capacidades Limitadas Information Manifold Garlic
Propiedades de las Fuentes de Datos en el Internet • No existe una Interfaz de Programación para interactuar con ellas. • La respuesta se presenta en documentos no estructurados en formato HTML o semi-estructurados en XML. • La interfaz es a través de una planilla que limita el tipo de consultas que se pueden efectuar y los atributos que deben ser instanciados. Fuentes de Datos con Capacidades Limitadas de Procesamiento.
Fuentes de Datos con Capacidades de Procesamiento Limitadas • Interfaz es una plantilla mediante la cual se deben instanciar un conjunto de atributos para que se produzca una respuesta. • Respuesta es otra plantilla.
Capacidades Limitadas • Una capacidad de procesamiento limitada puede modelarse como una tupla (Input,Ouput) donde: • Input: conjuntos de atributos que deben ser instanciados. • Ouput: conjunto de atributos producidos cuando los atributos en Input son instanciados. Pelicula(NombrePelicula,Actores,Directores,CodPelicula) 0) Director-> NombrePelicula,CodPelicula 1) NombrePelicula -> Actores, Directores, CodPelicula
Fuentes de Datos-Capacidades Limitadas • FD1: publica información sobre películas, sus actores, directores, etc. Pelicula(NombrePelicula,Actores,Directores,CodPelicula) 0) Director-> NombrePelicula,CodPelicula 1) NombrePelicula -> Actores, Directores, CodPelicula • FD2: publica evaluaciones sobre películas. Evaluacion(CodPelicula,Evaluacion) 2) CodPelicula -> Evaluacion • FD3: publica información sobre las películas que recibieron algún premio durante un año particular. Premio(CodPelicula,Premio,Año) 3) CodPelicula -> Premio, Año 4) Año-> Premio, CodPelicula
Fuentes de Datos-Capacidades Limitadas • FD4: publica información sobre las películas que se presentan en los teatros o en cable. Cartelera(NombrePelicula,Dia,Teatro,Ciudad) 5) Dia,Ciudad, NombrePelicula->Teatro • FD5: vende los tickets para ver las películas Cine(NombrePelicula,Dia,Hora,Teatro,Disponibilidad) . 6) Dia,Hora,Teatro,NombrePelicula->Disponibilidad
Fuentes de Datos-Capacidades Limitadas Consulta: Chequear si hay tickets disponibles para ver una película que haya sido producida por Almodovar, que haya ganado algún premio este año, que su evaluación sea buena, en algun cine de Barcelona, hoy a las 7:30pm. SelectC2.Diponibilidad From Pelicula P1, Evaluacion E, Premio P2, Cartelera C1, Cine C2 WhereP1.Director=“Almodovar” ANDP1.CodPelicula=E.CodPelicula AND E.Evaluacion=“buena” ANDP1.CodPelicula=P2.CodPelicula ANDP2.Año=“2003” ANDC1.Dia=“23-04-03” AND P1.NombrePelicula= C2. NombrePelicula ANDC1.Cuidad=“Barcelona” AND C1.Teatro=C2.Teatro ANDC1.Dia=C2.Dia AND P1.NombrePelicula= C2. NombrePelicula ANDC2.Hora=“7:30pm”
Fuentes de Datos-Capacidades Limitadas • En ambientes tradicionales cualquier permutación de Pelicula, Evaluacion, Premio, Cartelera, Cine es un plan válido. • Si las capacidades de las fuentes de datos son consideradas, planes válidos deben respetar las siguientes precedencias: Pelicula -> Evaluacion Pelicula -> Premio, Pelicula -> Cartelera, Cartelera ->Cine
Optimizadores de Consultas en Fuentes de Datos con Capacidades Limitadas • No cualquier orden de ejecución es seguro. • Extensiones a optimizadores existentes • Capacidad de decidir si un plan de ejecución es seguro o no. • El optimizador puede perder mucho tiempo produciendo soluciones no seguras.
Resultados en Planes de Ejecución en Fuentes de Datos en el Internet • Existen Planes de Ejecución que no pueden ser evaluados (planes no seguros de ejecución). • El espacio de los planes de ejecución en fuentes de datos con capacidades limitadas considerablemente más grande que el espacio de planes de ejecución en bases de datos tradicionales [Levy99]. • Espacio de planes de ejecución: • (mn)1/n! (Seguros y No Seguros) • n(n+1) planes lineales izquierdos • nn planes de ejecución de tipo arbusto. • n: número de sub-objetivos • m: número de maneras evaluar cada sub-objetivo • Decidir si existe un plan de evaluación seguro para una consulta es NP-completo.
Capacidades Limitadas • Una capacidad de procesamiento limitada puede modelarse como una tupla (Input,Ouput) donde: • Input: conjuntos de atributos que deben ser instanciados. • Ouput: conjunto de atributos producidos cuando los atributos en Input son instanciados. Pelicula(NombrePelicula,Actores,Directores,CodPelicula) 0) Director-> NombrePelicula,CodPelicula 1) NombrePelicula -> Actores, Directores, CodPelicula
Fuentes con Capacidades Limitadas-Modelo de Costos Catálogo debe mantener información sobre: • Por cada tabla T: • Atributos: • Tamaño, número de valores diferentes. • Capacidades: (Input,Output): • Tiempo para retornar la primera tupla. • Número de Páginas en el resultado. • Número de Tuplas en el resultado. • Costo de Comunicación por página. • Por cada atributo en Output, número de valores diferentes.
Fuentes con Capacidades Limitadas-Modelo de Costos 1) Sea A una tabla y cap la capacidad usada para acceder la tabla, entonces: • Costo(A)=costoPrimeraTupla(cap) + #Paginas(cap)*costoPorPagina(cap) 2) Sea T=Cond(P) donde la selección se realiza en el mediador: #bloques(P) + costo(P)
Fuentes con Capacidades Limitadas-Modelo de Costos 3) Sea T=Atributos(P) donde la proyección se realiza en el mediador: • Con repeticiones: #bloques(P) + costo(P) • Sin repeticiones: #bloques(P) + 2*#bloques(P’) + costo(P) + costoOrdenar(P)
Fuentes con Capacidades Limitadas-Modelo de Costos 4) Sea T=T1 JOIN T2, si T2 no requiere de atributos producidos por T1 para instanciar atributos de entrada, entonces: • Si se dispone de suficiente memoria principal para evaluar el Block Nested Loop: • costo(T)=costo(T1) + costo(T2) + #bloques(T1) + # bloques(T1)/#Bloques * #bloques(T2)
Fuentes con Capacidades Limitadas-Modelo de Costos 4) Sea T=T1 JOIN T2, • Si se dispone del Hash Join: • costo(T)=costo(T1) + costo(T2) + 3*(#bloques(T1) + #bloques(T2)) • Si se dispone del Sort Merge: • costo(T)=costo(T1) + costo(T2) + #bloques(T1) + #bloques(T2) + O(#bloques(T1) Log #bloques(T1) ) + O(#bloques(T2) Log #bloques(T2) )
Fuentes con Capacidades Limitadas-Modelo de Costos 4) Sea T=T1 JOIN T2, si T2 requiere de atributos producidos por T1 para instanciar atributos de entrada, entonces se requiere del DependentJoin.
Dependent Join • Se requiere cuando los atributos producidos por el outer table son necesarios para instancias atributos en la inner table. • No es commutativo. • Su costo es es similar al costo de Nested Loop Join.
A Djoin B • Por cada tupla de A se deben instanciar los atributos de entrada de B. • Llamar a B tantas veces como tuplas de A existan. • En ambientes heterogéneos con fuentes de datos con capacidades limitadas, • costo(A Join B)= costo(A) + #bloques(A) +#Tuplas(cap1)*costo(B), donde, costo(B)=costoPrimeraTupla(cap2) +#Paginas(cap2)*costoPorPagina(cap2) El proceso de optimización debería minimizar el tamaño de A.
Information Manifold • Las capacidades de una fuente de datos se expresa a través de una registro de capacidad: • Atributos de entrada que deben ser dados a la fuente para producir la salida. • Mínimo y Máximos atributos en la entrada. • Las posibles salidas que la fuente puede proyectar. • Las selecciones que la fuente puede evaluar.
Information Manifold • Formalmente un registro de capacidad es una tupla: (Sin, Sout, Ssel, min, max) • Sin, Sout, Ssel son conjuntos de atributos de R y min, max son enteros. • Para obtener una tupla de R, se le deben instanciar al menos min de los elementos de Sin. Los atributos en Sout, son los que R puede proyectar. • Los elementos en Ssel, son un subconjunto de los elementos en Sin U Sout, y son los atributos sobre los que la fuente es capaz de ejecutar selecciones.
Information Manifold-Optimización Dado una reescritura semánticamente rc correcta, IM identifica un plan de ejecución para rc siguiendo un algoritmo polinomial.
Information Manifold-Optimización Entrada: Q’ consulta semanticamente correcta. C conjunto de capacidades. Salida: un plan ejecutable para Q’ QueryBindings= conjunto de las variables en Q’ instanciadas por constantes en la consulta. Qout= las variables en la cabeza de Q’, QuerySeleccion= el conjunto de las variables sobre las cuales existe una seleccion en Q’. BindAval0= QueryBindings Plan= For i=1,…,n Sea Vi un subobjetivo de Q’, cuyo atributo en min son cubiertos por BindAvali-1. BindAvali= BindAvali-1 U Sout; Plan = Plan U {Vi} Sino existe tal subobjetivo, entonces terminar. End for If Qout not(subset) BindAvaln retornar no existe plan. Else retornar(Plan)
Garlic • Datos en las fuentes de datos son vistos como objetos y Garlic hace referencia a éstos haciendo uso de un OID que está basado en: • la fuente de datos; • el tipo del objeto y • una clave determinada por el wrapper/adaptador. • El IOD le permite a Garlic aplicar métodos sobre los objetos.
Garlic • Los adaptadores encapsulan las capacidades de las fuentes de datos. • Conocimiento sobre las capacidades de las fuentes de datos es representada en forma de reglas. • Un catálogo mantiene información sobre: • el esquema global de Garlic y de su definición en función de las fuentes de datos. • Algunas estadísticas por datos globales.
Garlic • La optimización de consultas se realiza en Garlic: • basada en costos. • sin tener conocimiento de las capaciadades de las fuentes de datos. • El algoritmo de programación dinámica se extiende para explorar planes de ejecución seguros. • Garlic tiene un conjunto de reglas (Strategy Alternative Rules STARTs) las cuales son usadas para construir los planes que evaluará la máquina de ejecución. • Determinan como los POP’s pueden ser combinados en un plan. • Durante la ejecución de las consultas, se pueden evaluar a nivel del mediador, algunas operaciones que las fuentes de datos no son capaces de evaluar. • Los adaptadores/wrappers proveen la posibilidad de evaluar el método get sobre cada objeto.
Garlic • Planes • Árboles de ejecución donde cada nodo recibe el nombre de POPs (Plan Operators). • Se caracterizan por un conjunto de propiedades • Tablas: conjunto de tablas que son accedidas. • Columnas: conjunto de columnas a ser proyectadas. • Predicados: conjunto de predicados a ser aplicados en la selección. • Fuente de Datos: identificador del objeto de donde provienen los datos. • Mat: si el resultado debe materializarse o no. • Orden: si el resultado debe ordenarse. • Costo: costo estimado del plan. • Cardinalidad: cardinalidad estimada del resultado.
Ejemplo-Plan en Garlic • Fuentes de Datos disponibles: • Mail: sistema de mensajes • Sender, Subject, Date, Body • DB2: base de datos relacional con información sobre las materias y los profesores que las dictan • Consulta: SELECT m.Body FROM Current_Mail M, Classes C WHERE M.Subject=C.CourseName ANDC.Professor=“Tim O’leary”
c Project tables: {Current_Mail M, Classes C} columns: {M.Body} preds: {C.Professor=“Tim O’leary”, M.Subject= C.CourseName } source: { Garlic} mat: false order: NIL Join tables: {Current_Mail M, Classes C} columns: {M.OID, M.Subject, M.Body, C.IOD, C.CourseName} preds: {C.Professor=“Tim O’leary”, M.Subject= C.CourseName } source: { Garlic} mat: false order: NIL Fetch(M,{Subject,Body}) tables: {Current_Mail M} columns: {M.OID, M.Subject, M.Body} preds: {} source: { Garlic} mat: false order: NIL PushDown(DB2) PushDown(Mail tables: {Classes C} columns: { C.IOD, C.CourseName} preds: {C.Professor=“Tim O’leary”} source: { DB2} mat: false order: NIL tables: {Current_Mail M} columns: {M.OID,} preds: { } source: { Mail} mat: false order: NIL
Optimización de Consultas con Programación Dinámica: Garlic • Se ejecutan “n” iteraciones (n número de subobjetivos en la consulta). • En cada iteración “i” se construyen subplanes de longitud “i”: • Se combina el subplan SP de longitud “i-1” seleccionado en la iteración anterior con los subgoals disponibles seguros. • Subobjetivo S es seguro si: • Existe una capacidad de S que puede ser satisfecha con los atributos producidos por SP. • Se selecciona el(los) subplan(es) de longitud “i” de menor costo. • En el subplan producido todas las variables deben estar instanciadas. • Se producen planes lineales izquierdos. • Para planes atómicos, Garlic solo considera un plan para cada capacidad viable.
Programación Dinámica-Sistema R • Enumeración usando N pasadas (si N relaciones se consideran): • Paso 1: Encontrar mejor plan de 1-relacion para cada relación. Todos los nodos posibles de recorrido de las tablas son considerados. • Paso 2: Encontrar la mejor manera de hacer el join de cada plan con 1-relacion (como un outer) a otra relación. (Todos planes de 2-relaciones.) Las soluciones que tienen una solución equivalente más económica, son desechadas. Se consideran que dos soluciones son equivalentes si al hacer el join producen el mismo resultado y en el mismo orden. • Paso N: Encontrar la mejor manera de hacer el join de planes de (n-1) relaciones (como un outer) con una N’th relación. (Todos planes de N-relaciones) • Para subconjunto de relaciones, retener solo: • El plan con más bajo costo y • El plan con más bajo costo para cada orden interesante de las tuplas.
Algoritmo de Programación Dinámica-Garlic Function DynProg EntradaRels: Conjunto de relaciones a ser ordenadas. Salida: un árbol lineal izquierdo para Rels. • PartialSolutions:={Todos los recorridos para todos los atributos invulcrados Un plan para cada capacidad viable. Atributos de entrada deben satisfacerse con las constantes en la consulta} • Remover de PartialSolutions todos los elementos con una alternativa equivalente y de menor costo. • For i:=2 to |Rels| 3.1 For all pt in PartialSolutions 3.1.1 For all Ri in Rels pt:= JOIN pt Ri Existe una capacidad de Ri cuyos atributos de entrada son instanciados con los atributos producidos por pt end end 3.2 Remover de PartialSolutions todos los elementos con una alternativa equivalente y de menor costo. end 4. Retornar un elemento de PartialSolutions
Sistema R-Garlic • Construye planes considerando una clase de equivalencia a la vez. • Cada clase de equivalencia está integrada por los sub-planes que producen el mismo resultado • Tienen los mismos conjuntores y las mismas anotaciones. • Una anotación mantiene información sobre los atributos que deben instanciarse en el sub-plan y que podrán ser producidos por el mismo. • Las clases de equivalencia se consideran en orden incremental en el número de conjuntores. • El primer plan de ejecución completo se obtiene en la última fase de la optimización.
Garlic-Optimización-Ventajas • Si existe un plan seguro de ejecución para la consulta, Garlic va a ser capaz de conseguirlo, aun si éste no es optimal.
Garlic-Optimización de Consultas-Limitaciones • No diferencia entre consultas evaluables y no evaluables. • Puede generar un gran número de sub-planes de ejecución no evaluables. • Unicamente explora el espacio de planes de ejecución lineales izquierdos. • Produce la primera solución sólo después de considerar todos los posibles sub-planes. • No escala a espacios de búsqueda muy grandes. • Produce la primera solución después que todas las posibilidades han sido consideradas
Best First Search [Florescu et. al Sidmod99] • Produce soluciones sin necesidad de recorrer todo el espacio. • La calidad de la primera solución depende de una función de utilidad. • Una vez que produce la primera solución se mantiene produciendo soluciones.
Best First Strategy[Florescu et. al Sidmod99] • Extensión del Sistema R: • A cada punto de la optimización el sistema mantiene el conjunto S de los planes parciales. • Cada sub-plan p in S se etiqueta con la clase de equivalencia al cual pertenece y su costo. • Clase de equivalencia tiene todos los conjuntores cubiertos por p y sus anotaciones, p cubre a p’ si p’ es equivalente a p despues de aplicar una seleccion a p. • Inicialmente el conjunto S solo contiene sub-planes atómicos, es decir, planes para acceder una relación simple. Para una relación R el conjunto S contiene un plan de ejecución atómico por cada capacidad de R. • En el paso iterativo del algoritmo, se añaden nuevos planes a S combinando los planes en S usando selecciones y operaciones de join. Se crea un sub-plan por cada anotación. Se identifica el subplan en S con menor costo. • La opción de decidir con quien combinar un sub-plan depende de una función de medición. • En cada paso se eliminan planes no viables.
Best First Search • Se usa una función de utilidad para producir un plan completo rápido. • Esta función de utilidad establece el orden en el cual se consideran las clases de equivalencia.
Best First Search-Algoritmo • Entrada: consulta Q:- C1,…,Cn V conjunto de descripciones de capacidades Salida: Plan de ejecucion para Q Si Q no es seguro, entonces parar. Para I=1,…,n Anadir a S las capacidades de Ci Mientras puedan ser creados nuevos planes Seleccionar un p1 en S que maximice la funcion de utilidad Sea S’ el conjunto de planes que pueden ser combinados con p Para cada p2 en S’ (en el orden de la funcion de utilidad) hacer Sea p3 un (dependent) join entre p1 y p2 Si p3 es no viable, ignorar p3 Si existe un p4 en S, p4 cubre p3 y costo(p4) < costo(p3), p3=p4 Si existe p5 en S y p5 equivalente a p3 Si costo(p3) > costo(p5), ignorar p3 Sino en cada p6 en S que use p5 reemplazar p5 por p3 Sea S = S U {p3} if existe p7 en S, p3 cubre p7 and cost(p3) < costo(p7), reemplazar p7 por p3 Si S contiene la clase de equivalencia de Q, retornar el mejor plan de Q Sino Sea S’’ el conjunto de planes en S que cubren Q Para cada p8 en S’’ generar todos los posibles posicionamientos de las selecciones que no estan inlcuidas en p8 escoger un plan optimal entre todos estos planes
Best First Search • En cada iteración trata de combinar sub-planes de ejecucion en base a una función de utilidad. • Cuando un sub-plan de ejecucionp1 se ha identificado, y tiene menor costo a una solucion p2 equivalente previamente identificada, se sustituyep2 por p1 en todos los planes donde p2 sea usado.
Best First Search-Propiedades • Extensión a la programación dinámica con información sobre las capacidades de las fuentes de datos. • Rechaza las consultas que no son evaluables. • Puede tener que consider un gran número de sub-planes no seguros de ejecución. • Explora el espacio de planes tipo arbusto.
Agenda Algoritmos Aleatorios Bases de Datos Biomoleculares
Algoritmos Aleatorios • Se realizan caminatas aleatorias en el espacio de soluciones. • Las caminatas se realizan en N etapas. • En cada etapa: • Se genera una solución inicial de manera aleatoria. • Se aplican M transformaciones hasta conseguir una solución optimal. • Se selecciona el mejor optimal local.
Transformaciones Típicas • (A JOIN B) = (B JOIN A) • (A JOIN (B JOIN C) = ((A JOIN B) JOIN C) Se seleccionan aleatoriamente las sub-consultas a transformar. Después de aplicar una transformación se calcula el costo del nuevo plan. Si el costo es mejor que el costo del mejor identificado hasta el momento, se descartar los anteriores. En caso contrario, se descarta el plan identificado.
Problema de Optimización de Consultas en Fuentes de Datos con Capacidades Limitadas • WebSrcMed(Vidal00): • Extensión de un optimizador aleatorio de consultas para explorar únicamente el espacio de planes seguros. • Proceso de optimzación en dos fases. • Fase 1: identifica porciones del espacio de planes de ejecución donde solo existen planes seguros. Cada porción está caracterizada por un pre-plan. • Fase 2: los pre-planes son dadas al optimizador de consultas, éste solo explora el espacio caracterizado por cada uno de estos pre-planes. • Un pre-plan: • orden parcial de los sub-objetivos de la consuta. • conjunto de orden de precedepcias. Ambos componentes representan las restricciones impuestas por las capacidades de las fuentes de datos escogidas.
Optimización en Dos Fases Pre-plan1 Pre-plan5 Pre-plan2 Pre-plan3 Pre-plan5 Pre-plan4 Espacio de Planes de Ejecución Seguros