Seminar zu Datenbanksystemen Sommersemester 2005 Universität Hannover B.Sc. Markus Spehling Vortrag: Based on: Top-k Selection queries over rational databases: Mapping strategies and performance evaluation, TODS 2002 RankSQL: Query Algebra and Optimization for Rational Top-k Queries, SIGMOD 2005 Top-k Query Optimization
Übersicht Motivation Einleitung - Beispiel Optimierung mit der Abbildungsstrategie Idee (Was wird versucht ?) Statische Strategie Dynamische Strategie Optimierung mit RankSQL Idee (Was wird versucht ?) Ranking-Operator Fazit – Vor- und Nachteile Zusammenfassung
Motivation Vergleich und Ranking (Sortierung) von Daten Suchmaschine Multimedia, z.B. Bilder nach Farbe, Formen untersuchen E-Commerce, z.B. Routenplanung, Urlaubsplanung Data Mining, z.B. Marktforschung uvm.
Motivation - Top-k Query Was ist eigentlich eine Top-k Query? engl. Top bildlich Gipfel, Höhepunkt |der|; höchste Stellung7. Ergebnismenge soll k Elemente umfassen Anfrage (Query), die die k besten Ergebnisse liefert
Beispiel Suche nach einer Ferienwohnung Benutzer hat eine Vorstellung von der Wohnung und möchte 10 Angebote angezeigt haben: ca. 20 Euro und ca. 6 km vom Strand entfernt Problem: Exakte Anfragen sind zu streng Ziel: Top-k Ergebnisse bzgl. der Prädikate Effiziente Bearbeitung Preis pro Tag in Euro Entfernung vom Strand in km
Top-k Anfrage in SQL SELECT * FROM R WHERE [Bedingungen] ORDER [k] BY [Scoring-Funktion];
Scoring-Funktion Definition (p-Norm Scoring-Funktion): - Relation R mit A 1,…, A n reellwertigen Attributen - q = (q 1,…,q n ) sind Präferenzwerte der Top-k Anfrage - t = (t 1,…,t n ) ist ein Tupel aus R Manhattennorm: Euklidische Norm: Maximumsnorm:
Scoring-Funktion – graphische Darstellung Manhattennorm (1) Euklidische Norm (2) Maximumsnorm (3) Beispiel: Census2D Daten über Alter und Stundenlohn Beispiel: Anfrage (Alter=30, Lohn=20 Euro)
Preis pro Tag in Euro Entfernung vom Strand in km Beispiel: Scoring-Funktion Euklidische Norm:
Abbildungsstrategien Top-k Anfrage Selektionsbereichs- anfrage (+) Effiziente Bearbeitung durch das RDBMS (-) Liefert u.U. mehr als k Tupel (-) keine effiziente Bearbeitung durch das RDBMS (+) Liefert genau k Tupel Vorteile kombinieren !!! Abbildung
Abbildungsstrategien - Beispiel SELECT Besitzer, Preis, Distanz FROM Unterkünfte WHERE Preis = 20 AND Distanz=6 ORDER 10 BY Score; SELECT Besitzer, Preis, Distanz FROM Unterkünfte WHERE (15 < Preis < 25) AND (4 < Distanz < 8) Abbildung Wie geht das ?
Scoringwert bestimmt den Selektionsbereich! Wie wird ein guter Scoringwert bestimmt ? Abbildungsstrategien Algorithmus: 1. Search – Benutze für die Relation R vorhandene Statistiken (z.B. Histogramme), um einen Scoringwert S q zu bestimmen, der k Tupel der Relation R liefert. 2. Retrieve – Konstruiere eine Selektionsbereichsanfrage C q und stelle diese an R. Es sei R‘ die Ergebnisrelation. 3. Verify/Restart – Wenn k >= |R‘|, dann gib die k Tupel mit der niedrigsten Distanz aus, sonst wähle einen größeren Wert und starte den Algorithmus erneut.
Histogramme (1) Histogramme sind Statistiken, die vom Datenbanksystem für jede Relation geführt werden Buckets b i enthalten Tupel der Datenmenge (Annahme: reellwertig) Buckets b i haben Begrenzungen, die durch zwei Punkte definiert sind
Histogramme (2) Alle Tupel eines Buckets b i werden auf ein repräsentierendes Tupels abgebildet. Setze die Anzahl der Tupel im Bucket b i gleich der Häufigkeit des repräsentierenden Tupels Abbildung zeigt eine Datenmenge und ein erzeugtes Histogramm
Abbildungsstrategien – im Detail Ermittlung des Scoringwertes Abbildungsstrategien: Statische Strategie Idee: Unabhängig von Datenmenge Dynamische Strategie Idee: Anpassung an Datenmenge
NoRestart (1): Annahme: Die Datenverteilung ist so schlecht wie möglich für eine Anfrage q. Restart (2): Annahme: Die Datenverteilung ist so gut wie möglich für eine Anfrage q. Statische Strategien - Methoden (1)(2)
Statische Strategie - Methoden Inter1: Definition: Inter1 = 1/3 * (2*Restart + NoRestart) Inter2: Definition: Inter2 = 1/3 * (Restart + 2 * NoRestart)
Statische Strategie - Beispiel Beispiel: q = (20, 15) sei eine Top-10 Anfrage Bucket b 2 (5 Tupel) und b 3 (15 Tupel) werden benötigt Restart Scoringwert = max(|15-15|,|35-20|) = 15 NoRestart Scoringwert = max(|50-20|,|40-15|) = 30 Beispiel (Restart): SELECT * FROM R WHERE 5<A 1 <35 AND 0<A 2 <30
Dynamische Strategie Verallgemeinerung der statischen Strategien Statischen Strategien: = 0 Restart = 1/3 Inter1 = 2/3 Inter2 = 1 NoRestart
Dynamische Strategie Wahl der besten Auswertungsstrategie ist abhängig: Verteilung der Daten (z.B. Gleichmäßig, Normal, Poisson, …) Anfrage q Es existiert für jede Anfrage ein Optimum, sodass mind.k Tupel, ohne Restart des Algorithmus, ermittelt werden können. Wie kann das Optimum bestimmt werden ? 1. Für möglichst viele (verschiedene) Anfragen Q 2. Ohne sequentielle Scans über die Datenmenge
Dynamische Strategie – Vorbereitung Vorbereitung für die Berechnung des Optimums * : Q = (q 1,…,q n ) eine Menge von Top-k Anfragen Funktion totalTupels(Q, ) bezeichnet alle Tupel, die mit dem Scoringwert S q ( ) ermittelt werden können Funktion tupels(q, S q ( )) bezeichnet alle Tupel für eine Anfrage Für die Dynamische Strategie wird der Scoringwert S q ( *) benutzt, wobei * definiert ist als:
Dynamische Strategie – Berechnung (1) Berechnung des Optimums *: 1. Approximation der Funktion tupels durch tupels‘ tupels‘ muss * gut approximieren effiziente Berechnung von tupels‘ (Diskretisierung) 2. Berechnung von dRq und dNRq für jede Anfrage q mit Hilfe von Histogramm H 3. Berechne die diskreten Werte zur Approximation der Funktion tupels‘ aus der Datenmenge, der Anfrage- menge und dem Histogramm H (seq. Scan der Daten) 4. Minimierung der Funktion totalTupels zur Bestimmung des Optimums *
Dynamische Strategie – Berechnung (2) Optimierung der Berechnung durch Sampling der Daten Vermeidung des kompletten sequentiellen Scans z.B. p = 0.1% der Daten werden gesichtet 210 von Tupeln Kurven haben keine signifikaten Abweichungen
RankSQL Was ist RankSQL ? Erweiterung der Relationenalgebra um das Ranking Erweiterung der Relationen zu Rank-Relationen Behandlung des Rankings als first-class Konstrukt Warum ? Generierung von effizienten Ausführungsplänen Inkrementelle Bearbeitung und Pipelining
RankSQL - Beispiel SELECT * FROM Hotel h, Museum m WHERE h.star=3 AND h.area=m.area ORDER 5 BY cheap(h.price) + related(m.collection, „dinosaurier“); Auswertung: Verbund der Relationen Hotel und Museum und Bearbeitung der Filterbedingungen Auswertung der Prädikate für jeden gültigen Verbund Sortierung der Ergebnisse Report der Top-5 Ergebnisse Ranking-Prädikate Sortierung 5
RankSQL Nachteil dieser Auswertung: Relationen, die verbunden werden, können enorm groß sein Top-k Ergebnisse interessant, keine totale Ordnung Auswertung der Prädikate für jeden gültigen Verbund Ranking-Prädikate werden monolithisch ausgeführt
RankSQL - Voraussetzungen Voraussetzungen: Ranking-Operator (first-class Konstrukt) Algebraische Äquivalenzen Relationen, die das Ranking unterstützen
RankSQL – Rank-Relationale Algebra Definition (maximal-erreichbarer Score): t beliebiges Tupel P = p 1, …, p n Prädikate F(p 1, …, p n ) eine Scoring-Funktion Definition (Rank-Relation): Erweiterung einer Relation R Zusätzliche Eigenschaften: Score – maximal-erreichbarer Score für t unter F Order – Order-Beziehung unter den Tupeln nach Score
RankSQL – First-class Konstrukt Ranking-Operator: Splitting – Auswertung der Prädikate in Stufen Interleaving – Verschachtelung des Ranking-Operators mit anderen Operatoren (Selektion, JOIN, Schnitt, etc.) Operatoren (Selektion, JOIN, Schnitt, etc.) Erweiterung der Operatoren um die Ranking-Eigenschaft DatenmodellOperatoren Relationale Algebra Relation σ, π,, ∩, U, −, scan Rank-Relationale Algebra Rank-Relationμ, σ r, π r, r, ∩ r, U r, − r, scan r
RankSQL – Rank-Relationale Algebra
RankSQL - Ausführungsplan Modell der Anfragebearbeitung Baum mit physischen Operatoren (rekursive Arbeitsweise) Operatoren besitzen Methoden zum tupelweisen Zugriff Pipelining - Bearbeitungsstrategie Erweiterung des Modells für RankSQL Operatoren geben Tupel der Rank-Relationen schrittweise aus, d.h. die Reihenfolge des maximal-erreichbaren Scores wird eingehalten Anfrage besitzt eine explizite Ergebnisgröße k
RankSQL – Beispiel (1) Ranking-Operator TID…p1p2p3score s s s s s s SELECT * FROM R ORDER 1 BY p1+p2+p3 Ausführungplan:Ausführungplan:
RankSQL – Beispiel (2) Ranking-Operator TIDupper-bound s22.9 TIDupper-bound TIDupper-bound TID…p1p2p3score s s s s s s Scan p1 (R) μ p2 μ p3
RankSQL – Beispiel (3) Ranking-Operator TIDupper-bound s22.9 s12.7 TIDupper-bound TIDupper-bound s22.7 TID…p1p2p3score s s s s s s Scan p1 (R) μ p2 μ p3
RankSQL – Beispiel (4) Ranking-Operator TIDupper-bound s22.9 s12.7 s42.5 TIDupper-bound s22.55 TIDupper-bound s22.7 s12.6 TID…p1p2p3score s s s s s s Scan p1 (R) μ p2 μ p3
RankSQL – Beispiel (5) Ranking-Operator TIDupper-bound s22.9 s12.7 s42.5 TIDupper-bound s22.55 s12.4 TIDupper-bound s22.7 s12.6 s41.95 TID…p1p2p3score s s s s s s Scan p1 (R) μ p2 μ p3 Top-1 Menge: { s2 (2.55) }
Fazit Optimierung Abbildungsstrategien Vorteile: Leichte Implementierung Verbesserungen am RDBMS resultiert in Performancesteigerung Nachteile: Bei großen k wird der verwendete Algorithmus mehrfach und somit auch die Selektionsbereichanfrage mehrfach ausgeführt RankSQL Vorteile: Effiziente Ausführungspläne und Inkrementelle Bearbeitung Reduktion der Zwischenergebnisse Nachteile: Komplizierte und aufwendige Implementierung Vorverarbeitungsschritt ist aufgrund der Bewertungphase groß
Zusammenfassung Steigende Bedeutung von Top-k in vielen Anwendungsgebieten Konzept der Top-k Anfragen bietet Toleranz, und liefert zu angegebenen Suchkriterien die k besten Ergebnisse zu liefern Schnelle und effiziente Bearbeitung von Top-k Anfragen Abbildungsstrategien RankSQL mit dem Ranking-Operator Exakte Suchkriterien sind oftmals zu streng für viele Benutzer- anfragen und liefern häufig leere Ergebnismengen Fehlende Toleranz bei der Bearbeitung und im Ergebnis
Ende Vielen Dank für Ihre Aufmerksamkeit ! Fragen?