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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Partitionierungstechniken in Datenbanksystemen
Perceptrons and the perceptron learning rule
Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning.
Kap. 7 Sortierverfahren Kap. 7.0 Darstellung, Vorüberlegungen
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Polynomial Root Isolation
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
[01] - ERM Modellierung I Basiselemente von E-R-Diagrammen kennen
Der B-Baum Richard Göbel.
Bauinformatik II Softwareanwendungen 1
Anfrage-Optimierung und -Bearbeitung in Verteilten DBMS
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Effizienz: Indexstrukturen
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg1/7 Datenbanken werden als Anhäufung von Werten eines Wertebereiches aufgefasst und Datenbankabfragen.
Algorithmentheorie 6 – Greedy-Verfahren
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
SQL als Abfragesprache
Otto-von-Guericke-Universität MagdeburgGamal Kassem Übung 7 Reports mit Datenbankzugriff.
Thema: Operatoren auf Data Streams
Geometrische Objekte in Datenbanken Martin Pfeifle Institut für Informatik, Universität München Lehr- und Forschungseinheit für Datenbanksysteme Prof.
Prof. Dr. Bernhard Wasmayr
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Was sind Histogramme? (1)
Vortrag: Ingo Gensch, Mathias Reich am:
Beispielrelation Buchbestellungen H = Menge der bedeutenden Ziele = {a, d} Schwelle T = 4 Stichprobe S = {a, b, a, a, a, a} mit s = |S| = 6 N = Anzahl.
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
AWA 2007 Natur und Umwelt Natürlich Leben
Übung 1: SQL Übungen finden bei Bedarf anstelle der Vorlesungen statt
R und MS Excel Datenaustausch zwischen R und Excel auf Basis des XLConnect-Pakets Günter Faes.
Datenverteilung in Ad-hoc Netzen 1/24 Adaptive Datenverteilung in mobilen Ad-hoc Netzen unter Verwendung des Area Graph basierten Bewegungsmodells S. Bittner,
Christian Schulz, Marc Thielbeer, Sebastian Boldt
Externe Bewertung in IB-Biologie
Effiziente Algorithmen
Datenbankentwicklung IV-LK
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
6.5 Lindas Tupelraum Interaktion von Prozessen über zentralen Umschlagplatz für alle zwischen Prozessen ausgetauschten Daten: Tupelraum (tuple space) (Carriero/Gelernter,
Überblick Statistik Deskriptive Statistik=beschreibende Statistik
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
1 J4 Hash-Join R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash- Buckets abgebildet Hash-Buckets.
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Jamshid Azizi: Folie Isomorphietest Jamshid Azizi
Datenbanksysteme für hörer anderer Fachrichtungen
Aggregatsfunktion SQL = Structured Query Language.
1 Gruppierung, Aggregierung und Sortierung (2) Abarbeitungsmodell bei Gruppierung: Werte from- und where-Klauseln aus wie bisher (Bildung von Kreuzprodukt.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Structured Query Language
Eike Schallehn, Martin Endig
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
Vorlesung #5 SQL (Teil 2).
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Indexierung Oracle: indexes Indexierung.
Nutzung und Modellierung von Datenbanken
 Präsentation transkript:

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

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

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

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

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

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

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

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 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 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])

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)

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

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

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 Beispiel: Datenfluss D(A1) Es gilt: PS 3 ([A1])

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)

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])

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

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

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]

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 k Zeit in s Startzeit Gesamtzeit Mit k wächst Startzeit Startzeit viel geringer als Gesamtzeit Wichtig für Gesamtzeit: ausgeglichene Pipeline

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 < AND L.SHIPDATE > 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< ORDERS OD< k-Sort LINEITEM SD> LINEITEM SD> 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])

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 Mio Startzeit mit DQGesamtzeit mit DQ Startzeit = Gesamtzeit ohne DQ

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

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