Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Interoperable Informationssysteme - 1 Klemens Böhm Systeme 2: Query Processing - Grundlagen.

Ähnliche Präsentationen


Präsentation zum Thema: "Interoperable Informationssysteme - 1 Klemens Böhm Systeme 2: Query Processing - Grundlagen."—  Präsentation transkript:

1 Interoperable Informationssysteme - 1 Klemens Böhm Systeme 2: Query Processing - Grundlagen

2 Interoperable Informationssysteme - 2 Klemens Böhm Interoperabilität – Architektur Wrapper Source Mediator Wrapper Source Client Wrapper Source Anfragen sind deklarativ, Ausführung muss gefunden werden. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

3 Interoperable Informationssysteme - 3 Klemens Böhm Mediatoren und Wrapper l Aufgaben des Mediators: u Parsen der Query, Query Rewrite, u Query Optimization, u Ausführung eines Teils der Anfrage, u Verwaltung des globalen Schemas. l Aufgabe des Wrappers: u Übersetzen jedes Requests des Mediators in die Sprache der zugrundeliegenden Komponente, u Übersetzen des Anfrageergebnisses ins Mediator-Format; Konformität zum globalen Schema. l Mediatoren und Wrapper sind Bestandteile der Software-Architektur. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

4 Interoperable Informationssysteme - 4 Klemens Böhm Gliederung im folgenden l Problem im folgenden: Wie geht Query Processing? l Vorgehen: u Aussagen zu Query Processing allgemein (nicht-verteilter Fall) u Query Processing im verteilten, heterogenen Fall: –Middleware für Information Integration: Harmony –Erweiterbarkeit Hinzunehmen neuer Komponenten, benutzerdefinierte, externe Funktionen, –Adaptivität. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

5 Interoperable Informationssysteme - 5 Klemens Böhm Query Processing - Schritte l Parsing: Umwandlung der Query in interne Repräsentation l Query Validation: Überprüfung, ob die Query nur zulässige Referenzen auf existierende Datenbankobjekte enthält. l View Resolution: Expandieren von Views/Integritätsbedingungen in die Query, l Optimization: Erzeugung eines ausführbaren Plans, l Plan Compilation: Umwandlung des Plans in direkt ausführbare Repräsentation, l Execution. Parsing Query Validation View Resolution Optimization Plan Compilation Execution Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell Klassisches Modell, wird später z.T. gekippt.

6 Interoperable Informationssysteme - 6 Klemens Böhm Algebraische Darstellung von Queries l Operatoren haben eine oder mehr Input- Mengen und erzeugen eine (oder mehr) Output-Menge(n). l Blätter entsprechen Quellen, z.B. Relationen. Get p,Person Get a,Account p.age<30 a,balance>10000 name Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell Gib mir die Namen der Personen, die jünger als 30 sind und mehr als 10000 auf einem Konto haben.

7 Interoperable Informationssysteme - 7 Klemens Böhm Logische u. physische Algebraausdrücke Intersection Set A Set B Merge-Join (Intersect) Sort File Scan A File Scan B l Logische Operatoren drücken aus, welches die Zwischenergebnisse sind. l Physische Operatoren geben an, wie die Queryevaluierung abläuft. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

8 Interoperable Informationssysteme - 8 Klemens Böhm Logische und physische Algebra Warum Unterscheidung? l Physical Algebra ist systemspezifisch, z.B. unterschiedliche Join-Implementierungen: Nested-Loop, Sort-Merge, Hash. l Nur Operatoren der physischen Algebra haben Kosten. Unterschiedliche Operatoren: l Weniger Operatoren auf logischer Ebene, z.B. kein Sort. D.h. Sortiertheit ist keine logische Eigenschaft, logische Sicht ist Mengen-Sicht. l Physische Operatoren implementieren mehrere oder nur Teile von logischen Operatoren (z.B. Join-Implementierung enthält Projektion, Duplicate-Removal) Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

9 Interoperable Informationssysteme - 9 Klemens Böhm Operator-Implementierung Alternativen: l set-at-a-time, l tuple-at-a-time. Set-at-a-time: - evaluiert Operatoren nacheinander. Get p,Person Get a,Account p.age<30 a,balance>10000 name Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

10 Interoperable Informationssysteme - 10 Klemens Böhm Operator-Implementierung - Tuple-at-a-Time Tuple-at-a-time implementiert Iteratorkonzept. Üblicherweise einheitliche Operationen: l open (baut beim Hash-Join z.B. Hash-Tabelle auf), next, erst next erklären, am Beispiel des -Operators l close. Get p,Person Get a,Account p.age<30 a,balance>10000 name Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

11 Interoperable Informationssysteme - 11 Klemens Böhm Operator-Implementierung - Tuple-at-a-Time (2) Iteratorkonzept - Erläuterungen: l Ergebnis und Zwischenergebnisse sind Folge von Tupeln (aber auch andere Granularität möglich), l jeder Operator implementiert Iterator über sein Zwischenergebnis, l Operator ruft Input-Operator auf, um nächsten Tupel etc. zu bestimmen. l Tuple-at-a-time ist zwar i.d.R. schneller, funktioniert aber nicht immer bei Updates. Beispiel: Erhöhe das Einkommen von den 10% der Mitarbeiter, die am wenigsten verdienen, um CHF 200,--. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

12 Interoperable Informationssysteme - 12 Klemens Böhm Meta-Operatoren Input wird nicht manipuliert, stattdessen Kontroll-Funktion: l Wechsel von einer Granularität zur anderen, Ziel: Reduzierung der Netz-Belastung. l Caching. Get p,Person Get a,Account p.age<30 a,balance>10000 Receive Send Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

13 Interoperable Informationssysteme - 13 Klemens Böhm Queryoptimierung/Querypläne Grundprobleme: l Query ist (per Definition) deklarativ, macht keine Aussagen zur Ausführungsreihenfolge. Man benötigt aber ausführbaren Plan. l Ziel ist nicht unbedingt, optimalen Plan zu finden, guter Plan reicht im allgemeinen. Optimierungszeit verlängert Gesamtdauer des Query Processing. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

14 Interoperable Informationssysteme - 14 Klemens Böhm Gängige graphische Darstellung einer (Select-Project-Join) Query (SPJ-Query), z.B. select v2.Name from p in produkt, v in verkauf, v2 in verkaeufer, g in geschaeft, s in stadt whereg.location == s and s.bundesland == bayern... Query Graph produkt verkaeufer verkauf geschaeft stadt Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

15 Interoperable Informationssysteme - 15 Klemens Böhm Join-Prädikate vs. Selektionsprädikate l Selektionsprädikat - Prädikat, das sich auf eine Relation bezieht u Beispiel: verkaeufer.name == Bischoff, u würde im Querygraph durch Zykel dargestellt, wird aber oft weggelassen, u Selektionsprädikate werden _üblicherweise_ so früh wie möglich evaluiert. produkt verkaeufer verkauf geschaeft stadt Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

16 Interoperable Informationssysteme - 16 Klemens Böhm Join-Prädikate vs. Selektionsprädikate l Join-Prädikat - Prädikat, das sich auf zwei Relationen bezieht, u entspricht Kante im Querygraph, u bei frei definierbaren Prädikaten kann Join-Prädikat sich auf mehr als zwei Relationen beziehen. produkt verkaeufer verkauf geschaeft stadt Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

17 Interoperable Informationssysteme - 17 Klemens Böhm Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell Querypläne Menge der möglichen Pläne: l left-deep vs. bushy dazwischen: Beschränkung der Tiefe des rechten Teilbaums left-deep - als Liste von Relationen darstellbar. l kartesisches Produkt oder nicht. Differenzierungen werden gebraucht für Queryplanerzeugung – was genau wird erzeugt? stadtgeschaeft verkauf produkt verkaeufer stadtgeschaeft produkt verkauf verkaeufer

18 Interoperable Informationssysteme - 18 Klemens Böhm Query Optimierung l Queryoptimierung := Erzeugung eines guten Queryplans, nicht in erster Linie des besten. l zentrales Problem bei Queryoptimierung: Anordnung der Joins (Join Enumeration) Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

19 Interoperable Informationssysteme - 19 Klemens Böhm Bottom-Up Query Optimierung l Schrittweises Vorgehen: Schritt k berechnet besten Plan für zusammenhängenden Teilgraphen der Grösse k.zusammenhängenden Teilgraphen l Vorgehen: Man erzeugt mehrere sog. Kandidaten-Pläne, und zwar durch Verknüpfung optimaler Teilpläne (hier im Algorithmus alle optimalen Teilpläne der Grösse k-1). l Streng genommen müsste man noch beweisen, dass Teilpläne des optimalen Plans für ihren Teilplan optimal sind. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

20 Interoperable Informationssysteme - 20 Klemens Böhm Bottom-Up Query Optimierung procedure DP: for i := 2 to n do { for all S {R 1, …, R n } s.t. ||S||=i do { bestPlan := a dummy plan w/ infinite cost for all R j, S j s.t. S = {R j } S j do { p := joinPlan(optPlan(S j ), R j ) if cost(p) cost(bestPlan) bestPlan := p} optPlan(S) := bestPlan}} return (optPlan({R 1, …, R n })) Subgraphen müssen zusammenhängend sein. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

21 Interoperable Informationssysteme - 21 Klemens Böhm Bottom-Up Query Optimierung - Erläuterungen l Algorithmus implementiert nur Join-Enumeration. l Menge der möglichen Pläne ist hartkodiert (s.b. Animation auf voriger Folie), l Bottom-up Query Optimierung = Dynamic Programming. Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

22 Interoperable Informationssysteme - 22 Klemens Böhm Kostenmodellierung l Man hat mehrere mögliche Pläne für eine Query (bzw. für eine Teilquery), muss sich für einen entscheiden. l Übliches Kriterium: Dauer der Ausführung, aber auch andere Kosten denkbar, z.B. Ressourcenverbrauch oder pekuniäre Kosten l externe Kosten apriori nicht bekannt, Schätzung (Kostenmodell) erforderlich. l Kostenmodell sollte realistisch, aber nicht zu ausgefeilt sein (Gesamtkosten = Kosten Queryoptimierung + Kosten Queryevaluierung) Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell

23 Interoperable Informationssysteme - 23 Klemens Böhm Sortieraufwand Kostenmodellierung - Beispiel l Nested-Loop Join ohne Indexunterstützung R1 wird stückweise eingelesen und mit R2 gejoint; Main Memory gross R2 wird nur einmal gelesen. l Sort-Merge Join, Relationen sind sortiert. l Sort-Merge Join, Relationen sind unsortiert. Anzahl Blocks, die R 1 belegt. Grösse Main Memory Motivation Query Proc. Basics Übersicht Q. Proc. log. vs. phys. Alg. Queryeval. Optimie- rungen Queryplan- erzeugung Kosten- modell.

24 Interoperable Informationssysteme - 24 Klemens Böhm Kostenmodellierung l Das ist nur die halbe Wahrheit: Man muss auch die Grösse des Join- Ergebnisses abschätzen, um Kosten der darauf aufbauenden Operatoren schätzen zu können, l sehr schwierig, da von der Werteverteilung in den Relationen abhängig. Motivation Query Proc. Basics -Übersicht Q. Proc. - log. vs. phys. Alg. - Queryeval. - Optimie- rungen - Queryplan- erzeugung - Kosten- modell. Infrastruktur Erweiterbar- keit 1 Erweiterbar- keit 2 Adaptivität

25 Interoperable Informationssysteme - 25 Klemens Böhm Plädoyer für Heuristiken für die Queryoptimierung l Anzahl der möglichen Querypläne wächst exponentiell mit der Anzahl der Join-Prädikate. l Vollständige Aufzählung der Pläne i.d.R. nur möglich für Queries mit ca. sechs Joins. l Grosse Queries kommen vor: u Datenbank-Frontends erzeugen automatisch komplexe Query-Statements, u komplexe Sichtdefinitionen, die der User i.a. nicht sieht, u OLAP-Queries. l Menge möglicher Querypläne vergrössert sich in nicht-konventionellen Szenarien. - Beispiele: u Client-Server Verteilung, u benutzerdefinierte Prädikate. l D.h. man kann in Wirklichkeit nicht alle Pläne aufzählen. Motivation Query Proc. Basics -Übersicht Q. Proc. - log. vs. phys. Alg. - Queryeval. - Optimie- rungen - Queryplan- erzeugung - Kosten- modell. Infrastruktur Erweiterbar- keit 1 Erweiterbar- keit 2 Adaptivität


Herunterladen ppt "Interoperable Informationssysteme - 1 Klemens Böhm Systeme 2: Query Processing - Grundlagen."

Ähnliche Präsentationen


Google-Anzeigen