seminar zu datenbanksystemen sommersemester 2005 universität hannover b.sc. markus spehling...
TRANSCRIPT
Seminar zu DatenbanksystemenSeminar zu DatenbanksystemenSommersemester 2005Sommersemester 2005Universität HannoverUniversität Hannover
B.Sc. Markus SpehlingB.Sc. Markus [email protected]@web.de
Vortrag: 12.07.2005Vortrag: 12.07.2005
Based on:Based on:Top-k Selection queries over rational databases: Mapping strategies and performance evaluation, TODS 2002 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 2005RankSQL: 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 -- 7. bildlich Gipfel, Höhepunkt |der|; höchste
Stellung 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
10
20
30
40
2 4 6 8 10 12 14
Top-k Anfrage in SQL
SELECT * FROM RWHERE [Bedingungen]ORDER [k] BY [Scoring-Funktion];
Scoring-Funktion
Definition (p-Norm Scoring-Funktion): - Relation R mit A1,…, An reellwertigen Attributen
- q = (q1,…,qn) sind Präferenzwerte der Top-k Anfrage
- t = (t1,…,tn) ist ein Tupel aus R
2
1
)(||||),( 2
n
i
ii tqtqtqEucl
||max||||),( 1 iini tqtqtqMax
||||||),(1
1
n
i
ii tqtqtqSum Manhattennorm:
Euklidische Norm:
Maximumsnorm:
Scoring-Funktion – graphische Darstellung
1. 2. 3.
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
10
20
30
40
2 4 6 8 10 12 14
Beispiel: Scoring-Funktion
5250)1520()66())15,6(),20,6(( 22 Eucl
341.98125.6)1120()5.86())11,5.8(),20,6(( 22 Eucl
Euklidische Norm:
Abbildungsstrategien
Top-k AnfrageSelektionsbereichs-
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)
Abb
ildun
gWie 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 Sq
zu bestimmen, der k Tupel der Relation R liefert.
2. Retrieve – Konstruiere eine Selektionsbereichsanfrage Cq 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 bi enthalten Tupel der Datenmenge (Annahme: reellwertig)
Buckets bi haben Begrenzungen, die durch zwei Punkte definiert sind
Histogramme (2)
Alle Tupel eines Buckets bi werden auf ein repräsentierendes Tupels
abgebildet.
Setze die Anzahl der Tupel im Bucket bi 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. ),(min),( tqScoretqScore
bTt
Statische Strategien - Methoden
(1) (2)
),(max),( tqScoretqScorebTt
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 b2 (5 Tupel) und b3 (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<A1<35 AND 0<A2<30
Dynamische Strategie
)(*)( qqqq dRdNRdRS 10
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 = (q1,…,qn) eine Menge von Top-k Anfragen Funktion totalTupels(Q, ) bezeichnet alle Tupel, die mit
dem Scoringwert Sq( ) ermittelt werden können Funktion tupels(q, Sq( )) bezeichnet alle Tupel für eine
Anfrage
Für die Dynamische Strategie wird der Scoringwert Sq( *) benutzt, wobei * definiert ist als:
),(min),( * QstotalTupelQstotalTupel
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 210.000 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 mWHERE h.star=3 AND h.area=m.areaORDER 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 = p1, …, pn Prädikate F(p1, …, pn) 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
Datenmodell OperatorenRelationale
AlgebraRelation σ, π, , ∩, U, −, scan
Rank-Relationale Algebra
Rank-Relation μ, σr, πr, r, ∩r, Ur, −r, scanr
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 … p1 p2 p3 scores1 0.7 0.9 0.8 2.4
s2 0.9 0.8 0.85 2.55
s3 0.4 0.7 0.95 2.05
s4 0.5 0.45 0.75 1.7
s5 0.3 0.9 0.6 1.8
s6 0.25 0.45 0.9 1.6
SELECT * FROM R ORDER 1 BY p1+p2+p3
Ausführungplan: )))((( 123 Rscanppp
RankSQL – Beispiel (2) Ranking-Operator
TID upper-bound
s2 2.9
TID upper-bound
TID upper-bound
TID … p1 p2 p3 score
s1 0.9 1.0 1.0 2.9
s2 0.9 1.0 1.0 2.9
s3 0.9 1.0 1.0 2.9
s4 0.9 1.0 1.0 2.9
s5 0.9 1.0 1.0 2.9
s6 0.9 1.0 1.0 2.9
Scanp1(R)
μp2
μp3
RankSQL – Beispiel (3) Ranking-Operator
TID upper-bound
s2 2.9
s1 2.7
TID upper-bound
TID upper-bound
s2 2.7
TID … p1 p2 p3 score
s1 0.7 1.0 1.0 2.7
s2 0.9 0.8 1.0 2.7
s3 0.7 1.0 1.0 2.7
s4 0.7 1.0 1.0 2.7
s5 0.7 1.0 1.0 2.7
s6 0.7 1.0 1.0 2.7
Scanp1(R)
μp2
μp3
RankSQL – Beispiel (4) Ranking-Operator
TID upper-bound
s2 2.9
s1 2.7
s4 2.5
TID upper-bound
s2 2.55
TID upper-bound
s2 2.7
s1 2.6
TID … p1 p2 p3 score
s1 0.7 0.9 1.0 2.6
s2 0.9 0.8 0.85 2.55
s3 0.5 1.0 1.0 2.5
s4 0.5 1.0 1.0 2.5
s5 0.5 1.0 1.0 2.5
s6 0.5 1.0 1.0 2.5
Scanp1(R)
μp2
μp3
RankSQL – Beispiel (5) Ranking-Operator
TID upper-bound
s2 2.9
s1 2.7
s4 2.5
TID upper-bound
s2 2.55
s1 2.4
TID upper-bound
s2 2.7
s1 2.6
s4 1.95
TID … p1 p2 p3 score
s1 0.7 0.9 0.8 2.4
s2 0.9 0.85 0.8 2.55
s3 0.4 1.0 1.0 2.4
s4 0.5 0.45 1.0 1.95
s5 0.4 1.0 1.0 2.4
s6 0.4 1.0 1.0 2.4
Scanp1(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 Dankfür Ihre Aufmerksamkeit !
Fragen?