• Keine Ergebnisse gefunden

JuliaThiele Multi-Query-Optimierung Seminar:DataStreams

N/A
N/A
Protected

Academic year: 2022

Aktie "JuliaThiele Multi-Query-Optimierung Seminar:DataStreams"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Seminar: Data Streams

Multi-Query-Optimierung

Julia Thiele

j thiele@informatik.uni-kl.de

(2)

Gliederung

• Multi-Query-Optimierung

• GAG-Repr ¨asentation von Anfragen

• Verfahren der Multi-Query-Optimierung Volcano

Volcano-SH Volcono-RU Greedy-Ansatz NiagaraCQ

• Zusammenfassung

• Ausblick

(3)

Multi-Query-Optimierung

• Problematik:

Datenstr ¨ome sind meistens unendlich

kontinuierliche Anfragen werden h ¨aufig ausgewertet

⇒ effiziente Auswertung von Anfragemengen mit gleichen Unteranfragen

• Aufgaben:

Reduzierung der Auswertungskosten

Modifikation bzw. Verbinden der Anfragen zu einem global optimalen Auswertungsplan aller Anfragen

(4)

AND-OR-GAG-Repr ¨asentation

• GAG ist ein gerichteter azyklischer Graph

• besitzt AND- und OR-Knoten

AND-Knoten entsprechen algebraischen Operationen (Join, Select) ⇒ Operations- knoten

OR-Knoten entsprechen logischen Aus- dr ¨ucken, die die gleiche Ergebnismenge er- zeugen ⇒ Gleichheitsknoten

• expandierter GAG:

verdeutlicht alle M ¨oglichkeiten zur Erzeugung ei- nes Ausdrucks im Graphen

• Beispiel: (σA<10(A)) Join B

• wird in den Verfahren Volcano und Greedy ver- wendet

Expandierter GAG:

A1B

xxqqqqqqqqqqq

Join

222222222222222222222222222222222

σA<10

A1

AB

σA<10

Join

xxpppppppppppppp

A B

(5)

Volcano-Ansatz

• Ziel:

Bestimmung eines besten Ausf ¨uhrungsplanes f ¨ur Anfragen

• Vorgehensweise:

GAG mittels Tiefensuche durchlaufen Kosten f ¨ur jeden Knoten berechnen

⇒ Ergebnis: bester Ausf ¨uhrungsplan f ¨ur diese Anfrage

• Vorteil:

Kostenreduktion durch das branch and bound pruning-Verfahren und durch Spei- cherung der bisher besuchten Knoten

• Verbesserungsm ¨oglichkeiten

Volcano-SH ⇒ z. B. σA<5(A) Join B und σA<10(A) Join B Volcano-RU ⇒ z. B. (A Join B) Join C und A Join (B Join D)

(6)

Erstellung eines Ausf ¨ uhrungsplanes anhand eines Beispiels

• Kosten eines Blattknotens: cost = 0

• Kosten eines Knotens o innerhalb des GAG:

cost(o) = Ausfuhrungskosten¨ + Pe

i∈children(o) C(ei) mit C(ei) = cost(ei) wenn ei ∈/ M

oder C(ei) = min{cost(ei), reusecost(ei)} wenn ei ∈ M

Expandierter GAG Bester Ausfuhrungsplan¨

A1B

K=1000

uulllllllllllllllllll

K=1200

A1B

Join

:::::::::::::::::::::::::::::::::::

σA<10

Join

ttjjjjjjjjjjjjjjjjjjjjjjjjj

A1 K=200

AB

K=1000

A1

σA<10

Join

uukkkkkkkkkkkkkkkkkkkkk

σA<10

A B A B

(7)

Volcano-SH

• Basiert auf bestem Ausf ¨uhrungsplan des Volcano-Algorithmus

• Ziel:

Materialisierungsentscheidung f ¨ur Teilausdr ¨ucke zur Kostenreduktion

• Vorgehensweise:

Zur Vereinigung der Anfragegraphen ist eine virtuelle Wurzel notwendig GAG bottom-up betrachten

Materialisierungsentscheidung aufgrund der Anzahl der Vorfahrenknoten im GAG

• Nachteil:

fr ¨uhere Materialisierungsentscheidungen werden in die Ausf ¨uhrungskosten mit ein- bezogen

• Folgende Beispiele basieren auf diesen Anfragen:

A Join B

σA<10(A) Join B σA<5(A) Join B

(8)

Ausf ¨ uhrung des Volcano-SH-Algorithmus

Procedure VOLCANO-SH(P) M = {}

Perform prepass on P to introduce subsumption derivations LetCroot = COM P U T EM AT SET(root)

SetCroot = Croot +P

d∈M(cost(d) +matcost(d)) Undo all subsumption derivations on P where the subsumption node is not chosen to be materialized.

return(M,P)

Procedure COMPUTEMATSET(e)

if cost(e) is already memorized, return cost(e) Let operatoroe be the child of e P

For each input equivalence nodeei ofoe

Let Ci = COM P U T EM AT SET(ei) ifei is materialized, letCi = reusecost(ei) Computecost(e) = cost of operationoe +P

iCi

if(matcost(e)/(numuses(e)1) +reusecost(e)

< cost(e))

if (e is not introduced by a subsumption derivation) add e to M //Decide to materialize e

else if cost(e) +matcost(e) +reusecost(e) (numuses(e)−1)is less than savings to parents of e due to introducing materialized e

add e to M //Decide to materialize e Memorize and return cost(e)

Der Beispielgraph:

X

uukkkkkkkkkkkkkkkkkkkkkkk

))TTTTTTTTTTTTTTTTTTTTTTTTT

A2B

K=1150

A1B

K=1050

AB

K=1000

Join

++WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

Join

$$IIIIIIIIII

Join

zzvvvvvvvvvv

B

A2 K=150//

σA<5 // A1 K=200//

σA<10 // A

(9)

Volcano-RU

• Grundidee:

Zusammenfassung solcher Teilausdr ¨ucke, die scheinbar nicht zusammengefasst werden k ¨onnen

z. B. (A Join B) Join C und A Join (B Join D) ⇒ A Join B

• Vorgehensweise:

1.Phase: Festlegung einer Knotenkandidatenmenge zur Materialiserung 2.Phase: Ausf ¨uhrung des Volcano-SH-Algorithmus

• Anfragenreihenfolge relevant

→ je nach Reihenfolge resultieren verschiedene Ergebnismengen

⇒ betrachtet wird die Eingabereihenfolge und deren Umkehrung

⇒ die Variante mit den geringeren Kosten wird verwendet

(10)

Ausf ¨ uhrung des Volcano-RU-Algorithmus

Procedure VOLCANO-RU

Input: Expanded DAG on queriesQ1...Qk(including subsump- tions derivations)

Output: Set of nodes to materialize M, and the corresponding best plan P

N = {} //Set of potentially materialized nodes for each equivalence node e, set count[e]=0 fori = 1tok

Compute Pi, the best plan for Qi, using the Volcano, assuming nodes in N are materiali- zed for every equivalence node in Pi

set count[e] = count[e] + 1

if (cost(e) + matcost(e) + count[e] * reu- secost(e) < (count[e] + 1) * cost(e)) //Worth materializing if used once mo- re

add e to set N

Combine P1...Pk to get a single DAG-structured plan P

//Volcano-SH makes final materialization decision (M,P) = VOLCANO-SH

Der Beispielgraph:

X

ttjjjjjjjjjjjjjjjjjjjjjjjjjj

##G

GG GG GG GG G

A1B

K=1000

K=600//

σA<10

σA<5

zzvvvvvvvvvv A2B

K=800

K=500oo

Join

$$IIIIIIIIIIIIIIIIIIIIIIIIIIIIII AB

K=1000

Join

A1

σA<10

%%J

JJ JJ JJ JJ JJ J

Join

// B

A

σA<5

oo A2oo

(11)

Ergebnisgraph des Volcano-RU-Algorithmus

Expandierter GAG mit Kosten GAGRU

X

rrdddddddddddddddddddddddddddddddddddddddddddddddddddddddd

zzuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

##G

GG GG GG GG G

A1B

K=1000

K=600 //

σA<10

σA<5

uujjjjjjjjjjjjjjjjjjjjjjjj A2B

K=800

K=500oo X

xxrrrrrrrrrrrrrr

%%LLLLLLLLLLLLL

Join

))TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT AB

K=1000

Join

A1B

A2B

A1

σA<10 // AB

σA<5

oo

σA<10

**U

UU UU UU UU UU UU UU UU UU UU UU UU

Join

// B

Join

&&

LL LL LL LL LL LL L

xxqqqqqqqqqqqqqq

A

σA<5

oo A2oo A B

(12)

Greedy-Ansatz

• gierige Herangehensweise an die Problematik:

⇒ in jedem Teilschritt wird der Folgeschritt mit dem h ¨ochstem Gewinn ausgew ¨ahlt

• basiert auch auf der GAG-Repr ¨asentation der Anfragen

• eine m ¨ogliche Realisierung ist:

Procedure GREEDY

Input: Expanded DAG for the consolidated input query Q Output: Set of nodes to materialize and the corresponding best plan

X = {}

Y = set of equivalence nodes in the DAG while (Y! = {})

L1: Pick the node x Y with the smallest value for bestcost(Q, xX)

if (bestcost(Q, x X) < bestcost(Q, X)) Y = Y x;X = X x

elseY = {}//benefit<0, so break out of loop return X

A1B

K=800

K=800

%%J

JJ JJ JJ

JooJ K=1300 Q

K=1300

Join

/////////////////////////////

σA<10

A1 K=100

AB

K=500

σA<10

Join

yyttttttttttt

A B

(13)

Optimierungsm ¨ oglichkeiten des Greedy-Ansatzes

• Nachteil:

Pick the node x ∈ Y with the smallest value for bestcost(Q, x ∪ X)

⇒ wenn Menge Y sehr groß

⇒ Funktion bestcost wird sehr oft ausgef ¨uhrt

• Optimierungsm ¨oglichkeiten:

Teilbare Knoten zur Materialisierung definieren.

⇒ Menge Y mit diesen teilbaren Knoten initialisieren.

Einf ¨uhrung eines Algorithmus, der die Kosten inkrementell aktualisiert

⇒ Funktion bestcost muss nicht so oft aufgerufen werden

Mittels Monotonie-Heuristik die Ausf ¨uhrungsanzahl der Funktion bestcost verringern.

Hierbei wird verhindert, dass die Funktion f ¨ur jedes x ∈ Y ausgef ¨uhrt wird.

(14)

Vergleich Volcano - Greedy

• Durchf ¨uhrung der Algorithmen anhand von TPCD-Anfragen vom Typ BQ5 auf einer TPCD- Datenbank

⇒ Der Greedy-Ansatz bearbeitet den Ausf ¨uhrungsplan bei einer Benchmarkausf ¨uhrung etwa 9 Stunden schneller als der Volcano-Algorithmus

(15)

Projekt Niagara

• Ziel:

Verarbeitung verteilter Anfragen anhand von XML-Datens ¨atzen in verteilten DBMS M ¨oglichkeit mittels einer High-Level-Anfragesprache Anfragen erstellen zu k ¨onnen

• Annahme:

große ¨Ahnlichkeit der Anfragen ⇒ Gruppierungsstrategie m ¨oglich

• Vorteile:

Auswertungsergebnisse k ¨onnen gemeinsam verwendet werden

I/O-Kostenreduktion aufgrund Speicherung gemeinsamer Ausf ¨uhrungspl ¨ane und ge- meinsame Ausf ¨uhrung

geringerer Aufwand bei der ¨Uberpr ¨ufung der Anfragebedingungen

• NiagaraCQ ist die Realisierung innerhalb dieses Projekts

(16)

NiagaraCQ-Ansatz

Dieser Ansatz basiert auf:

• einer Ausdruckssignatur

→ dient zur Gruppierung von Anfragen gleicher syntaktischer Struktur

• Gruppeneigenschaften

• und einer Gruppenoptimierungsstrategie.

Diese Grundlagen werden auf den folgenden Folien n ¨aher erl ¨autert.

(17)

NiagaraCQ - Beispiel zur Ausdruckssignatur

XML-QL-Anfragbeispiel:

Where <Quote><Quote><Symbol>INTC</>

</></>element_as $g

in "http://www.cs.wisc.edu/db/quotes.xml"

construct $g

Entsprechende Ausdruckssignatur der beiden Anfragen:

Quotes.Quote.Symbol in quotes.xml = constant

Weitere Vorgehensweise:

• unterer Teil des generierten Anfrageplans ergibt die Ausdruckssignatur

• neuer Operaton Trigger-Action am Kopf der Signatur hinzuf ¨ugen

TriggerActionI

TriggerActionJ

Select Symbol=”INTC”

Select Symbol=”MSFT”

FileScan

FileScan

quotes.xml quotes.xml

(18)

NiagaraCQ - Gruppeneigenschaften

• Gruppenbestandteile:

Gruppensignatur

→ gemeinsamer Teil der Ausdruckssignatur aller Anfragen einer Gruppe konstante Gruppentabelle

→ Speicherung der Signaturen aller Anfragen in einer XML-Datei Gruppenplan

→ leitet sich aus den gemeinsamen Teilanfragegraphen ab

• Das Ergebnis enth ¨alt alle m ¨oglichen Werte der Anfragekonstanten

⇒ Filterung des Ergebnisses

(19)

NiagaraCQ - Gruppenoptimierungsstrategie

• Gruppierung aufgrund der Ausdruckssignaturen

• Vorgehensweise:

Gruppenoptimierer durchl ¨auft den Anfrageplan bottom-up Gruppenzuweisung aufgrund der Ausdruckssignatur

∗ wurde eine Gruppe gefunden

⇒ Anfrageplan in 2 Teile teilen: der obere Teil wird dem Gruppenplan hinzugef ¨ugt

∗ wurde keine Gruppe gefunden

⇒ neue Gruppe mit dieser Gruppensignatur erzeugen und in die Gruppentabelle aufnehmen

• Nachteil:

Ergebnisverschlechterung durch dynamisches Hinzuf ¨ugen und L ¨oschen von An- fragen

⇒ dynamisches Umgruppieren w ¨are notwendig

(20)

Gruppenstrategie vs. Nichtgruppierung

• Parameter zur Experimentausf ¨uhrung:

N Anzahl der installierten Anfragen

F Anzahl der ausgef ¨uhrten Anfragen innerhalb einer Gruppe C Anzahl der ge ¨anderten Tupel

T Ausf ¨uhrungszeit ⇒ T = Tg + PF Tng

• 1.Versuch: C = 1000 und F = N und nur ein Anfragetyp

⇒ keine Gruppierung: wenn N w ¨achst, steigt T drastisch

⇒ Gruppierung: ben ¨otigt bedeutend weniger Ausf ¨uhrungszeit

• 2. Versuch: F = N = 2000 Anf ragen und nur ein Anfragetyp

⇒ keine Gruppierung: T steigt an, sobald C ansteigt

⇒ Gruppierung: T verh ¨alt sich proportional zu C

• Anfragetypkombination nur m ¨oglich mit gleicher Ausdruckssignatur

(21)

Zusammenfassung

• Im Bereich Multi-Query-Optimierung gibt es schon einige gute Ans ¨atze Materialisierung von gemeinsamen Teilausdr ¨ucken

Gruppenzuordnungsstrategie

• Einige wurden hier vorgestellt:

Volcano mit den Optimierungen Volcano-SH und Volcano-RU Greedy mit einigen Optimierungsvarianten

Projekt Niagara mit Realisierung NiagaraCQ

(22)

Ausblick

• Da die Bedeutung der Datenstr ¨ome mit der Zeit zunimmt, ist auch deren Verarbeitung in der Zukunft relevant

• Es sind bestimmt noch l ¨angst nicht alle M ¨oglichkeiten ausgesch ¨opft, so dass hier weiter geforscht werden kann

• Beispielsweise besteht die M ¨oglichkeit, eine eigene Datenstrom-Algebra zu entwickeln - aber ob dies notwendig wird, ist noch fraglich

(23)

Vielen Dank f ¨ur ihre Aufmerksamkeit!

Fragen?

Referenzen

ÄHNLICHE DOKUMENTE

­  Winand, Marcus „SQL  Performance  Explained“, Marcus Winand, 2012.

• Kosten: Selektion der Tupel in Reserves (10 I/Os); für jedes dieser Tupel Suche nach matchenden Tupeln in Sailors (1000*1.2) 1.2 = Retrieval- Kosten über Hash-Index, insgesamt

Stichtenoth 11.01.2006. Mathematik f¨ ur

2 M¨ oglichkeit 1: Descartes ist der Meinung, daß mathematisches Erfassen klar und deutlich ist; glaubt aber, daß es berechtigte Zweifel an der Mathematik gibt; dann w¨ are

dividiert werden, wenn sie entweder dieselbe Basis und/oder denselben Exponenten

Welche Rechnungen kann man mit Wurzeln ausf¨ uhren.. Addition

“wie es aussieht” und mit welchen Mitteln es realisiert werden soll NICHT: wie es aussieht und mit welchen Mitteln es realisiert werden soll, NICHT:. wie es

zehn Referenten aus der Wirtschaft (häufig ehemalige Schülerinnen und Schüler bzw. Schülereltern) eingeladen, die unterschiedliche Studiengänge und Berufsausbildungen sowie