dwh ws0910 kap5 performance - uni-leipzig.de
TRANSCRIPT
WS09/10, © Prof. Dr. E. Rahm 5 -1 yyy
Data WarehousingKapitel 5: Performance-Techniken
Dr. Andreas ThorWintersemester 2009/10
UniversitĂ€t LeipzigInstitut fĂŒr Informatik
http://dbs.uni-leipzig.dey
y
y
WS09/10, © Prof. Dr. E. Rahm 5 -2 yyy
5. Performance-TechnikenEinleitung Indexstrukturenâ ein- vs. mehrdimensionale Indexstrukturenâ eindimensionale Einbettungen, UB-Baum â Bitlisten-Indexstrukturen
Datenpartitionierungâ vertikale vs. horizontale Fragmentierungâ Projektions-Indexâ mehrdimensionale, hierarchische Fragmentierung
Materialisierte Sichtenâ Verwendungâ Auswahl
WS09/10, © Prof. Dr. E. Rahm 5 -3 yyy
Einleitunghohe Leistungsanforderungenâ sehr groĂe Datenmengen, vor allem Faktentabelleâ kurze Antwortzeiten fĂŒr viele Benutzer â mehrdimensionale Auswahlbedingungen, Gruppierung, Aggregationen, Sortierung ...â periodische Aktualisierung mit sehr vielen Ănderungen (ETL, Aktualisierung der DW-
Tabellen, Hilfsstrukturen, Cubes)
Scan-Operationen auf der Faktentabelle i.a. nicht akzeptabel â Bsp.: 500 GB, Verarbeitungsgeschwindigkeit 25 MB/s
Standard-Verfahren (z.B. Hash-Join) oft zu ineffizient fĂŒr Star Join Einsatz mehrerer Performance-Techniken unter spezieller Nutzung von DW-Charaktistika â Indexstrukturen (1-dimensional, mehrdimensional, Bit-Indizes) â materialisierte Sichten bzw. vorberechnete Aggregationen â parallele Anfrageverarbeitung â Partitionierung der Daten (EinschrĂ€nkung der zu bearbeitenden Daten,
Parallelverarbeitung)
WS09/10, © Prof. Dr. E. Rahm 5 -4 yyy
Mehrdimensionale AnfrageartenPunkt- und Bereichsanfragen (exakt vs. partiell)
Aggregation, Gruppierung (Cube, Rollup), Sortierung ...
Zeit (Tage)
Pro
dukt .
Punktanfrage(exact match)
Zeit (Tage)
Pro
dukt
Partielle Punkt-
Zeit (Tage)
Pro
dukt
Partielle Bereichs-
(partial range)
Zeit (Tage)
Pro
duk t
Bereichsanfrageanfrage
(partial match)
anfrage
WS09/10, © Prof. Dr. E. Rahm 5 -5 yyy
IndexstrukturenOptimierung selektiver Lesezugriffe: Reduzierung der fĂŒr Anfrage zu lesenden Datenseiten Indexstrukturen enthalten redundante Verwaltungsinformation: zusĂ€tzlicher Speicherbedarf und zusĂ€tzlicher Ănderungsaufwand Standard-Indexstruktur: B*-Baum â eindimensionaler Index (1 Attribut bzw. Attributkombination) â PrimĂ€r- oder SekundĂ€rindexâ balanciert, gute Speicherbelegung â mit / ohne Clusterung der DatensĂ€tze â geringe Höhe auch bei sehr groĂen Tabellenâ UnterstĂŒtzung von direktem und sortiert-sequentiellen Zugriffen
WS09/10, © Prof. Dr. E. Rahm 5 -6 yyy
B*-Baum mit/ohne Clusterung der SĂ€tzeIndex mit Clusterbildung (clustered index) â Clusterbildung der SĂ€tze in den Datenseiten â Reihenfolge der SĂ€tze gemÀà Sortierung nach Indexattribut â sehr effiziente Bearbeitung von Bereichsanfragenâ maximal 1 Clustered Index pro Relation
Non-clustered Indexâ SĂ€tze sind nicht physisch in der Reihenfolge des Indexattributs gespeichert â gut v.a. fĂŒr selektive Anfragen und Berechnung von Aggregatfunktionen
25 61
8 13 33 45 77 85
Non-clustered Index
Wurzelseite
Zwischen-seiten
Blatt-seiten
Datenseiten
25 61
8 13 33 45 77 85
Clustered Index
WS09/10, © Prof. Dr. E. Rahm 5 -7 yyy
IndexunterstĂŒtzung fĂŒr mehrdimens. AnfragenEingrenzung des Datenraumes
Bsp. mehrdimensionaler Indexstrukturenâ Grid Fileâ R-Baum, ...
Zeit (Tage)
Pro
dukt
vollstÀndiger
Zeit (Tage)
Pro
duk t
1-dimensionaler
Zeit (Tage)
Pro
duk t
mehrere 1-dimens.
Zeit (Tage)
Pro
dukt
optimaler mehr-Index
(mit Clusterung)
Indexstrukturen,Tabellen-Scan(full table scan) Bitmap-Indizes
dimens. Index, mehrdim. Daten-
partionierung
WS09/10, © Prof. Dr. E. Rahm 5 -8 yyy
Eindimensionale EinbettungTransformation mehrdimensionaler Punktobjekte fĂŒr eindimensionale ReprĂ€sentation, z.B. mit B*-BĂ€umenmöglichst Wahrung der topologischen Struktur (UnterstĂŒtzung mehrdimensionaler Bereichs- und Nachbarschaftsanfragen) Ansatzâ Partitionierung des Datenraums D zunĂ€chst durch gleichförmiges Raster â eindeutige Nummer pro Zelle legt Position in der totalen Ordnung festâ Reihenfolge bestimmt eindimensionale Einbettung: space filling curve
Zuordnung aller mehrdimensionalen Punktobjekte einer Zelle zu einem Bucket (Seite) jede Zelle kann bei Bedarf separat (und rekursiv) unter Nutzung desselben Grundmusters weiter verfeinert werden
WS09/10, © Prof. Dr. E. Rahm 5 -9 yyy
Eindimensionale Einbettungen
1
2
0
3
1
3
0
2
15
5
7
13
14
4
6
12
10
0
2
8
11
1
3
9
87
4
11
9
6
5
10
15
0
3
1214
1
2
13
10
15
12
11
9
14
13
8
5
0
3
4
6
1
2
7
a) z-Ordnung b) Gray-Code c) Hilbertâs Kurve
1
2
0
3
WS09/10, © Prof. Dr. E. Rahm 5 -10 yyy
Beispiel: UB-Baum (Universal B-tree)Verwendung einer Z-Ordnung als raumfĂŒllende Kurvegeringer Berechnungsaufwand â jeder Punkt wird auf skalaren Wert,
Z-Wert, abgebildet (Zellen-Nr) â binĂ€re Durchnumerierung der
Basisintervalle jeder Dimensionâ Z-Wert ergibt sich aus Bit-VerschrĂ€n-
kung der Dimensionswerte
Abbildung der Z-Werte als SchlĂŒssel eines B*-Baum mit Clusterungum gĂŒnstige Auslastung zu gewĂ€hrleisten, werden mehrere benachbarte Zellen pro Seite zugeordnet: Z-Region
WS09/10, © Prof. Dr. E. Rahm 5 -11 yyy
UB-Baum (2)exakte mehrdimensionale Anfragen gehen auf 1 Seite Bereichssuche (Begrenzung durch zwei Eckpunkte LO und RU)â bestimme Z-Wert (Z-Region) zu LO â werte SuchprĂ€dikat auf alle SĂ€tze in
Z-Region aus â berechne nĂ€chsten Bereich der Z-Kurve
innerhalb Anfragebereichâ wiederhole die beiden vorherigen
Schritte bis Endadresse der Z-Region gröĂer ist als RU (diesen Punkt also enthĂ€lt)
UB-Baum-Realisierung im Rahmen des relationalen DBS TransBaseAnimationen / Publikationen unter http://mistral.in.tum.de
WS09/10, © Prof. Dr. E. Rahm 5 -12 yyy
Bitlisten-Indizesherkömmliche Indexstrukturen ungeeignet fĂŒr Suchbedingungen geringer SelektivitĂ€tâ z.B. fĂŒr Attribute (Dimensionen) mit nur wenigen Werten (Geschlecht, Farbe, Jahr ...) â pro Attributwert sehr lange Verweislisten (TID-Listen) auf zugehörige SĂ€tze â nahezu alle Datenseiten zu lesen
Standard-Bitlisten-Index (Bitmap Index):â Index fĂŒr Attribut A umfasst eine Bitliste (Bitmap, Bitvektor) BAj fĂŒr jeden der k
Attributwerte A1 ... Ak
â Bitliste umfasst 1 Bit pro Satz (bei N SĂ€tzen LĂ€nge von N Bits)
â Bitwert 1 (0) an Stelle i von BAjgibt an, dass Satz i Attributwert Aj aufweist (nicht aufweist)
â 1-dimensionaler Index, jedoch flexible Kombinierbarkeit
KID Geschlecht Lieblingsfarbe
122 W Rot
123 M Rot
124 W WeiĂ
125 W Blau
... ... ...
BlauRotWeiĂGrĂŒn
0001100010001100001100000000110000000001001000001000000100100000011000000100000111100000011100000001100001100000 ...
Kunde
WS09/10, © Prof. Dr. E. Rahm 5 -13 yyy
Bitlisten Indizes (2)Vorteile â effiziente AND-, OR-, NOT-VerknĂŒpfung zur Auswertung mehrdimensionaler
SuchausdrĂŒckeâ effiziente UnterstĂŒtzung von Data-Warehouse-Anfragen (Joins) â geringer Speicherplatzbedarf bei kleinen Wertebereichen
BeispielanfrageSelect ... WHERE A1=C1 AND A2=C2 AND A3=C3100 Millionen SÀtze; pro Teilbedingung SelektivitÀt 1%
Erweiterungen erforderlich fĂŒr Bereichsanfragen, groĂe Wertebereiche, hierarchische Dimensionen
WS09/10, © Prof. Dr. E. Rahm 5 -15 yyy
Bitlisten-Join-IndexDimensionsbedingungen vor allem im Rahmen von Star JoinsvollstÀndige Scans auf Fakten-Tabelle zu verhindern -> Nutzung von Bitlisten-Indizes zur Bestimmung der relevanten Fakten-Tupel
Bitlisten-Join-Index â Bitlisten-Index fĂŒr Dimensions-Attribut auf der Fakten-Tabelleâ Bitliste enthĂ€lt Bit pro Fakten-Tupel: entspricht vorberechnetem Joinâ flexible Kombinierbarkeit fĂŒr unterschiedliche Anfragen â Auswertung der Suchbedingungen auf Indizes ermöglicht minimale Anzahl von
Datenzugriffen auf die Fakten-Tabelle
KUNDE-Dimension
K_IdGeschlechtOrtPLZRegionHobby
PRODUKT-DimensionP_IdMarkeKategorieGröĂeGewichtP_Typ
ZEIT-Dimension
TagWocheMonatJahr
VERKAUF
Fakten-Tabelle
K_IdP_IdTagGBetragEBetragAnzahl
WS09/10, © Prof. Dr. E. Rahm 5 -16 yyy
Bitlisten-Join-Index (2)Beispielanfrage: Video-Umsatz und Anzahl verkaufter GerÀte im April mit mÀnnlichen Kunden
select sum (GBetrag), sum (Anzahl) from VERKAUF v, KUNDE k, PRODUKT p, ZEIT zwhere v.K_Id = k.K_Id and v.P_Id = p.P_Id and v.Tag = z.Tag
and z.Monat = "April" and p.Kategorie = "Video"and k.Geschlecht = "M"
Nutzung von 3 Bitlisten-Join-Indizes Monat Kategorie Geschlecht
Januar 0001100010001 ...Febr 0000011100000 ...
...MĂ€rz 1000000000010 ...April 0110000001100 ...
TV 1001000000010 ...DVD 0100000001000 ...Video 0010100010101 ...Stereo 0000011100000 ...
M 1010010001001 ...W 0111101110110 ...
...
WS09/10, © Prof. Dr. E. Rahm 5 -17 yyy
Bereichskodierte Bitlisten-IndizesStandard-Bitlisten erfordern fĂŒr Bereichsanfragen Auswertung vieler Bitlisten
Bereichskodierte Bitlisten-Indizes: â in Bitliste zu Wert w bedeutet 1-Bit fĂŒr einen Satz, dass der Attributwert
kleiner oder gleich w ist â Bitliste fĂŒr Maximalwert kann eingespart werden (da nur â1â gesetzt sind)
FĂŒr jede Bereichsanfrage max. 2 Bitlisten auszuwerten
ID MonatStandard-Bitlisten Bereichskodierte Bitlisten
Jan Feb MĂ€r Apr Mai Jun ... Nov DezJan Feb MĂ€r Apr Mai Jun Jul ... Dez
122 Mai 0 0 0 0 1 0 0 ... 0
123 MĂ€rz 0 0 1 0 0 0 0 ... 0
124 Januar 1 0 0 0 0 0 0 ... 0
125 MĂ€rz 0 0 1 0 0 0 0 ... 0
126 Februar 0 1 0 0 0 0 0 ... 0
127 Dezember 0 0 0 0 0 0 0 ... 1
128 April 0 0 0 1 0 0 0 ... 0
... ... ... ...
WS09/10, © Prof. Dr. E. Rahm 5 -19 yyy
Bereichskodierte Bitlisten-Indizes (2)Bereichsanfragen: Beispiele
â Bereich A < x <= E:
â Bereich x <= E:
â Bereich x > A:
Punktanfrage (Gleichheitsbedingung) erfordert Lesen von 2 Bitlisten (vs. 1 Bitliste bei Standard-Bitlisten-Index)
Speicherplatzreduzierung möglich durch verallgemeinerte Intervall-Kodierung
WS09/10, © Prof. Dr. E. Rahm 5 -21 yyy
Intervallkodierte Bitlisten-Indizesjede Bitliste reprĂ€sentiert Wertezugehörigkeit zu bestimmtem Intervall fester LĂ€nge von der HĂ€lfte des Gesamtwertebereichsâ Beispiel I1 = [Jan, Jun], I2 = [Feb, Jul], I3 = [MĂ€r,Aug],
I4 = [Apr, Sep], I5 = [Mai, Okt], I6 = [Jun, Nov], I7 = [Jul, Dez]
fĂŒr jede Punkt- und Bereichsanfrage max. 2 Bitlisten zu lesenz.B. Bereich MĂ€rz bis September:
Monat = Februar:
etwa halbierter Speicheraufwand
ID MonatStandard-Bitlisten Intervallkodierte Bitlisten
I1 I2 I3 I4 I5 I6 I7Jan Feb MĂ€r Apr Mai Jun Jul ... Dez
122 Mai 0 0 0 0 1 0 0 ... 0 1 1 1 1 1 0 0
123 MĂ€rz 0 0 1 0 0 0 0 ... 0 1 1 1 0 0 0 0
124 Januar 1 0 0 0 0 0 0 ... 0
125 MĂ€rz 0 0 1 0 0 0 0 ... 0
126 Februar 0 1 0 0 0 0 0 ... 0
127 Dezember 0 0 0 0 0 0 0 ... 1
128 April 0 0 0 1 0 0 0 ... 0
... ... ... ...
WS09/10, © Prof. Dr. E. Rahm 5 -23 yyy
Kodierte Bitlisten-IndizesSpeicherplatzersparnis durch logarithmische Kodierung der k möglichen Attributwerte (encoded bitmap indexing) â Standardverfahren: pro Satz ist nur in einer der k Bitlisten das Bit gesetztâ jede der k Wertemöglichkeiten wird durch log2 k Bits kodiert => nur
noch log2 k Bitlistenâ hohe Einsparungen bei groĂen k (z.B. Kunden, Produkte)
Auswertung von SuchausdrĂŒcken â höherer Aufwand bei nur 1 Bedingung (log2 k Bitlisten statt 1 abzuarbeiten)
â bei mehreren Bedingungen wird auch Auswertungsaufwand meist reduziert
Blau 0001100010001 ...Rot 1100000000010 ...WeiĂ 0010000001100 ...GrĂŒn 0000011100000 ...
Kodierung F1 F0BlauRotWeiĂGrĂŒn
F1
F0
2 Bitvektoren fĂŒr 4 Farben
WS09/10, © Prof. Dr. E. Rahm 5 -25 yyy
KodierungsvariantenMehrkomponenten-Bit-Indizes â Zerlegung von Attributwerten in mehrere Komponenten und separate
Kodierung â Wahl der Komponenten erlaubt Kompromiss zwischen Speicheraufwand
(# Bitlisten) und Zugriffsaufwandâ Bsp.: Produkt-Nr (0..999) = x * 100 + y * 10 + z mit x,y,z aus 0..9
Hierarchische Dimensionskodierung â Vermeidung separater Bitlisten fĂŒr jede Dimensionsebene
-> hierarchische Kodierung mit 1 Bitlisten-Index pro Dimension â Verwendung konkatenierter SchlĂŒssel-IDs und separate Kodierungâ Beispiel: Kodierung einer Produkthierarchie mit ca. 50000 Produkten
BEREICH FAMILY GRUPPE PNR Gesamt
#Elemente Gesamt 8 96 1536 49,152 49152
#Elemente pro VorgÀnger 8 12 16 32
#Bits fĂŒr Kodierung (log2) 3 4 4 5 16
Beispiele-Bitmuster bbb ffff gggg ppppp bbbffffggggppppp
WS09/10, © Prof. Dr. E. Rahm 5 -26 yyy
DatenpartitionierungPartitionierung: logische Zerlegung von Relationenâ Fragmentierung: Bestimmung der Verteilungseinheiten â Allokation: Zordnung der Fragmente zu Plattenspeichern (Rechnerknoten)
Fragmentierung (Zerlegung):â horizontal vs. vertikalâ VollstĂ€ndigkeit der Zerlegung â Rekonstruierbarkeit der Ursprungstabelle
Zieleâ Reduzierung des
Verarbeitungsumfangsâ UnterstĂŒtzung von
Parallelverarbeitungâ Lastbalancierung
...
F1
F2
F3
Fn
...
Platte 1
Platte 2
Platte d
...
Ausgangs-Relation
Fragmentierung Allokation
WS09/10, © Prof. Dr. E. Rahm 5 -27 yyy
Vertikale FragmentierungSpaltenweise Aufteilung von RelationenDefinition der Fragmentierung durch ProjektionVollstĂ€ndigkeit: â jedes Attribut in wenigstens
1 Fragment enthalten
Verlustfreie Zerlegung:â PrimĂ€rschlĂŒssel i.a. in jedem Fragment enthaltenâ JOIN-Operation zur Rekonstruktion des gesamten Tupels
Arbeitsersparnis durch Auslagern selten benötigter Attribute in eigene Fragmente
KUNDE2 =
Globale Relation
KNR NAME GEBDAT FilialeK2 Schulz 2.11.1976 FK4 Meier 23.8.1972 BK3 MĂŒller 4.7.1987 BK1 Scholz 24.4.1959 FK5 Weber 17.3.1942 L
KNR NAME FilialeK2 Schulz FK4 Meier BK3 MĂŒller BK1 Scholz FK5 Weber L
KUNDE
KNR GEBDATK2 2.11.1976K4 23.8.1972K3 4.7.1987K1 24.4.1959K5 17.3.1942
KUNDE1 =
Ï KNR, GEBDAT (KUNDE)
Ï KNR, NAME, Filiale (KUNDE)
WS09/10, © Prof. Dr. E. Rahm 5 -28 yyy
Projektions-Indexseparate Speicherung der Attributwerte ausgewÀhlter Attribute (vertikale Partitionierung)
starke E/A-Einsparungen verglichen mit Zugriff auf vollstÀndige SÀtze Bsp.: Berechnung von Durchschnittsgehalt, Umsatzsumme ... effektive Einsatzmöglichkeit in Kombination mit Bitlisten-Index-Auswertungen
12345 K02 L 45000
23456 K02 M 51000
34567 K03 L 48000
45678 K02 M 55000
56789 K03 F 65000
67890 K12 L 50000
ANR W-ORT GEHALT
Projektions-Index
PNR GEHALT
51000
48000
55000
65000
50000
450001
2
3
4
5
6
WS09/10, © Prof. Dr. E. Rahm 5 -29 yyy
Horizontale FragmentierungZeilenweise Aufteilung von RelationenDefinition der Fragmentierung durch SelektionsprĂ€dikate Pi auf der Relation:Ri := ÏPi (R) (1 †i †n)
â VollstĂ€ndigkeit: jedes Tupel ist einem Fragment eindeutig zugeordnetâ Fragmente sind disjunkt: Ri â© Rj = {} (i â j))â Verlustfreiheit: Relation ist Vereinigung aller Fragmente: R = âȘ Ri (1 †i †n)
Anfragen auf Fragmentierungsattribut werden auf Teilmenge der Daten begrenztParallelverarbeitung unterschiedlicher Fragmente
KNR NAME GEBDAT FilialeK2 Schulz 2.11.1976 FK1 Scholz 24.4.1959 F
KUNDE1 = ÏFiliale = "L" (KUNDE)
KUNDE2 = ÏFiliale = "F" (KUNDE)
KUNDE3 = ÏFiliale = "B" (KUNDE)
Globale Relation KUNDE
KNR NAME GEBDAT Filiale
K2 Schulz 2.11.1976 F
K4 Meier 23.8.1972 B
K3 MĂŒller 4.7.1987 B
K1 Scholz 24.4.1959 F
K5 Weber 17.3.1942 L
KNR NAME GEBDAT Filiale
K5 Weber 17.3.1942 L
KNR NAME GEBDAT Filiale
K4 Meier 23.8.1972 BK3 MĂŒller 4.7.1987 B
WS09/10, © Prof. Dr. E. Rahm 5 -30 yyy
Multi-dimensionale, hierarchische Fragmentierung (MDHF)
Horizontale Bereichsfragmentierung auf mehreren Attributen (reihenfolge-unabhĂ€ngig) â Auswahl höchstens eines Attributs pro Dimension als Fragmentierungsattribut(e)
Beispiel: 2-dimensionale Fragmentierung FGruppeMonat der Faktentabelle Verkauf
1
P_IDProduktKlasseGruppeFamilieLinieSparte
P_IDK_IDZ_IDUmsatzKosten
Verkauf- K_IDGeschÀftEinzelhÀndler
Produkt-
Zeit-Z_IDMonatQuartalJahr
Kunden-
Fakten-Tabelle:
Gruppe 1,Monat 1
Gruppe G,Monat M
Verkauf
DimensionDimension
Dimension
Gruppe i,Monat 1
Gruppe G
Monat 1
Gruppe G,Monat 1
|G|
|M|
WS09/10, © Prof. Dr. E. Rahm 5 -31 yyy
Beispiel: Sternschema-AnfrageZugriff oberhalb einer Fragmentierungsebene (Anfrage auf Quartal)Clusterung der Treffer, keine Indexzugriffe notwendig
1
P_IDProduktKlasseGruppeFamilieLinieSparte
P_IDK_IDZ_IDUmsatzKosten
Verkauf- K_IDGeschÀftEinzelhÀndler
Produkt-
Zeit-Z_IDMonatQuartalJahr
Kunden-
Fakten-Tabelle:
Verkauf
DimensionDimension
Dimension
3 Monate
alle Gruppen
WS09/10, © Prof. Dr. E. Rahm 5 -32 yyy
Sternschema-Anfrage unter MDHF (2)Zugriff unterhalb einer Fragmentierungsebene (Anfrage auf Produkt)EinschrÀnkung der Fragmente, ggf. Index-Zugriff zum Auffinden des Produktes im Fragment
1
P_IDProduktKlasseGruppeFamilieLinieSparte
P_IDK_IDZ_IDUmsatzKosten
Verkauf- K_IDGeschÀftEinzelhÀndler
Produkt-
Zeit-Z_IDMonatQuartalJahr
Kunden-
Fakten-Tabelle:
Verkauf
DimensionDimension
Dimension
alle Monate
1 Produkt in 1 Gruppe
WS09/10, © Prof. Dr. E. Rahm 5 -33 yyy
Sternschema-Anfrage unter MDHF (3)Zugriff oberhalb und unterhalb des Fragmentierungsebene (Anfrage auf Quartal und Produkt)nur 3 Fragmente, ggf. Index-Zugriff zum Auffinden des Produktes im Fragment
1
P_IDProduktKlasseGruppeFamilieLinieSparte
P_IDK_IDZ_IDUmsatzKosten
Verkauf- K_IDGeschÀftEinzelhÀndler
Produkt-
Zeit-Z_IDMonatQuartalJahr
Kunden-
Fakten-Tabelle:
Verkauf
DimensionDimension
Dimension
3 Monate
1 Produkt in 1 Gruppe
WS09/10, © Prof. Dr. E. Rahm 5 -34 yyy
Eigenschaften von MDHF*Reduktion des E/A-Aufwandes fĂŒr viele Warehouse-Anfragenâ durch Bezug auf mehrere Dimensionenâ schon bei mindestens 1 referenzierter Fragmentierungsdimensionâ Anfrageattribute mĂŒssen nicht mit Fragmentierungsattributen ĂŒbereinstimmen
Einsparung von Bitlisten-Indizesâ Materialisierung von Indizes nur fĂŒr Ebenen unterhalb der Fragmentierungsebene(n)
UnterstĂŒtzung von ParallelitĂ€t bei fragment-orientierter VerarbeitungAnalytische Optimierung / Tuningâ analytische Formeln fĂŒr #Fragmente, #Bitlisten-Zugriffe, I/O-Umfang, Antwortzeiten
etc. fĂŒr gegebenen Query-Mix, DB-Schema und Allokationâ Bestimmung der Top-Fragmentierungen bezĂŒglich Antwortzeit und I/O-Umfang â Tool WARLOCK (Warehouse Allocation To Disk):
* Stöhr, T., MÀrtens, H., Rahm, E.: Multi-Dimensional Database Allocation for Parallel Data Warehouses Proc. VLDB, 2000,
Stöhr, T., Rahm, E.: Warlock: A Data Allocation Tool for Parallel Warehouses. Proc. VLDB, 2001 (software demo)
WS09/10, © Prof. Dr. E. Rahm 5 -35 yyy
Materialisierte SichtenUnterstĂŒtzung in kommerziellen DBS: Oracle, DB2, SQL Serverâ materialized views, summary tables, ...
explizite Speicherung von Anfrageergebnissen, z.B. Aggregationen, zur Beschleunigung von Anfragen sehr effektive Optimierung fĂŒr Data Warehousing â hĂ€ufig Ă€hnliche Anfragen (Star Queries)â LokalitĂ€t bei Auswertungenâ relativ stabiler Datenbestand
Realisierungs-Aspekte â Verwendung von materialisierten Sichten fĂŒr Anfragen (Query-
Umformulierung, query rewrite)â Auswahl der zu materialisierenden Sichten: statisch vs. dynamisch
(Caching von Anfrageergebnissen) â Aktualisierung materialisierter Sichten
WS09/10, © Prof. Dr. E. Rahm 5 -36 yyy
Verwendung materialisierter SichtenEinsatz von materialisierter Sichten transparent fĂŒr den Benutzer â DBS muss wĂ€hrend Anfrageoptimierung relevante materialisierte Sichten
automatisch erkennen und verwenden können (Anfrageumstrukturierung) â Umgeformte Anfrage muss Ă€quivalent zur ursprĂŒnglichen sein (dasselbe
Ergebnis liefern)
Beispiel
select sum (v.GBetrag) from VERKAUF v, PRODUKT p, ZEIT zwhere v.Tag = z.Tag and v.P_Id = p.P_Id and z.Monat = "Jun04" and p.Kategorie = "Video"
Anfrage Q mat. Sicht M1
select modifizierte Anfrage Qâ
create materialized view M1 (K, M, S, A) ASselect P.Kategorie, Z.Monat,
SUM (GBetrag), SUM (Anzahl)from VERKAUF v, PRODUKT p, ZEIT zwhere v.Tag = z.Tag and v.P_Id = p.P_Id group by cube (p.Kategorie, z.Monat)
WS09/10, © Prof. Dr. E. Rahm 5 -38 yyy
Auswahl von materialisierter SichtenOptimierungs-Tradeoff: Nutzen fĂŒr Anfragen vs. erhöhten Speicherungs- und Aktualisierungskosten statische Bestimmung durch DBA oder Tool:â keine BerĂŒcksichtigung aktueller Anfragenâ keine Ănderung bis zur nĂ€chsten Warehouse-Aktualisierung
dynamische Auswahl: Caching von Anfrageergebnissen (semantisches Caching)â Nutzung von LokalitĂ€t bei Ad-Hoc-Anfragen â gĂŒnstig bei interaktiven Anfragen, die aufeinander aufbauen (z.B. Rollup)
Komplexe VerdrĂ€ngungsentscheidung fĂŒr variabel groĂe Ergebnismengen unter BerĂŒcksichtigung von â Zeit des letzten Zugriffs, ReferenzierungshĂ€ufigkeit â GröĂe der materialisierten Sichtâ Kosten, die Neuberechnung verursachen wĂŒrdeâ Anzahl der Anfragen, die mit Sicht bedient wurden
WS09/10, © Prof. Dr. E. Rahm 5 -39 yyy
Statische Auswahl materialisierter SichtenAuswahl vorzuberechnender Aggregationen des Aggregationsgittersâ Aggregationsgitter: azyklischer AbhĂ€ngigkeitsgraph, der anzeigt, fĂŒr welche
Kombinationen aus Gruppierungsattributen sich Aggregierungsfunktionen (SUM, COUNT, MAX, ...) direkt oder indirekt aus anderen ableiten lassen
vollstĂ€ndige Materialisierung aller Kombinationen i.a. nicht möglich â #Gruppierungskombinationen wĂ€chst exponentiell mit Anzahl von
Gruppierungsattributen n â möglichst optimale Teilmenge zu bestimmen
(Monat, Region, P-Gruppe)
(Monat, Region) (Monat, P-Gruppe) (Region, P-Gruppe)
(Monat) (Region) (P-Gruppe)
( ) 0
1
2
3
WS09/10, © Prof. Dr. E. Rahm 5 -40 yyy
Statische Auswahlheuristik*Annahmen â Gleiche Nutzungswahrscheinlichkeit pro Cuboid (Kombination von
Dimensionsattributen) â Aufwand sei proportional zu Anzahl zu berechnender SĂ€tze/Aggregate
Heuristik fĂŒr vorgegebenes Limit fĂŒr Speicheraufwand â pro Kombination von Dimensionsattributen wird Summe der
Einsparungen berechnet, die sie fĂŒr andere nicht materialisierte Kombinationen bewirkt
â in jedem Schritt wird die Kombination ausgewĂ€hlt, die die gröĂte Summe an Einsparungen zulĂ€sst, solange der maximal zugelassene Speicheraufwand nicht ĂŒberschritten ist
*Harinarayan/Rajaraman/Ullman, Implementing Data Cubes Efficiently. Proc. Sigmod 1996
WS09/10, © Prof. Dr. E. Rahm 5 -41 yyy
Statische Auswahlheurisitik: Beispiel
Limit sei 75% Zusatzaufwand (bezogen auf KardinalitĂ€t der Detaildaten)â Vollauswertung erfordert 12.000 + 15.578 = 27.578 SĂ€tze (+ 130%) -> BeschrĂ€nkung
Schritt 1: maximale Einsparung fĂŒr Monat/Regionâ nur 900 statt 12.000 Werte auszuwerten â Nutzung fĂŒr 4 Knoten (Einsparung 4*11.100 ): (Monat, Region), (Monat), (Region), ()
Schritt 2:
(Monat, Region, P-Gruppe)
(Monat, Region) (Monat, P-Gruppe) (Region, P-Gruppe)
(Monat) (Region) (P-Gruppe)
( )
12000
900 4560
24
9843
50 200
1
WS09/10, © Prof. Dr. E. Rahm 5 -43 yyy
Statische Auswahl materialisierter Sichten (4)BerĂŒcksichtigung weiterer Faktorenâ Eliminierung aller Knoten, fĂŒr die Verdichtung bestimmten Schwellwert (z.B. 50%)
nicht erreicht â funktionale AbhĂ€ngigkeiten zwischen Attributen (z.B. innerhalb Dimensionshierarchie)
erlauben Eliminierung von Kombinationen, z.B.: Gruppierung (Artikel, Produktgruppe) liefert identische Werte wie Gruppierung (Artikel)
â BerĂŒcksichtigung nur solcher Knoten, welche vorgegebene Anfragen unterstĂŒtzen
WS09/10, © Prof. Dr. E. Rahm 5 -44 yyy
ZusammenfassungMehrdimensionale vs. 1-dimensionale Indexstrukturen UB-Baum: Abbildung mehrdimensionaler Wertekombinationen auf eindimensionale Reihenfolge (Z-Kurve)Bit-Indizesâ effizient kombinierbar fĂŒr mehrdimensionale Auswertungen und Star-
Joinsâ Bereichs- und Intervallkodierung fĂŒr Bereichsanfragenâ Kodierung fĂŒr höhere KardinalitĂ€t: logarithmisch, Mehr-Komponenten-
Kodierung, hierarchische Kodierung
Partitionierungâ vertikale oder horizontale Zerlegung von Relationen zur Reduzierung des
Arbeitsaufwandes und UnterstĂŒtzung von Parallelverarbeitung â Projektions-Index Spezialfall vertikaler Partitionierungâ mehrdimens. horizontale Fragmentierung: Ă€hnliche Vorteile wie mehrdim.
Indexstrukturen
WS09/10, © Prof. Dr. E. Rahm 5 -45 yyy
Zusammenfassung (2)Materialisierte Sichtenâ groĂe Performance-Vorteile durch Vorberechnung von
Anfragen/Aggregationenâ transparente Umformulierung von Anfragen unter Verwendung der
materialisierten Sichtenâ dynamische vs. statische Auswahl an materialisierten Sichten
WS09/10, © Prof. Dr. E. Rahm 5 -46 yyy
ĂbungsfragenIndexstrukturenâ Welche Anfragen lassen sich durch UB-BĂ€ume effizienter als ĂŒber
konventionelle B*-BĂ€umen mit Clusterung beantworten? â Welche Anfragearten können durch Standard-B*-BĂ€ume effektiver als mit
Bitlisten-Indizes unterstĂŒtzt werden?
Bitlisten-Indizesâ Bestimmen Sie fĂŒr die Beispiele bereichskodierter bzw. intervallkodierter
Bitlisten-Indizes auf Folien 5-17 bzw. 5-21 wie folgende AnfrageprÀdikate evaluiert werden können:
â Monat=âJanuarââ Monat IN (âMaiâ,âJuniâ,âJuliâ)
WS09/10, © Prof. Dr. E. Rahm 5 -47 yyy
Ăbungsfragen (2)Auswahl materialisierter SichtenWelche drei Materialisierungen bringen fĂŒr die im Aggregationsgitter
angegebenen KardinalitĂ€ten den gröĂten Einspareffekt gemÀà dem Verfahren von Harinarayan et al. ?
Welcher Zusatzaufwand wird durch sie gegenĂŒber der Speicherung von (A,B,C) eingefĂŒhrt?
(A, B, C)
(A, B)(A, C)
(B, C)
(A) (B) (C)
( )
100000
50001000
500
500
10050
1