Sichten: Materialisierung und Instandhaltungskosten Sinisa Avramovic Agenda Teil I Motivation Materialisierte Sichten – Einführung Vielfalt von Sichten Inkrementelle Updates von Sichten Agenda Teil II Selektion zu materialisierender Sichten Problemstellung Bestehende Ansätze Evolutionärer Ansatz Schlussbetrachtung Motivation Data Warehouse Redundante Sammlung integrierter Daten aus verschiedenen großen und oft verteilten heterogenen Datenbanken zur Verarbeitung von OLAP Anfragen. OLAP : „Online Analytical Processing“ Effektive Analyse von Daten zur Unterstützung von Entscheidungen [ChDa97] DW : sehr große Datenmengen (Terrabyte) Motivation II DW - hauptsächlich lesender Zugriff - häufig Aggregatfunktionen (SUM,COUNT,AVG,MIN,MAX..) Forderung Beantwortung von Anfragen beschleunigen Idee häufig verwendete Anfragen in Form von materialisierten Sichten im DW materialisieren. Einführung Sichten Relationen, welche durch vordefinierte Funktionen aus den Basisrelationen der Datenbank abgeleitet sind. Diese werden bei jeder Referenzierung neu berechnet. Materialisierte Sichten Ergebnisse von Anfragen, für erneuten Zugriff im DW gespeichert. Indexbildung , sogar Sichten auf Sichten werden möglich. Einführung Materialisierte Sichten Quelldatenbanken A DB1 A AxBxC B DB2 BC C CxD D DB3 D Data Warehouse Basisrelationen AxB Vielseitigkeit von Sichten Reines Programm Nichtmaterialisierte Sichten sind Programmspezifikationen, Ableitungsregeln zur Generierung von Sichten . Neuberechnung für jede Anfrage. Abgeleitete Daten Materialisierte Sicht gekoppelt mit ihrer Ableitungsregel und den Funktionen für ihre Aktualisierung. Reiner Index Materialisierte Sichten ausschließlich mit Pointern auf darunter liegende Daten aufgebaut. Vielseitigkeit von Sichten Hybride Form Partiell materialisierte Sichten, Daten und Pointer gemischt. OLAP Aggregate Daten als Aggregate aus Tupelmengen der darunter liegenden Relationen. Aktualisierung materialisierter Sichten Basisrelationen AxB A AxBxC B C CxD D Data Warehouse Materialisierte Sichten U p d ate U pd ate U p d ate Aktualisierung materialisierter Sichten Rematerialisierung Basisrelationen AxB A AxBxC B C CxD D Data Warehouse Materialisierte Sichten U p d ate U pd ate U p d ate Aktualisierung materialisierter Sichten Inkrementelle Aktualisierung Rematerialisierung Basisrelationen AxB A AxBxC B C CxD D Data Warehouse Materialisierte Sichten U p d ate U pd ate U p d ate Klassifizierung von Aktualisierungsmethoden Informationsdimension Menge der zur Verfügung stehenden Informationen Basisrelation / Sicht / Integritäts- und Schlüsselbeziehungen verfügbar ? Modifikationsdimension Welche Operationen werden unterstützt : INSERT, UPDATE, DELETE UPDATE= DELETE -> INSERT ? Klassifizierung von Aktualisierungsmethoden Komplexität der Anfragekonstrukte Sichtdefinition als SPJ oder konjunktive Anfrage ? Duplikate ? Aggregation ? Rekursion ? Instanzdimension Aktualisierungsmethode für alle / bestimmte Ausprägungen der Datenbank ? Inkrementelle Aktualisierung Änderungen der Basisrelationen -> Auswirkung nur auf einen Teil der Sicht. Grundidee: Berechnung der Änderungen durch Ableitung der Sichtdefinition gekoppelt an die Änderungen der Basisrelation. Aktualisierung materialisierter Sichten Counting – Algorithmus Idee :Vorkommenshäufigkeit eines Tupels in der Basisrelation als Zusatzinformation in der materialisierten Sicht gespeichert. Berechnung der zu löschenden Tupel sehr schnell, alle Tupel mit Count=0 können aus der Sicht entfernt werden. Beispiel : Gegeben : Relation Link(A,B), falls A und B verbunden. Sicht Con(A,C) Link(A,B) ^ Link (B,C) Änderung : Lösche Link(A,B) aus Basisrelation Aktualisierung materialisierter Sichten LINK CON A B B A D A C A E B C E D C LINK Delete(A,B) B B A D C E D C CON A A C E 2-1=1 1-1=0 Selektion von materialisierten Sichten Motivation: Bisher : Deutliche Beschleunigung der Anfragen durch materialisierte Sichten. Nachteil : Aktualisierungsbedarf bei Änderungen der Basisrelationen. Frage : Welche Sichten materialisieren, um den Betrag der Anfragekosten und der Aktualisierungskosten auf der Basis der am häufigsten ausgeführten Anfragen zu minimieren? Selektion von materialisierten Sichten Selektion der zu materialisierenden Sichten ist NP-schwer! Aufteilung in drei Grundprobleme : 1) Anfrageoptimierung 2) Multiple Anfrageoptimierung 3) Selektion materialisierter Sichten Bisherige Ansätze : Algorithmen zur Lösung eines oder mehrerer o.g. Probleme. „Randomized“ Algorithmen Lösung durch Konstruktion von Graphen Suchraum, jeder Knoten = eine Lösung. Durchlauf nach Zufallsprinzip, bis alle Knoten besucht oder ein festgelegtes Zeitlimit erreicht. Die bis dahin beste Lösung ist Gesamtlösung. Selektion von materialisierten Sichten Deterministische Algorithmen deterministische Lösungskonstruktion durch Heuristiken oder umfassende Suche Evolutionäre Algorithmen Suchstrategie nach Zufallsprinzip analog zum biologischen Evolutionsmodell Hybride Algorithmen Kombination evolutionärer und „randomized“ Algorithmen Nachteil : * keine ganzheitliche Sicht , Kombination lokaler Optima liefern nicht zwingend globales Optimum * Stoppen im lokalen Optimum (Ausnahme evolutionäre Algorithmen) Selektion von materialisierten Sichten Algorithmus von Zhang, Yao und Yang Ganzheitlicher Ansatz, gemeinsame Betrachtung von Anfrageoptimierung, multipler Anfrageoptimierung und Selektion materialisierter Sichten. Basisannahmen : - Datenmodel als SPJ – Modell - Anfrageoptimierung berücksichtig nur JOIN als „teuerste“ Operation - Aktualisierung durch Rematerialisierung Selektion von materialisierten Sichten Zwei – Level Architektur High Level Generierung m ehrerer g lob aler Ausführung sp läne Architektur erleichtert Umgang mit dem Problem High Level : Selektion geeigneter globaler Ausführungspläne Low Level : Selektion materialisierter Sichten nach Planvorgabe des High Levels Low Level Evalu ation einzelner Au sfü hru ngspläne Selektion von materialisierten Sichten Anfrageoptimierung - Datenbank D mit den Relationen R1,R2….Rn gegeben. - Suchraum : Menge aller Ausführungspläne zu Q. Ein Punkt im Suchraum entspricht einem Ausführungsplan. - Ziel : Aus gegebener Menge den „optimalen“ Plan extrahieren ( optimal = minimale Kosten ). Selektion von materialisierten Sichten Multiple Anfrageoptimierung Anfragemenge: Qi 1 ≤ i ≤ n Planmenge : P i = {pi1,pi2,… piki} , ki # lokaler Pläne von Qi Ziel : Auswahl globaler Ausführungspläne Anfragekosten -> min Einfache Kombination lokaler Optima liefert nicht zwingend den optimalen globalen Ausführungsplan! Evolutionärer Ansatz liefert hier bessere Ergebnisse, globale Suche durch Kombination aller lokalen Pläne Resultat : DAG – direct acyclic graph Selektion von materialisierten Sichten Kostenmodell Anfragekosten: Σ qi€QfqiCqi(M) Aktualisierungskosten: Σ qi€QfuCm(v) Gesamtkosten Σ qi€QfqiCqi(M)+ Σ qi€QfuCm(v) Selektion von materialisierten Sichten Kostenmodell . Generierung m ehrerer g lob aler Ausführung sp läne Evalu ation einzelner Au sfü hru ngspläne Selektion von materialisierten Sichten Generierung m ehrerer g lob aler Ausführungsp läne Evalu ation einzelner Au sfü hru ngspläne Implementierung mit Galib : C++ genetic algorithm library Implementierung von J.A.Earickson : simple genetic algortihm in C Selektion von materialisierten Sichten Repräsentation von Zwischenergebnissen Gute Repräsentationen führen oft zu effizienteren Problemlösungen Globale Ausführungspläne Gegeben Anfragen Q1,Q2,…Qn. Q1 = [12], Q2 = [120], Q3 = [150] Globaler Ausführungsplan gegeben durch : Pg ={ [4],[70],[85] } Selektion von materialisierten Sichten Materialisierte Sichten – Repräsentation Mapping von DAG‘s in binärer Zeichenketten mittels beliebiger Traversierungverfahren: Beisp iel b read th-first Traversierung {[Q5,0], [Q4,0], [Q3,0], [Q2,0], [Q5,0] [resu lt5],[resu lt1],[resu lt2],[resu lt4], [resu lt3],[tm p9],[tm p3],[tm p4],[tm p8], [tm p8],[tm p10],[tm p2],[tm p5],[tm p6]} Binär : keine Materialisierung { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} Knoten 1,3,5,6,7,19 m aterialisiert: { 1,0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 1} Selektion von materialisierten Sichten Die „Fitness“ – Funktion Gewöhnlich Fitness-Funktion evolutionärer Algorithmen als Maximisation definiert. Ziel hier : Minimierung der Anfrage- und Aktualisierungskosten ! Cmax – c(x) , wenn c(x) < Cmax f(x) = 0, sonst Selektion von materialisierten Sichten Crossover Verbreitung nützlicher Gene in der Population durch Informationsaustausch Hier : „One point cut-and-swap“ - Strategie, wobei Splitpunkt zufällig gewählt. L1=1100100|0100100001111 L1=1100100|1011000100111 => L2=0100110|1011000100111 L2=0100110|0100100001111 Selektion von materialisierten Sichten Mutation Crossover generiert „bessere“ Nachkommen, jedoch keine vollständig neuen Gene. Alle theoretisch möglichen Lösungen nur mit Mutation erreichbar! L=11001000100100001111 bit-flipping an der 16. Stelle 0->1 L‘=11001000100100011111 Selektion von materialisierten Sichten BEGIN Generate initial population G(0); Evaluate all individuals in G(0); t:=0; REPEAT t:=t+1; Selet G(t) from G(t-1); Alter G(t) using crossover,mutation.. Evaluate all individuals in G(t) with f(x) // Fitness – Function Until satisfactory solution found END; Schlussbetrachtung Das Potential relationaler Sichten reicht weit über das Betrachten als Mittel zur Strukturierung und Präsentation von Datenbanken heraus. Materialisierte Sichten können unter Einhaltung bestimmter Designund Implementierungskriterien bedeutende Performanzsteigerung erbringen. Die Selektion der zu materialisierenden Sichten ist NP-schwer. Dennoch haben Forschungsergebnisse auf diesem Gebiet eine Reihe von effizienten Algorithmen mit akzeptabler Laufzeit hervorgebracht, welche die Entwurfszeit von Data Warehouses mit materialisierten Sichten bedeutend verkürzen. Zudem weisen so entworfene DW‘s eine für längere Zeit bemerkbare Performanzsteigerung auf.