Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

- Schnittmengenbildung -

Ähnliche Präsentationen


Präsentation zum Thema: "- Schnittmengenbildung -"—  Präsentation transkript:

1 - Schnittmengenbildung -
Aufgabe 2 - Schnittmengenbildung -

2 Übung Data Warehousing
Problem Vergleich zweier Listen (von Tupeln) auf Duplikate  Bildung der Schnittmenge  Listen jeweils deutlich größer als Hauptspeicher Anwendung: ETL  Berechnung differentieller Snapshots 4. Juni 2003 Übung Data Warehousing

3 Übung Data Warehousing
Lösungen Naiv Nested Loop Besser Sort Merge Join Noch besser ? Partition Hash Join 4. Juni 2003 Übung Data Warehousing

4 Übung Data Warehousing
HashJoin Trick: es werden nicht mehr alle Tupel miteinander verglichen Vergleich findet statt zwischen Tupeln mit dem gleichen HashCode Dazu kann über ein beliebiges Attribut gehashed werden (meist: ID) bei uns gibt es ohnehin nur ein Attribut  Hashfunktion für Zahlenwert 4. Juni 2003 Übung Data Warehousing

5 Übung Data Warehousing
HashJoin: Schritt 1 Value1 Value2 Value3 Value4 Value5 Value6 Value7 Value8 Value1 Value4 Value8 Value5 Value6 Value9 Value3 Value7 Bucket 1 Bucket 1‘ Bucket 2 Bucket 2‘ Bucket 3 Bucket 3‘ Bucket 4 Bucket 4‘ Bucket 5 Bucket 5‘ Bucket 6 Bucket 6‘ 4. Juni 2003 Übung Data Warehousing

6 Vergleich der Elemente mittels neuer Hashfunktion
HashJoin: Schritt 2 Bucket 1 Vergleich der Elemente Bucket 1‘ Bucket 2 mittels neuer Hashfunktion Bucket 2‘ Bucket 3 Bucket 3‘ Bucket 4 Bucket 4‘ Bucket 5 Bucket 5‘ Bucket 6 Bucket 6‘ 4. Juni 2003 Übung Data Warehousing

7 Übung Data Warehousing
Vorgehensweise Im konkreten Fall: Beschränkung des Hauptspeichers  Zwischenspeicherung der Buckets (1..n, 1..n‘) als Dateien  Laden von zwei korrespondierenden Buckets (i, i‘)  Vergleich der Elemente 4. Juni 2003 Übung Data Warehousing

8 Übung Data Warehousing
Zu beachten Die erste Hashfunktion sollte die Tupel gleichmäßig auf die Buckets verteilen  modulo Primzahl Es sollten beim ersten Schritt nicht zu viele Buckets entstehen, da jeweils ein Filehandle nötig ist Bei zu wenigen Buckets enthält aber jedes zu viele Daten für den späteren Vergleich im Hauptspeicher 4. Juni 2003 Übung Data Warehousing

9 Übung Data Warehousing
Zeitaspekt Bezüglich der benötigten Zeit für die Berechnung lohnt es sich, vieles selber zu programmieren Java bietet die Klasse util.Hashtable, die aber langsamer ist als ein eigener Array-Hash Benutzung einer eigenen Hash-Funktion, und nicht des JAVA Standards Besondere Beachtung auf den IO Funktionen, da hier die Hauptlast entsteht 4. Juni 2003 Übung Data Warehousing

10 Übung Data Warehousing
Lösung von Aufgabe 2 Es existieren Duplikate z.B. 2x 97 Buckets, je ca. 1MB mit HashJoin etwa 2:30 Minuten sort –n data1 data2 | uniq –d auf der Konsole dauert ca. 5 Minuten 4. Juni 2003 Übung Data Warehousing

11 Algorithmus: Sort-Merge
... 4. Juni 2003 Übung Data Warehousing

12 Übung Data Warehousing
Vergleich Hash-Join versus Sort-Merge Join Sei |F|/HS = X (Anz. Buckets) HJ braucht für das Hashen X+1 Files für das Mergen 2 Files Schreibt beim Hashen ungeordnet SM braucht für das Sortieren 1+1 Files Für das Mergen 2*X Files Liest beim Mergen ungeordnet 4. Juni 2003 Übung Data Warehousing

13 Übung Data Warehousing
Anhang: Hashfunktion int[] hash = new int[hashgroesse]; int linearHashing (int key) { // den Hashcode bestimmen code = (key / primzahl) % hashgroesse; // ist der Hash an dieser Stelle schon belegt? while (hash[code] != 0) { // dann um einen Platz weiterrücken code++; // aber bitte im Array bleiben code = code % hashgroesse; } // Hash belegen und Code zurückgeben hash[code] = code; return code; 4. Juni 2003 Übung Data Warehousing


Herunterladen ppt "- Schnittmengenbildung -"

Ähnliche Präsentationen


Google-Anzeigen