Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Michael Klein, 19. Oktober 2001 Eine Pipelining-Algebra für die effiziente Anfragebearbeitung im KDD-Prozess Diplomarbeit von Michael Klein Betreuer:

Ähnliche Präsentationen


Präsentation zum Thema: "Michael Klein, 19. Oktober 2001 Eine Pipelining-Algebra für die effiziente Anfragebearbeitung im KDD-Prozess Diplomarbeit von Michael Klein Betreuer:"—  Präsentation transkript:

1

2 Michael Klein, 19. Oktober 2001 Eine Pipelining-Algebra für die effiziente Anfragebearbeitung im KDD-Prozess Diplomarbeit von Michael Klein Betreuer: Dipl.-Inform. Matthias Gimbel Freitag, 19. Oktober 2001

3 Michael Klein, 19. Oktober 2001 Einleitung Eine Pipelining-Algebra für die effiziente Anfragebearbeitung im KDD-Prozess VorverarbeitungData MiningNachbearbeitung RohdatenWissen iterativer Prozess Knowledge Discovery in Databases Wissensentdeckung in Datenbanken Finden von neuen und nützlichen Mustern in Daten mehrstufiger Prozess interaktive Benutzung des Systems trotz großer Rohdatenbestände spontaner Anfragen komplexer Operationen wenig Vorwissen über Daten

4 Michael Klein, 19. Oktober 2001 Probleme und Lösungsansätze Ansatz zum Erreichen der Forderung: Parallelität Standardvorgehensweise: Datenparallelität Probleme 1.Abhängigkeit von der Datenverteilung 2.Fehlende Ressourcenkontrolle Deshalb: Kontrollparallelität / Pipelining 3.Operatoren unterschiedlich komplex 4.Feingranulare Aufspaltung schwierig 5.Lose Kopplung zwischen DBMS und Analysesystem 6.Keine Interaktivität Lösungsansätze Pipelining Datenqualität Optimierer Algebra

5 Michael Klein, 19. Oktober 2001 Pipelining-Algebra (1) Ziele Zerlegung von Anfragen in Form eines Operatorbaums in möglichst feingranulare Pipeline Ausgeglichene Lastsituation Beispieloperatoren GROUP Berechnet f auf Gruppen mit gleichem Wert unter [A1...An] JOINSAMPLENORMALIZE Verbindet zwei Datenströme anhand [A1...An] und [B1...Bn] Wählt eine zufällige Stichprobe der Größe g aus Passt die Werte von Attribut Ai in das Interval [a,b] ein Ziele und Beispieloperatoren Überlegung Verwendung unterschiedlicher Implementierungsvarianten für die Operatoren Untersuchung auf Zerlegbarkeit

6 Michael Klein, 19. Oktober 2001 countPickSample collectBlockGroup Pipelining-Algebra (2) Zerlegung der Operatorimplementierungen 1. [collect] Sammle Tupel mit gleichem Wert in [A1...An] in einer Hashtabelle und gebe diese hintereinander aus 2. [block] Wende auf jeden wertzusammenhängenden Block f an sortMergeJoin 1a. [sort] Sortiere erste Relation nach [A1...An] 1b. [sort] Sortiere zweite Relation nach [B1...Bn] 2. [merge] Verbinde die beiden Relationen reißverschlussartig 1. [count] Bestimme die Anzahl M der Tupel im Fluss 2. [pick] Leite jedes k-te Tupel durch (k = M/g). countMinmaxNormalize 1. [count] Bestimme min(Ai) und max(Ai) 2. [minmax] Passe das Attribut Ai tupelweise proportional zu [min(Ai),max(Ai)] in das neue Intervall [a,b] ein

7 Michael Klein, 19. Oktober 2001 Pipelining-Algebra (3) Ergebnisse Aufspaltung der Implementierungen möglich Begrenzte Zahl von Aufbereitungsstufen Noch keine Kostengleichheit Interaktivität durch Vermeidung der Aufbereitung 1. Datenaufbereitungsschritt 2. Kontinuierlicher und ressourcenschonender Verarbeitungsschritt Nur Wertzusammenhang, Sortierung, Bekanntheit von Anzahl, Minima, Maxima Aufbereitungsschritt zeitaufwändig und oft ressourcenintensiv Ziel: effizienter Datenbereitstellungsmechanismus mit angebbarer Aufbereitungsstufe Verzicht auf blockierende Aufbereitung durch genaue Buchführung und geschicktes gemeinsames Ausnutzen

8 Michael Klein, 19. Oktober 2001 Datenqualität (1) Definitionen Datenqualität = Zustand der Aufbereitung eines Datenstroms. A = [A1,...,An] bezeichnet eine Folge von Attributen Ein Datenstrom D hat die Datenqualität S + (A) gdw. die Tupel lexikographisch aufsteigend nach A sortiert sind. Sortierung Ein Datenstrom D hat die Datenqualität W(A) gdw. die bzgl. A gleichen Tupel im Fluss aufeinander folgen. Wertzusammenhang Ein Datenstrom D hat die Datenqualität D(A) gdw. sich keine zwei Tupel bzgl. A gleichen. Wertverschiedenheit Ein Datenstrom D hat die Datenqualität anz / min(A) / max(A) gdw. die Anzahl / das Minimum bzgl. A / das Maximum bzgl. A mit Ankunft des ersten Tupels bekannt ist. Wertkenntnis

9 Michael Klein, 19. Oktober 2001 Beispiel und einige Sätze Ist ein Datenfluss nach einer Attributfolge sortiert, so ist er auch nach jedem Anfangsstück dieser Attributfolge sortiert. S([A1...An]) S([A1...Ai]) für alle i < n NrPlatzSaalZeit 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 117746669112556117746669112556 B-78 B-79 A-14 A-15 E-98 A-02 A-03 A-04 C-06 B-78 B-79 E-96 D-11 D-12 F-88 20:30 15:00 14:30 15:00 10:00 11:30 20:30 20:00 Datum 16.07. 17.07. 18.07. 19.07. Datenqualität (1a) Ist ein Datenfluss nach einer Attributfolge wertverschieden, so ist er in dieser Attributfolge wertzusammenhängend. D([A1...An]) W([A1...An]) Ist ein Datenfluss nach einer Attributfolge aufsteigend sortiert, so ist in dieser Attributfolge auch das Minimum bekannt. S + ([A1...An]) min([A1...An]) S + ([Datum]) nicht: W([Datum, Zeit]) mit S([Datum, Saal, Platz]) auch S([Datum, Saal]) mit D([Datum, Platz]) auch W([Datum, Platz]) mit S + ([Nr]) auch min([Nr])

10 Michael Klein, 19. Oktober 2001 Datenqualität (2) Datenqualitätsanforderungen und –transformationen Für jede Implementierungsvariante erforderlich: Mindestdatenqualität der Eingangsdatenströme Datenqualitätstransformation Beispiel: GROUP Notation: implementierungsName MindestdatenqualitätAusgangsdatenqualität blockierender Ausgang verzögernder Ausgang hashGroup(A, f) D(A) S(*) anz blockGroup(A, f) D(A) anz W(A) noopGroup(A, f) D(A)

11 Michael Klein, 19. Oktober 2001 Datenqualität (3) Bereitstellung der Datenqualität gesucht: Zugriffsmethode, die Bereichs- und Wertanfragen unterstützt die Daten effizient in Strom gewünschter Qualität anbietet nicht geeignet: physische Clusterung hier: Index auf Basis raumfüllender Kurven Lokalitätseigenschaft Funktion: mehrdimensionaler Raum lineare Folge von Adressen Hilbertkurve

12 Michael Klein, 19. Oktober 2001 Datenqualität (4) Verwendung raumfüllender Kurven Bereichsanfragen Lesen der Kurvenabschnitte von Platte, die im Anfragequader liegen 2 3 4 1 Datenqualitäts- anforderungen Durch Zerlegung des Anfragequaders in schmale Streifen, die nacheinander gelesen werden 12 345 678 91011 121314 Abschwächung der Anforderungen Verbreiterung der Streifen, so dass die Sortierung nur blockweise gegeben ist, nicht jedoch innerhalb eines Blocks. 1 2 3 4 5 effizient ineffizient Effizienz einstellbar entstehende Datenqualität: Pseudosortierung: PS k (A) k = max. Anzahl der Wertkombinationen pro Block

13 Michael Klein, 19. Oktober 2001 Pseudodatenqualität (0) Definition Pseudosortierung k Ein Datenstrom D hat die Datenqualität PS k (A) wenn er sich so in aufeinander folgende Blöcke zerlegen lässt, dass in jedem Block maximal k bezüglich A wertverschiedene Tupel auftreten alle Tupel aus einem Block jeweils bezüglich A kleiner sind als die im darauf folgenden Block Pseudowert- zusammenhang k Ein Datenstrom D hat die Datenqualität PW k (A) wenn er sich so in aufeinander folgende Blöcke zerlegen lässt, dass in jedem Block maximal k bezüglich A wertverschiedene Tupel auftreten keine Wertkombination bezüglich A in zwei verschiedenen Blöcken auftritt 4 1 2 2 4 1 8 10 8 8 15 15 15 12 13 12 15 12 Beispiel: Datenfluss D(A1) Es gilt: PS 3 ([A1])

14 Michael Klein, 19. Oktober 2001 Pseudodatenqualität (1) Verwendung Direkte Verwendung von Pseudodatenqualitäten nicht möglich Bereitstellung spezieller Implementierungen zu deren Aufbereitung k-Collect(A) W(A)PW(A) k-Sort(A) S(A)PS(A)

15 Michael Klein, 19. Oktober 2001 Pseudodatenqualität (2) Beispiel SELECT Vorname, Nachname, AVG(Note) AS Schnitt FROM Klausurergebnis GROUP BY Vorname, Nachname ORDER BY Nachname, Schnitt PW([N,V]) PS([N,V]) W([N,V]) W([V,N]) index PS([N,V]) k-Collect([N,V]) D([V,N]) S([N,S]) blockSort([N,S]) out S([N,V]) S([N]) D([V,N]) k-Sort([N,V]) blockGroup([V,N], AVG) D([V,N]) PS([N,V])

16 Michael Klein, 19. Oktober 2001 Fazit Was wurde erreicht? Hoher Paralellisierungsgrad durch vielstufige Pipeline Ausgeglichene Einzelschritte innerhalb der Pipeline durch Anpassung der Blöckgröße k Interaktive Abarbeitung aufgrund nicht-blockierender Implementierungen ( geringe Startzeit) Kontrollierbarer Ressourcenverbrauch über Blockgröße k Beliebig große Datenmengen aufgrund ressourcenschonender Implementierungen möglich Effiziente Bearbeitung auch von komplexen Anfragen durch genaue Buchführung und Mehrfachverwendung von Datenqualitäten möglich Unabhängigkeit von statischer Datenverteilung: Ad-hoc-Anfragen mit beliebigen Attributkombinationen durch Index basierend auf raumfüllenden Kurven möglich. Aber: riesiger Optimierungsspielraum

17 Michael Klein, 19. Oktober 2001 Interaktivitätsgerechter Optimierer Grundziel: Interaktivität Also: Ausführung der Anfrage mit möglichst geringer Start- und Gesamtzeit Grundsätzliches Vorgehen in zwei unabhängigen Schritten: 1. Theoretische Optimierung Ziel: Finden des Ausführungsplans P, der theoretisch die beste Start- und Gesamtzeit bietet 2. Praktische Optimierung Ziel: Optimale Verteilung der Einzelschritte von P auf real vorhandene Recheneinheiten P

18 Michael Klein, 19. Oktober 2001 Erweiterung: Datenparallelität Ziel: Datenparallele Ausführung ganzer Pipelineabschnitte zur Erhöhung des Parallelitätsgrads Vorgehen: Einführung von zwei Spezialoperatoren zum Aufsplitten und Vereinen von Datenströmen k-Collect index blockGroup out W(A)D(A)PW(A) hash- Split PW(A) tupel- Merge D(A) k-Collect blockGroup A A A Splitqualität: VEREINT(A) Tupel, die bezüglich A gleich sind, laufen durch den selben Teilfluss. Mindest-DQ: W(A) Mindest-SQ: VEREINT(A) index [A1]

19 Michael Klein, 19. Oktober 2001 Messergebnisse (1) Start- und Gesamtzeit in Abhängigkeit von k Grundlage: TPC-H-Test für entscheidungsunterstützende Systeme Drei Relationen: CUSTOMER (140 MB), ORDERS (600 MB), LINEITEM (1,4 GB) SELECT * FROM ORDERS O, LINEITEM L WHERE O.OK = L.OK ORDERS k-Sort LINEITEM merge- Join merge- Join PS([O.OK]) PS([L.OK]) S([O.OK]) S([L.OK]) Blockgröße k10 1 10 2 10 3 10 4 10 5 10 6 100 200 300 400 500 600 700 Zeit in s Startzeit Gesamtzeit Mit k wächst Startzeit Startzeit viel geringer als Gesamtzeit Wichtig für Gesamtzeit: ausgeglichene Pipeline

20 Michael Klein, 19. Oktober 2001 Messergebnisse (2) Komplexe Anfragen: Vergleich mit Standardimplementierungen SELECT L.OK, SUM(L.PRICE), O.ORDERDATE, O.PRIORITY FROM CUSTOMER C, ORDERS O, LINEITEM L WHERE O.MKTSEGMENT = 'BUILDING' AND O.ORDERDATE < 1995-03-15 AND L.SHIPDATE > 1995-03-15 AND C.CK = O.CK AND L.OK = O.OK AND O.OK > x GROUP BY L.OK, O.ORDERDATE, O.PRIORITY Dritte Anfrage aus TPC-H: ORDERS OD<95-03-15 ORDERS OD<95-03-15 k-Sort LINEITEM SD>95-03-15 LINEITEM SD>95-03-15 merge- Join merge- Join PS([O.OK]) PS([L.OK]) S([O.OK]) S([L.OK]) CUSTOMER MS='BUILDING' oneHash Join oneHash Join block Sort block Sort S([O.OK]) S([L.OK]) S([O.OK]) S([L.OK]) block Group block Group S([L.OK,O.OD,O.SP])

21 Michael Klein, 19. Oktober 2001 Messergebnisse (3) Komplexe Anfragen: Vergleich mit Standardimplementierungen Startzeit bei Ausführungsplan mit DQ immer niedriger Gesamtzeit bei Ausführungsplan mit DQ kleiner für x unter 2 Mio. Größere Relationen nur mit DQ Zeit in s x in Mio0123455.55.9 60 120 180 240 300 360 Startzeit mit DQGesamtzeit mit DQ Startzeit = Gesamtzeit ohne DQ

22 Michael Klein, 19. Oktober 2001 Erweiterungen Interaktivitätsgerechte Optimierung raumfüllende Kurven PseudodatenqualitätDatenqualität Pipelining-Ansatz Algebra Zusammenfassung & Ausblick Effiziente Anfragebearbeitung im KDD-Prozess sehr große Datenmengen, Skalierbarkeit beschränkte Ressourcen Interaktivität nötig geringe Startzeit Ad-hoc-Anfragen, keine ausgezeichneten Attribute komplexe Anfragen komplexe Einzeloperatoren aufwändige Lernverfahren geringe Gesamtzeit wünschenswert riesiger Optimierungsspielraum wenig Vorwissen über Datenverteilung hoher Parallelisierungsgrad, lange Pipelines wünschenswert lose Kopplung zwischen DBMS und Analysesystem unausgeglichene Pipelines

23 Michael Klein, 19. Oktober 2001 Ausblick Eingebettete Datenbanken extrem beschränkte Ressourcen Interaktivität Echtzeitfähigkeit Grid Computing schnelle Netze Spezialisierung der Einzelrechner Ressourcenverbrauchsanpassung Einsatzgebiet Einbettung in kommerzielles DBMS Enge Kopplung, Interaktivität, Ressourcenkontrolle Verwendung weitergehender Datenqualitäten PUFFER -Operator Erweiterungen


Herunterladen ppt "Michael Klein, 19. Oktober 2001 Eine Pipelining-Algebra für die effiziente Anfragebearbeitung im KDD-Prozess Diplomarbeit von Michael Klein Betreuer:"

Ähnliche Präsentationen


Google-Anzeigen