Upload
dangkhuong
View
214
Download
0
Embed Size (px)
Citation preview
Inhalt
• „Data Warehousing und Data Mining“ auf 40 Slides
– Weder in-, noch exklusiv!
– Subjektive Zusammenfassung pro Kapitel
• Generelle Informationen zur Prüfung
Inhalt & Illustrationen: aus den Vorlesungsunterlagen zur Vorlesung „DWDM 11/12“ von Prof. Leser, HU Berlin
1. Grundlagenwissen RDBMs
• Relationales Datenmodell
– Begriffe: Tabellen, Attribute, Datentypen
• ER-Modellierung
– Syntax/Semantik, Beziehungsarten
• Relationale Algebra
– Operatoren/Konstruktoren
• SQL
– Syntax/Semantik von Anfragen, Views, etc.
2. Architektur und Prozesse
• Datenquellen – Heterogen, Push vs. Pull – Unterscheidung nach
• Logisch, Syntax, Qualität, ...
• Arbeitsbereich – Temporärer Speicher, häufig Filterfunktionen
• Basisdatenbank – Zentrale Komponente, feinste Auflösung historischer
Daten
• Multidimensionalität, Abgeleitete Sichten, Datenanalse, Data Mining
3. Das multidimensionale Datenmodell
• Spredsheet (Vor-und Nachteile) – => Würfel notwendig
• Begrifflichkeiten (bzgl. Cube) – Fakten (Punkte), orthogonale Dimensionen (Achsen),
Klassifikationshierarchien (Koordinatenkategorien)
– Klassifikationsschema mit K-Pfaden, K-level, K-Hierarchie
– Dimensionen
– Granularität
– Würfel als Instanz eines Würfelschemas
4. OLAP / 5. ROLAP
• OLAP-Operationen überführen einen Würfel in einen Würfel; in der Regel entlang eines K-Pfades – Aggregation
– Verfeinerung
• Weiterhin: – Rotatation (Pivoting)
– Selektion (Slicing)
– Auswahl (Dicing)
4. OLAP / 5. ROLAP
• ME/R-Diagramme
– Minimale Erweiterung, klare Semantik, Toolunterstützung, teilweise nicht ausdrucksstark genug
• Alternativen
– mUML
– MML
– ...
4. OLAP / 5. ROLAP
• ROLAP:
– Diverse Schemavarianten (Komplexität!)
• Aktualisierungsalgorithmen für Fakten und Dimensionen
• Oracle-spezifische MDDM-Konstrukte
– Basierend auf relationalem Schema
• Vergleich der Speicherarten
– Array vs. Relational
6. Sprachen: OLAP mit SQL, ...
• SQL-Erweiterungen
– ROLLUP in SQL
– CUBE in SQL
– GROUPING SETs
– OVER
7. ETL
• Extraktion
– Zeitpunkt
• Synchron – Propagierung jeder Änderung durch Quelle
• Asynchron (jeweils push vs. pull) – Periodisch, Ereignisgesteuert, Anfragegesteuert
– Datenart
• Snapshot, Log, Nettolog (Snapshot delta)
7. ETL
• Ladearten – Satz-basiert – BULK-Load
• Indexaktualisierung am Ende, keine Logfiles, komplette Sperre
– Anwendungsspezifische Schnittstellen
• Heterogenität – Syntaktische Heterogenität
• Punkt/Komma, Währungssymbol, Datum, ... • Lösung durch Umrechnung und Tabellen
– Schematische Heterogenität • Verwendung anderer Elemente im Datenmodell
– Semantische Heterogenität • Synonyme, Homonyme
• Großes Problem: Duplikate(-erkennung)
7. ETL
• Differential Snapshot Problem, a.k.a. Berechnung von Deltas bzgl. großer Dateien
• O ist in der Regel nicht eindeutig!
• Verschiedene Lösungsansätze ...
7. ETL
• DSSMALL
– eine der beiden Dateien passt in den Hauptspeicher; loop über kleinere Datei im Hauptspeicher
• DSNAIVE
– Nested Loop
• DSSORT
– Sort-Merge-Style
• DSSORT2
– F2 nicht komplett vorsortieren, sondern während der Hash-Sortierung mit sortiertem F1 vergleichen
• DSHASH
– Hashen, anstatt Partitionieren
8. Indexstrukturen
• B-Tree – Suche benötigt zwischen 1 und logk(b) IO;
(O(logk(n))
• B*-Tree – Alle Daten in den Blättern
– Bulk loading: sort -> insert
8. Indexstrukturen
• Bitmap Indizes
– Für kleine a! – Großer Gewinn bei hoher Selektivität – Komprimierung über RLE
• Join Indizes
8. Indexstrukturen
• Komprimierung von Bitmap-Indizes
– RLE1: Speichern der 1-Positionen
– RLE2: Speichern der Länge der 0-Blöcke
– Erweitert: vertikale Komprimierung!
• Vorsicht bei Sperren: Bei komprimierten Indizes können viele Datensätze (unnötiger Weise) gesperrt werden!
9. Multidimensionale Indexstrukturen
• Anfragen über mehr als ein Attribut
• Composite Index vs. Independant Index
9. Multidimensionale Indexstrukturen
• (Fixed) Grid-File – Aufteilen des Raumes in (gleichgroße), disjunkte
Unterräume; Unabhängig von der Verteilung der Daten, Splits sind immer parallel zu den Dimensionsachsen
• Kd-tree – Erweiterung von Binärbäumen auf mehrere
Dimensionen; Hierarchische splits;
– Bessere Ausnutzung bei geklusterten Daten; Hauptspeicherdatenstruktur
10. Logische Optimierung
• Anfrageplanung
• Heuristiken
– Kartesisches Produkt vermeiden
– Zwischenergebnisse früh minimieren; Reihenfolge der Joins ist wichtig!
• Abschätzung von Zwischenergebnissen über Tabellenstatistiken
10. Logische Optimierung
• Star Join in Oracle 8i
– Komprimierte Bitmapindizes
1. Berechnung der FKs
2. Bitmapped Join-Indizes anlegen
3. Merge (AND)
4. Zugriff auf Faktentabelle
5. Join der selektierten Fakten
– Zwischenergebnisse sind (kompakte) Bitlisten
– Bloomfilter können weiter 2+3 optimieren
10. Logische Optimierung
• Partitionierung
– Physisch (transparent) vs. logisch (explizit)
– Vertikal (für Auslagerung) vs. Horizontal (Parallelisierung)
– => Partition pruning
• Oracle:
– Bereichspartitionierung
– Hash-Partitionierung
11. OLAP Optimierung
• GROUP BY
– Hash-basiert
• Viel Speicher nötig
• Bei distributiven, algebraischen Funktionen
– Sortier-basiert
• Platzsparend, aber benötigt Sortierung
11. OLAP Optimierung
• CUBE-Operator – Gruppierung auf allen Teilmengen kann
Präaggregate/Ableitbarkeit ausnutzen
– => Optimierungsproblem auf Aggregationsgitter • Smallest parent
• Caching
• Amortize Scans
• Share-partitions/-sorts
– GBLP, Pipesort (Smallest parent, Share sorts)
– Iceberg Cubes: Pruning für Schwellwerte
12. Materialisierte Sichten I
• Berechnen und Speichern einer Anfrage
• View Selection
• View Maintenance (Änderungen)
• Query Optimization
12. Materialisierte Sichten I
• Query Containment
– Äquivalenz vs. Containment
– Instanzenunabhängig!
– Containment mappings über symbol mappings
– Nur bei Set-Semantik
• Ableitbarkeit
– Bedingungen, Joins, Aggregate
13. Materialisierte Sichten II
• Aktualisierung von MV
– Selektion, Projektion, Join, Aggregation: Was muss jeweils berechnet werden?
– Semantik ...
– Log-Files
13. Materialisierte Sichten II
• MVs in Oracle – ENABLE QUERY REWRITE
– +Basierend auf existierenden Tabellen
– Aktualisierungsstrategien • Wann: ON DEMAND, ON COMMIT
• Wie: COMPLETE, FAST, FORCE
• Greedy-Heuristik zur Auswahl von kostengünstigsten MV – Schrittweise Auswählen des nächstens MV mit bestem
Benefit-per-Space
14. Data Mining
• Klassifikation
– Gesucht: Klassen
– Overfitting (Trainingsdaten!)
• Clustering
– Gesucht: Ähnliche Objekte
– Schlecht definiert: Form, Größe, ... von Cluster
• Assoziationsregeln
– Gesucht: Zusammenhänge