Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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.

Ähnliche Präsentationen


Präsentation zum Thema: "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."—  Präsentation transkript:

1 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 der Tupel in Buchbestellungen = 12 T * s/N = 2

2 OLAP (On-Line Analytical Processing) - Effizientes Berechnen von ICEBERG QUERIES - Bernadette Blum

3 Effizientes Berechnen von ICEBERG QUERIES 1.Begriff und Anwendungsgebiete Definition – Anwendung – Naives Berechnen und Probleme 2.Grundtechniken Begriffe – SCALED-SAMPLING – COARSE-COUNT 3.Einfache Algorithmen DEFER-COUNT 4.Optimierung (am Bsp. DEFER-COUNT) UNISCAN – MULTISCAN – MULTISCAN-SHARED 5.Experimente 6.Fazit

4 Begriff und Anwendungsgebiete Iceberg Query: große Datenmenge als Eingabe (Eisberg) kleine Anzahl von Resultaten (Spitze des Eisberges) Aggregation über Attribut(menge) attr1,..., attrk mit k >= 1 Ergebnisse oberhalb einer Schwelle T Anwendung: Data Mining (z.B. market basket query) Information Retrieval (IR) Kopierschutz Prototyp: SELECT attr1,..., attrk, count(rest) FROM R GROUP BY attr1,..., attrk HAVING count(rest) >= T Beispiel: SELECT Titel, count(*) FROM Buchbestellungen GROUP BY Titel HAVING count(*) >= 4

5 Probleme beim naiven Berechnen (1) 1.im Hauptspeicher Array mit einem Zähler für jedes Ziel oft zu wenig Speicherplatz 2.Sortieren der Relation auf der Platte, dann Aggregation und Auswahl der Ziele oberhalb der Schwelle viele Sortierdurchläufe erforderlich... v1v1 v2v2 vnvn v n-1

6 Probleme beim naiven Berechnen (2) Beispiel: market basket query Suche nach Paaren von Produkten, die häufig zusammen gekauft wurden Kunde hat {a, b, d} gekauft, also (a, b), (a, d) und (b, d) in Zielrelation für jeden Kunden, der p Produkte gekauft hat, kommen in der Zielrelation C(p, 2) = ( ) ~ p 2 /2 Tupel hinzu Arbeiten mit virtuellen Relationen 2 p

7 Grundtechniken (1) Begriffe: V = Liste von verschiedenen Zielen in R V[r] = r-häufigstes Ziel in R Freq(r) = Häufigkeit des r-häufigsten Ziels r T = min{r | Freq(r) >= T} H = {V[1],..., V[r T ]} = Menge der bedeutenden Ziele (heavy targets) HTs F = Menge der potentiellen HTs (wird von jedem Algorithmus erzeugt) Fehler in Algorithmen: F – H nicht leer => false positives (FPs) Eliminierung: durch count(F) 1. Stelle Häufigkeit jedes Ziels in F fest 2. Entferne Ziele aus F, deren Häufigkeit unterhalb der Schwelle liegt Vorsicht: für große F schlechte Laufzeit! H – F nicht leer => false negatives (FNs) Eliminierung: 1. Entferne Tupel mit Zielen, die in H und F liegen, aus R 2. Starte Anfrage auf gekürztem R => fast so aufwendig wie Problem selbst

8 Grundtechniken (2) SCALED-SAMPLING Stichprobe der Größe s aus R Für jedes Ziel in der Stichprobe: Einfügen in F (Menge der potentiellen HTs), falls Häufigkeit mindestens T * s/N ist Vorteil: einfache Implementierung und Effizienz Nachteil: Entstehung von FPs und FNs

9 Grundtechniken (3) Bsp.: für m = 2 und T = 4 COARSE-COUNT Array mit Körben A[1..m], m < n hash-Funktion h: ordnet Ziel v Korb A[i] zu (1 <= i <= m) Scan: F.a. Tupel in R mit Ziel v: A[h(v)]++ BITMAP[1..m] mit BITMAP[i] = 1, falls A[i] >= T (1 <= i <= m) (i-ter Korb bedeutend) Freigabe des für A allokierten Speichers Kandidatenwahl: Scan mit Einfügen von v in F, falls BITMAP[h(v)] = 1 Vorteil: keine FNs Nachteil: Korb kann durch ein HT oder viele LTs bedeutend werden 66 A[2] a a a a a b b c d d d d BITMAP: 11 A[1] F = {a, a, a, a, a, b, b, c, d, d, d, d} count(F) => F = {a, a, a, a, a, d, d, d, d} Ausgabe: {a, d}

10 Einfache Algorithmen DEFER-COUNT SCALED-SAMPLING mit Stichprobe der Größe s Einfügen der f häufigsten Ziele der Stichprobe in F für ein f < s COARSE-COUNT, aber A[h(v)] wird nur für Ziele erhöht, die noch nicht in F sind count(F) zur Eliminierung der FPs Kritik: 1. Wahl von s, f und m schwierig 2. Test, ob entsprechendes Ziel schon in F ist, sehr aufwendig => Verlängerung der Laufzeit Bsp.: SCALED-SAMPLING: => F = {a, a, a, a, a} f = 2 => F = {a, a, a, a, a, b} COARSE-COUNT: 14 A[1]A[2] a a a a a b b c d d d d BITMAP: 01 => F = {a, a, a, a, a, b, d, d, d, d} count(F): => F = {a, a, a, a, a, d, d, d, d} Ausgabe: {a, d}

11 Optimierung (1) UNISCAN (ein Scan mit mehreren hash-Funktionen) k hash-Funktionen: für ein m < n A 1 [1..m/k],..., A k [1..m/k] aber:anfangs wie DEFER-COUNT, aber: modifiziertes COARSE-COUNT: Scan: k hash-Funktionen und k BITMAPs Kandidatenwahl: Einfügen von v in F, falls für alle i mit 1 <= i <= k: BITMAP i [h i (v)] = 1 count(F) bei großem k: viele kleine hash tables Bsp.: nach SCALED-SAMPLING und Einfügen der f=2 häufigsten Elemente: F = {a, a, a, a, a, b} 14 COARSE-COUNT: A 1 [1] a a a a a b b c d d d d 05 A 2 [1] A 1 [2] A 2 [2] } h1h1 } h2h2 A 1 [1..m/k],..., A k [1..m/k] mit k = 2 und m = count(F) => F = {a, a, a, a, a, d, d, d, d} => F = {a, a, a, a, a, b, d, d, d, d} Ausgabe: {a, d} BITMAP 1 BITMAP 2

12 Optimierung (2) MULTISCAN (mehrere voneinander unabhängige Scans mit je einer hash-Funktion) Stichprobe und Kandidatenwahl aber: wie bei UNISCAN, aber: k Scans Speichere BITMAP 1 auf Platte... Speichere BITMAP k-1 auf Platte Lasse BITMAP k im Hauptspeicher Ziehe BITMAP 1,..., BITMAP k-1 von Platte Führe Kandidatenwahl durch

13 Experimente (1) Experimente (1) market basket query: Suchen häufig auftretender Wortpaare

14 Experimente (2) Experimente (2) market basket query: Suchen häufig auftretender Wortpaare

15 Experimente (3) Experimente (3) market basket query: Suchen häufig auftretender Wortpaare

16 Fazit Dargestellte Algorithmen effizienter als konventionelle Verfahren (wie z.B. Sortiermechanismen): weniger Speicherplatz weniger Bearbeitungsschritte über Daten Algorithmen unter verschiedenen Bedingungen unterschiedlich effizient => Wahl des Algorithmus von mehreren Faktoren abhängig Iceberg Queries sehr wichtige Form von Datenbankanfragen => Entwicklung effizienter Ausführungstechniken von großer Bedeutung


Herunterladen ppt "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."

Ähnliche Präsentationen


Google-Anzeigen