Approximative Queryevaluierung Fachseminar “Data Warehousing and Mining” November 1999 Ein Vortrag von Christoph Hauzenberger 1 Approximative Queryevaluierung in Data Warehouses Inhalt 1.Einleitung 2. Die zwei wichtigsten Ansätze 3. Verfahren mit Synopsen 4. Join Synopsen 5. Das Aqua-System s3 s5 s7 s 13 s 16 2 Approximative Queryevaluierung in Data Warehouses 1. Einleitung 1.1 Weshalb approximative Antworten? • Exakte Abfragen über grosse Data Cubes können Stunden dauern, da meist mehrere Gigabytes an Daten im Spiel sind • Antworten sollen auch möglich sein, wenn gewisse Daten nicht verfügbar sind (z.B. bei Ausfall eines Teils der Datenspeicher) • Ergebnisse von Aggregatsfunktionen wie avg, sum und count erfordern nicht immer volle Präzision, sind also ideale Kandidaten für Approximation 1.2 Was ist überhaupt eine approximative Antwort? • Ungefährer Wert mit Vertrauensintervall • Obere resp. untere Schranke Durchschnittliche Verkäufe 1999: 4000, +/- 200 Anzahl Einbrüche Januar: <=1000 3 Beispiel Beispiel-Relationen für Prüfungen der an ETH NOTEN P_ID F_ID Semester Note PERSON P_ID Name D_ID FACH F_ID FName T_ID DEPARTEMENT TYP D_ID DName T_ID TName 4 Approximative Queryevaluierung in Data Warehouses 2. Die zwei wichtigsten Ansätze 2.1 Adaptive Verfahren Approximativer Wert: Vertrauensintervall: Verstrichene Zeit: 134.356 Abbrechen ±0.75 12h15m28s Neustart • Vertrauensintervall wird angezeigt und ständig verbessert • Fragesteller kann Berechnung abbrechen, sobald zufrieden + Beliebig genaue Annäherungen möglich – Noch immer direkter Zugriff auf alle Datenquellen nötig 5 Approximative Queryevaluierung in Data Warehouses 2.2 Stichproben neue Daten Queries Query Engine Warehouse Ergebnisse • Einige für die gesamten Daten repräsentative Tupel werden in Query Engine (zusätzliches Modul) gespeichert • Anfragen erfolgen nicht an die Daten des Warehouse sondern an die Stichproben in der Query Engine + + – – Sehr schnell, da Abfrage nur über kleine Datenmengen Kein Zugriff auf unterliegende Datenquellen Genauigkeit des Resultats von der Qualität der Stichproben abhängig Stichproben müssen aktuell gehalten werden 6 Approximative Queryevaluierung in Data Warehouses 3. Verfahren mit Synopsen 3.1 Was sind Synopsen? Synopsen sind vorberechnete Informationen, die Aussagen über die gesamten Daten liefern (üblicherweise Histogramme oder ausgewählte Tupel) 3.2 Grundsätzliche Fragen zu Stichproben • • • • Wie werden die Stichproben erstellt? Wieviel Platz wird für das Speichern der Proben benötigt? Wie genau sind die Aussagen? Wie aufwendig sind Updates der Stichproben beim Einfügen und Löschen von Daten? 7 Approximative Queryevaluierung in Data Warehouses 3.3 uniform samples • Gleichverteilung der Daten wird angenommen • Zufällige Tupel jeder Relation werden den Daten entnommen • Bei Inserts in das Warehouse wird ein neues Tupel mit festgelegter Wahrscheinlichkeit in die Stichprobe aufgenommen, bei Deletes aus den Daten und gegebenenfalls aus der Stichprobe entfernt + Stichproben sind einfach zu unterhalten – Entweder hoher Platzverbrauch (grosse Proben) oder kleine Präzision (kleine Probengrösse) – Sind die Daten nicht gleichverteilt, sinkt die Präzision 8 Approximative Queryevaluierung in Data Warehouses 3.4 concise samples (komprimierte Stichproben) • Ziel: bessere Präzision, ohne Probe zu vergrössern • Datensätze mit gleichen Werten der grsuchten Attribute werden in den Proben nur einfach gespeichert, in der Form (Werte, Anzahl) • concise samples entsprechen Histogramm der Stichprobe • Bei Inserts wird das sample mit der kleinsten Anzahl ersetzt + Bei gleichem Speicherverbrauch wie bei random samples ist eine viel grössere Probe möglich 9 Beispiel Stichproben aus der Noten-Relation uniform samples concise samples F_ID Note F_ID Note Anzahl 17 4.75 17 4.75 2 3 5.25 3 5.25 1 22 3.75 22 3.75 1 9 6 9 9 1 ... ... ... 6 4.5 1 12 3.5 1 ... 17 4.75 ... 6 4.5 12 3.5 10 Approximative Queryevaluierung in Data Warehouses 3.4 Probleme bei zufälligen Stichproben • Data Warehouses meist im Star-Schema aufgebaut, Abfragen beinhalten also häufig Joins über Fremdschlüssel • Ein Join von Stichproben liefert im Normalfall kleine Ergebnismengen, folglich sind in diesem Fall riesige Stichproben für annehmbare Präzision nötig • Die Verteilung der Attribute ist nach dem Join verändert, die Annahme der Gleichverteilung gilt nicht mehr 11 Beispiel Join zweier Stichproben S(NOTEN) S(FACH) S(NOTEN) S(FACH) F_ID Note F_ID FName F_ID FName Note 17 4.75 4 Analysis 1 22 WiRe 3 5.25 22 WiRe 22 3.75 18 SysSoft 9 6 55 Inf.management 3 4 19 IS-K 17 4.75 27 Compilerbau 28 5.5 48 Global IS 6 4.5 36 VLSI 1 12 3.5 7 Logik 3.75 12 Approximative Queryevaluierung in Data Warehouses 4. Join Synopsen 4.1 Abhängigkeitsgraph der Relationen • Die Relationen dienen als Knoten, Fremdschlüssel-Attribute als Kanten • A ID B meint: ID ist ein Fremdschlüssel für B.ID in A • Ein Join der Relationen A und B über eine solche Kante im Graphen heisst Fremdschlüssel-Join. Die Relation A heisst dann Basisrelation des Join • Zwischen einem Tupel einer Relation r und einem eines FremdschlüsselJoins mit r als Basis besteht 1:1-Relation 13 Beispiel Abhängigkeitsgraph Beispielrelationen •N •P •D Fremdschlüssel-Joins sind z.B.: N P N P D N F T N P D F N P F T N P D F T •F •T Keine Fremdschlüssel-Joins sind z.B.: N D P N P D T P F T 14 Approximative Queryevaluierung in Data Warehouses 4.2 Join-Synopsen Für jede Relation ri kann man man einen maximalen Fremdschlüssel-Join J(ri) mit ri als Basis bestimmen. Sei Si eine Stichprobe der Relation ri. Dann nennt man J(Si) eine Join-Synopse. • Aus den Stichproben werden alle möglichen Join-Synopsen berechnet und anstatt der Proben in der Query-Engine gespeichert • Die Join-Synopse hat genau gleich viele Tupel wie die Basisrelation. • Bei Anfragen müssen keine Joins mehr berechnet werden 15 Approximative Queryevaluierung in Data Warehouses 5. Das Aqua-System neue Daten Queries Ergebnisse • • • • Query Engine Testdaten exakte Antwort Besteht aus Query Engine und Testumgebung Aqua steht für Approximate Query Answering 1998 an den Bell Labs entwickelt um Join-Synopsen zu erforschen Ermöglicht Vergleich zwischen genäherter und exakter Lösung 16 Approximative Queryevaluierung in Data Warehouses Die Aqua Query Engine SQL Query Approximation exakteLösung 17 Approximative Queryevaluierung in Data Warehouses • Beim Einfügen von Daten in eine Relation werden Tupel mit gewisser Wahrscheinlichkeit zu den Synopsen hinzugefügt. Zuerst müssen jedoch noch die benötigten Joins berechnet werden • Bei Änderungen der Warehousedaten wird ein eventueller Eintrag aus den Synopsen entfernt • Nicht relevante Spalten werden entfernt um Speicherplatz zu sparen + Gute Präzision und schnelle Ergebnisse bei Abfragen mit Joins – Erhöhter Verwaltungsaufwand 18 Approximative Queryevaluierung in Data Warehouses Leistungsanalyse des Aqua Systems Testfrage: Frage nach Durchschnittswert (avg) bei Query mit vierfachem Join über insgesamt 300 MB Daten. Präzision: Synopsengrösse von 0.1% der Daten (300KB) liefert Abweichung von 15% Stichproben grösser 2% (6MB) liefern beinahe exakte Lösung Unterhalt: Bei 2% Stichproben beträgt die Wahrscheinlichkeit, dass ein Tupel neu in die Synopsen aufgenommen wird typischerweise auch 2%. Die Anzahl zusätzlicher Joins bei 50000 neuen Tupeln ist also 1000*Anzahl Relationen 19 Approximative Queryevaluierung in Data Warehouses Quellen • “New Sampling-Based Summary Statistics for Improving Approximate Query Answers” (P. B. Gibbons, Y. Matias, SIGMOD 1998) • “Join Synopses for Approximate Query Answering” (S.Acharya, P.B.Gibbons, V.Poosala, S.Ramaswamy, SIGMOD1999) • “The Aqua ApproximateQuery Answering System” (S.Acharya, P.B.Gibbons, V.Poosala, S.Ramaswamy, SIGMOD1999) • “AQUA: System and Techniques for Approximate Query Answering” (P.B.Gibbons, V.Poosla, S.Acharya, Y.Bartal, Y.Matias, S.Muthukrishnan, S.Ramaswamy, Torsten Suel, Bell Labs 1998) 20