Sichten: Materialisierung und Instandhaltungskosten

Werbung
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.
Herunterladen