Data Warehousing und Data Mining

Ähnliche Dokumente
Data Warehousing. Ausführung von OLAP Operationen. Ulf Leser Wissensmanagement in der Bioinformatik

Data Warehousing und Data Mining

Nutzung der Oracle Database InMemory Option für SAP BW

Data Warehousing und Data Mining

Repetitorium. Data Warehousing und Data Mining 11/12. Sebastian Wandelt 13./16. Februar 2012

Data Warehousing. Speicherung multidimensionaler Daten. Ulf Leser Wissensmanagement in der Bioinformatik

Oracle 9i Einführung Performance Tuning

Optimiertes Laden in die F-Fakten-Tabelle des SAP BW

Data Warehousing. Sommersemester Ulf Leser Wissensmanagement in der Bioinformatik

Indexstrategien im Data Warehouse

Index- und Zugriffsstrukturen für. Holger Brämer, 05IND-P

Oracle In-Memory & Data Warehouse: Die perfekte Kombination?

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II

Relationales Datenbanksystem Oracle

Partitionierung Indizes und Statistiken

Einführung relationale Datenbanken. Themenblock: Erstellung eines Cube. Schlüssel. Relationenmodell Relationenname Attribut. Problem.

Optimale Performance durch Constraints im Data Warehouse

Themenblock: Erstellung eines Cube

DOAG Konferenz Was Sie bei modernen Datenbank-Systemen anders machen müssen!

Anfrageoptimierung Kostenabschätzung

Andrea Held. Motivation ILM: Definition und Strategien Lösungen für Oracle Datenbanken. Empfehlungen

RavenDB, schnell und skalierbar

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH

Oracle Database 12c Was Sie immer schon über Indexe wissen wollten

Anfragen an multidimensionale Daten

SQL (Structured Query Language) Schemata Datentypen

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Partitioning mit Oracle Text 9i

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Aufgabe 1: [Logische Modellierung]

Wiederholung VU Datenmodellierung

Partitionierungsstrategien für Data Vault

SQL - Datenbankdesign - Aufbau

Partitionierung Indizes und Statistiken

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Cluster-Bildung. VL Datenbanken II 4 107

Data Warehousing. Relationale Datenbanken. Ulf Leser Wissensmanagement in der Bioinformatik

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

SQL structured query language

Data Warehousing Grundbegriffe und Problemstellung

Automatisierte Datenmigration mit dynamischen SQL

Erzeugung und Veränderung von Tabellen

4. Datenallokation in VDBS und PDBS Fragmentierung und Allokation Fragmentierungsvarianten

ACCESS SQL ACCESS SQL

Physische Datenbankdefinition in. Arthur Bauer

Abfragen (Queries, Subqueries)

Es geht also im die SQL Data Manipulation Language.

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Anfrageoptimierung Logische Optimierung

7. XML-Datenbanksysteme und SQL/XML

Inhalt. 1. Indextypen B*Baum-Index Reversed Key Index Bitmap Index Funktionsbasierter Index

Datenbanken zur Entscheidungsunterstützung - Data Warehousing. Prof. Dr. T. Kudraß 1

Übersicht der wichtigsten MySQL-Befehle

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Oracle OLAP 11g: Performance für das Oracle Data Warehouse

Datenbanken: Indexe. Motivation und Konzepte

GROUP BY, HAVING und Sichten

Oracle 10g Einführung

Übung Blatt 5. Materialized Views. Ulf Leser Wissensmanagement in der Bioinformatik

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Kapitel 12: Schnelles Bestimmen der Frequent Itemsets

Aggregatfunktionen in SQL

Aufgabe 1 Indexstrukturen

Anfragebearbeitung 2. Vorlesung Datenbanksysteme vom

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Transkript:

Data Warehousing und Data Mining Logische Optimierung Ulf Leser Wissensmanagement in der Bioinformatik

Inhaltsübersicht Vorlesung Architektur Modellierung von Daten im DWH Umsetzung des multidimensionalen Datenmodells Extraction, Transformation & Load (ETL) Indexstrukturen für DWH Logische Optimierung Implementierung von OLAP Operatoren Materialisierte Sichten (3-4 Termine) Data Mining (ca. 4 Wochen) Ulf Leser: Data Warehousing und Data Mining 2

Inhalt dieser Vorlesung Star-Join Grundidee Star-Join mit Bitmap-Indexen Bloom-Filter Partitionierung Ulf Leser: Data Warehousing und Data Mining 3

Typische Anfragen an ein Star-Schema time day_id day month_id month year_id year Typische Anfrage sales product_id day_id shop_id amount price product product_id product_name pg_id pg_name localization shop_id shop_name region_id region_name Joins zwischen Dimensions- und Faktentabelle Aggregation (Fakten) und Gruppierung (Dimensionen) Bedingungen auf den Dimensionstabellen Jetzt: Optimale Joinreihenfolge Ulf Leser: Data Warehousing und Data Mining 4

Beispiel Alle Verkäufe von Produkten der Produktgruppe Wasser in Berlin im Januar der Jahre 1997, 1998, 1999, gruppiert nach Jahr SELECT T.year, sum(amount*price) FROM sales S, product P, time T, localization L WHERE P.pg_name= Wasser AND P.product_id = S.product_id AND T.day_id = S.day_id AND T.year in (1997, 1998, 1999) AND T.month = 1 AND L.shop_id = S.shop_id AND L.region_name= Berlin GROUP BY T.year Ulf Leser: Data Warehousing und Data Mining 5

Anfrageplanung 3 Joins über 4 Tabellen: 4! left-deep join trees Andere berücksichtigen die meisten Optimierer idr nicht Aber: Nicht alle Tabellen sind mit allen gejoined Nur 2*2*3 der 4! enthalten kein kartesisches Produkt sales als erste oder zweite Relation ausgewählt σ pg_name= Wasser' σ year in (1997,1998, 1999) sales σ region_name= Berlin' σ month=1 product location time Ulf Leser: Data Warehousing und Data Mining 6

Join-Optimierung Typisches Vorgehen SELECT T.year, sum(amount*price) FROM sales S, product P, time T, localization L WHERE P.pg_name= Wasser AND P.product_id = S.product_id AND T.day_id = S.day_id AND T.year in (1997, 1998, 1999) AND T.month = 1 AND L.shop_id = S.shop_id AND L.region_name= Berlin GROUP BY T.year Auswahl des Planes nach Größe der Zwischenergebnisse Keine Beachtung von Plänen, die kartesisches Produkt enthalten Kartesisches Produkt σ year in (1997,1998, 1999) σ pg_name= Wasser' product σ region_name= Berlin' location sales σ month=1 time Ulf Leser: Data Warehousing und Data Mining 7

Abschätzung von Zwischenergebnissen SELECT T.year, sum(amount*price) FROM sales S, product P, time T, loc L WHERE P.pg_name= Wasser AND P.product_id = S.product_id AND T.day_id = S.day_id AND T.year in (1997, 1998, 1999) AND T.month = 1 AND L.shop_id = S.shop_id AND L.region_name= Berlin GROUP BY T.year Annahmen m= S = 100.000.000 20 Verkaufstage pro Monat Daten von 10 Jahren 50 Produktgruppen a 20 Produkten 15 Regionen a 100 Shops Gleichverteilung aller Verkäufe Größe des Ergebnisses Jan 97,98,99-60 Tage: (m / (20*12*10)) * 3*20 Wasser - 20 Produkte : (m / (20*50)) * 20 Berlin - 100 Shops (m / (15*100)) * 100 Gesamt: ~3.333 Tupel Selektivität: 0,00003% Ulf Leser: Data Warehousing und Data Mining 8

Reihenfolge zählt product location time time sales location sales product Zwischenergebnis Zwischenergebnis 1. Join (m / 15) 6.666.666 1. Join (m / 50) 2.000.000 2. Join ( J 1 *3/120) 166.666 2. Join ( J 1 *3/120) 50.000 3. Join ( J 2 /50) 3.333 3. Join ( J 2 / 15) 3.333 Ulf Leser: Data Warehousing und Data Mining 9

Plan mit kartesischen Produkten product sales time location Zwischenergebnis 1. time x location (3*20 * 100) 2.... x product ( P 1 *20) 3.... sales 6.000 120.000 3.333 Ulf Leser: Data Warehousing und Data Mining 10

Star-Join in Oracle 7 Kartesisches Produkt aller Dimensionstabellen Zugriff auf Faktentabelle über Index Hohe Selektivität für Anfrage wichtig Zusammengesetzter Index auf allen FKs muss vorhanden sein Achtung: Problem der Attributfolge im Index versus Query Bitmap-Indexe gab es noch nicht Sonst nur kleinere Zwischenergebnisse, dann teurer Scan Fixes Ablaufschema, wenn Star-Schema erkannt wurde Ulf Leser: Data Warehousing und Data Mining 11

Star-Join ab Oracle 8i Benutzung komprimierter Bitmapindexe 1. Berechnung aller FKs in Faktentabelle gemäß Dimensionsbedingungen einzeln für jede Dimension 2. Anlegen/laden von bitmapped Join-Indexen auf allen FK Attributen der Faktentabelle 3. Merge (AND) aller Bitmapindexe Das berechnet den Inner-Join der Fakten mit allen Dimensionen 4. Zugriff auf Faktentabelle über TID 5. Join nur der selektierten Fakten mit Dimensionstabellen zum Zugriff auf Dimensionswerte Die großen Zwischenergebnisse sind Bitlisten - Hauptspeicher Ulf Leser: Data Warehousing und Data Mining 12

Beispiel Schritt 1 SELECT T.year, sum(amount*price) FROM sales S, product P, time T, localization L WHERE P.pg_name= Wasser AND P.product_id = S.product_id AND T.day_id = S.day_id AND T.year in (1997, 1998, 1999) AND T.month = 1 AND L.shop_id = S.shop_id AND L.region_name= Berlin GROUP BY T.year Umformung SELECT T.year, sum(amount*price) FROM sales S, time T WHERE S.day_id IN (SELECT day_id FROM time WHERE year in (1997, 1998, 1999) AND month= 1 ) AND S.shop_id IN (SELECT shop_id FROM localization WHERE region_name= Berlin ) AND S.product_id IN (SELECT product_id FROM product WHERE pg_name= Wasser ) AND S.day_id = T.day_id GROUP BY T.year Ulf Leser: Data Warehousing und Data Mining 13

Schritt 2 & 3 SELECT T.year, sum (amount * price) FROM sales S, time T WHERE S.day_id IN (SELECT day_id FROM time WHERE year in (1997, 1998, 1999) AND month= 1 ) AND S.shop_id IN (SELECT shop_id FROM localization WHERE region_name= Berlin ) AND S.product_id IN (SELECT product_id FROM product WHERE pg_name= Wasser ) AND S.day_id = T.day_id GROUP BY T.year 2400 Bitarrays Davon ~60 gewählt Mit OR verknüpfen 1500 Bitarrays Davon ~100 gewählt Mit OR verknüpfen 1000 Bitarrays Davon ~20 gewählt Mit OR verknüpfen AND Ulf Leser: Data Warehousing und Data Mining 14

Schritt 4 & 5 0 1 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 0 = 0 0 1 0 0 1 0 22:45,1,Meier,20.000,2,M,... A2:55,2,Müller,15.000,3,W,... 33:D1,3,Schmidt,25.000,1,M,... 1A:0E,4,Dehnert,22.000,2,M,... 33:91,3,Schmolke,25.000,1,M,... 3D:D1,3,Bern,25.000,1,M,... 43:D4,3,Felder,23.000,1,M,... location time product Ulf Leser: Data Warehousing und Data Mining 15

Gesamtplan Phase 2 Phase 1 SELECT STATEMENT SORT GROUP BY HASH JOIN TABLE ACCESS FULL HASH JOIN TABLE ACCESS FULL HASH JOIN TABLE ACCESS FULL PARTITION RANGE ALL TABLE ACCESS BY LOCAL INDEX ROWID BITMAP CONVERSION TO ROWIDS BITMAP AND BITMAP INDEX SINGLE VALUE BITMAP MERGE BITMAP KEY ITERATION BUFFER SORT TABLE ACCESS FULL BITMAP INDEX RANGE SCAN BITMAP MERGE BITMAP KEY ITERATION BUFFER SORT TABLE ACCESS FULL BITMAP INDEX RANGE SCAN Kostenbasiert anderer Plan für Location LOCATION TIME PRODUCT SALES SALES_L_BJIX PRODUCT SALES_P_BIX TIME SALES_TIME_BIX Ulf Leser: Data Warehousing und Data Mining 16

Verfeinerung: Bloom-Filter Vorteile gehen verloren, wenn Bitarrays nicht in Hauptspeicher passen Weitere Idee: Bloom-Filter Schritte 2-3 werden unscharf ausgeführt Unschärfe wird so konstruiert, dass es nur Falsch-Positive aber keine Falsch-Negativen geben kann Falsch-Positiv: Tupel wird selektiert, obwohl es nicht sollte Falsch-Negativ: Tupel wird nicht selektiert, obwohl es sollte Falsch-Positive werden in Schritt 4/5 herausgefiltert Hier werden ja die wirklichen Werte gelesen Bringt Vorteile, wenn es wenig Falsch-Positive gibt und durch die Unschärfe weniger Speicher benötigt wird Ulf Leser: Data Warehousing und Data Mining 17

Ablauf Aufbau zweier Bitmaps für Fakten S Erzeuge zwei maximal große leere B 1 und B 2 Wahl einer Hashfunktion h(s) B 1 (bzw. B 2 ) Weil B 1 = B 2 < S : Mehrere TID mappen auf ein Bit Initialisierung Auswahl der Dimension D mit höchster Selektivität Für alle selektierten Tuple t aus D Scan Faktentabelle nach FK-Wert aus t B 1 [h(tid)]=1 Iteriere über alle restlichen D i Berechne B 2 [] für D i wie bei D B 1 [] = B 1 [] AND B 2 [] Ulf Leser: Data Warehousing und Data Mining 18

Ergebnis Wenn B 1 = B 2 = S wäre Nur Tupel TID mit B 1 [h(tid)] sind relevant Wir haben aber B 1 [z]=0 : Alle Tupel mit h(tid)=z garantiert nicht relevant Selbst Kombinationen aller Tupel mit h(tid)=z schaffen keine 1 in allen notwendigen Dimensionen B 1 [z]=1 : Alle Tupel mit h(tid)=z eventuell relevant Das sind potentiell Falsch-Positive Erneute Auswertung aller Bedingungen nach Joins mit Dimensionstabellen Filterschritt für Falsch-Positive Menge der zu untersuchenden Fakten aber idr schon sehr klein Ulf Leser: Data Warehousing und Data Mining 19

Eigenschaften Implementiert in DB2 Kernidee ist Reduktion der Faktentabelle vor Joins mit Dimensionstabellen Faktentabelle muss mehrmals gescanned werden Aber immer nur Zugriff auf (wenige) FK s Dynamischer Aufbau von Bitmap-Indexen Keine Vorabfestlegung des verwendbaren Speichers, sondern optimale Ausnutzung des verfügbaren Speichers Voraussetzungen Hohe Selektivität in Dimensionsbedingungen Aufbau hinreichend großer Bitmaps möglich Wahrscheinlichkeit für falsche 1 steigt überproportional mit Verhältnis S / B Ulf Leser: Data Warehousing und Data Mining 20

Inhalt dieser Vorlesung Star-Join Partitionierung Partitionierungsarten Management von Partitionen Spezielle Themen Ulf Leser: Data Warehousing und Data Mining 21

Partitionierung Aufteilung der Daten einer Tabelle in Untereinheiten Physische Partitionierung (Allokation): Für den Benutzer transparent Nach Definition der Partitionen Logische Partitionierung: Für den Benutzer nicht transparent Explizites Anlegen mehrerer Tabellen Anfragen müssen entsprechend formuliert werden Ursprünglich für verteilte Datenbanken entwickelt Verteilung der Partitionen auf verschiedenen Knoten Vereinfachte Synchronisation & Lastverteilung Wichtig ist Lokalität Anfrage Partition Ulf Leser: Data Warehousing und Data Mining 22

Vertikale Partitionierung id price amount code form... 1 50 4 011010 CASH 2 60 2 110101 VISA 3 20 1 001101 VISA id price amount 1 50 4 2 60 2 3 20 1 id code form... 1 011010 CASH 2 110101 VISA 3 001101 VISA Ulf Leser: Data Warehousing und Data Mining 23

Bewertung Zerstört semantische Einheiten die Tupel Zusammenfassen erfordert (teure) Joins Geeignete Technik zur Auslagerung von... Selten benutzten Attributen Attributen, die häufiger als andere verändert werden Und deshalb zu Reorganisation / Row Splits führen BLOBs, LONGS, etc. Herstellung von Transparenz? Definition eines Views Join muss aber berechnet werden Ulf Leser: Data Warehousing und Data Mining 24

Horizontale Partitionierung id price amount code form... 1 50 4 011010 CASH 2 60 2 110101 VISA 3 20 1 001101 VISA 4 30 4 110101 CASH 1 50 4 011010 CASH 1 50 4 011010 CASH 2 60 2 110101 VISA 4 30 4 110101 CASH 3 20 1 001101 VISA 2 60 2 110101 VISA 4 30 4 110101 CASH 3 20 1 001101 VISA Ulf Leser: Data Warehousing und Data Mining 25

Horizontale Partitionierung Wichtige Erweiterung der meisten kommerziellen RDBMS der letzten Jahre Halb-Transparent : Admin legt Partitionen an, SQL- Entwickler (Benutzer) muss sie nicht kennen Hauptvorteile Datenmanagement Partitionen als eigenständige Datenbankobjekte Parallele Verarbeitung Scans können Partitionen auslassen (Partition pruning) Ulf Leser: Data Warehousing und Data Mining 26

Prinzip CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) PARTITION BY RANGE(sales_date) ( PARTITION t21 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')), PARTITION t22 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')), ); Partitionen sind eigene Datenbankobjekte (Tabellen) Einmal angelegt, ist Existenz für Benutzer transparent Die letzte Partition kann als Grenze MAXVALUE haben Specifying a value other than MAXVALUE for the highest partition bound imposes an implicit integrity constraint on the table. Ulf Leser: Data Warehousing und Data Mining 27

Arten von Partitionierung (Oracle) Bereichspartitionierung Explizite Angabe der Partitionsbereiche Typische Attribute: Zeiträume (Archivierung historischer Daten) Balancierung muss der Administrator verantworten Einfaches Management, Partition Pruning etc. Hash Partitionierung Angabe einer Hashfunktion über Attributwerten eines Tupel Balancierung wird durch Hashfunktion erreicht Führt idr zu hoher Parallelität in Anfragebearbeitung Achtung: Ungleiche Partitionsgrößen: Evt. sogar Performanzverschlechterung Da Parallelisierung ausgehebelt Ulf Leser: Data Warehousing und Data Mining 28

Datenmanagement MERGE Verschmelzen zweier Partitionen ADD Hinzufügen einer Partition (abh. von P-Art) DROP/TRUNCATE Löschen einer Partition Nur sinnvoll bei Range-Partitionierung Viel schneller als DELETE FROM sales WHERE... Möglich: Eigenständige Archivierung DWH als Sliding Window über den Archiv Verteilung der Partitionen auf verschiedene Platten Parallelität beim IO Zugriff Ulf Leser: Data Warehousing und Data Mining 29

Exchange EXCHANGE: Wandelt Tabelle in Partition (einer anderen Tabelle) um oder umgekehrt Nur sinnvoll bei Range-Partitionierung Sehr nützlich für ETL Beispiel: Vorverarbeitung der Daten eines Tages in einer eigenen Tabelle Dann hinzufügen zu sales mit einem Befehl Keine Reorganisation, kein Indexneubau,... Ulf Leser: Data Warehousing und Data Mining 30

Partitionierung und Indexe Partitionierte Indexierung partitionierter Tabellen Globale Indexe Index unabhängig von Tabelle partitioniert Eigene DDL Kommandos Lokale Indexe Index partitioniert wie Tabelle Bildung eines lokalen Index (Indexpartition) pro Partition Manipulation automatisch mit Tabellenpartition (DROP, ADD, TRUNCATE,...) Ulf Leser: Data Warehousing und Data Mining 31

Partition Pruning Anfragen mit Bedingung auf Partitionierungsattribut Punktanfragen Direkte Auswahl relevanter Partition Partition ähnlich einer Ebene in B*-Baum Keine Performanceverbesserung Bereichsanfragen Direkte Auswahl relevanter Partitionen Daten liegen partitioniert vor (nicht nur TIDs) Erhebliche Performanceverbesserung Unterstützte Prädikate Pruning mit Bereichspartitionierung nur bei =, <, >, IN Pruning mit Hashpartitionierung nur bei =, IN Ulf Leser: Data Warehousing und Data Mining 32

Parallelität Interquery Verteilen von Anfragen auf Prozessoren / Knoten Keine Beschleunigung einzelner Queries Behandlung auf Session-Ebene (Dedicated Server / MTS) Intraquery Aufbrechen der Query in parallel ausgeführte Teilanfragen Query wird mehrmals parallel auf disjunkten Datenbereichen ausgeführt Aufbrechen durch Partitionierung bestimmt: Teile einer Anfrage laufen parallel auf unterschiedlichen Partitionen Ulf Leser: Data Warehousing und Data Mining 33

Partitionierung und Joins Join mit zwei auf dem Join-Attribut partitionierten Tabellen Effektive Parallelisierung möglich Erhebliche Beschleunigung Ulf Leser: Data Warehousing und Data Mining 34

Partitionierung und Joins Join bei nur einer partitionierten Tabelle Dynamische Partitionierung at runtime Ulf Leser: Data Warehousing und Data Mining 35

Literatur [Leh03]: Kapitel 8.5.2, 8.5.3, 7.1.2 [BG02]: Kapitel 7.3, 7.4 Oracle Dokumentation: Data Warehousing Guide Ulf Leser: Data Warehousing und Data Mining 36

Selbsttest Was ist ein Star-Join? Was ist anders als bei normalen Joins? Erklären Sie den Star-Join in Oracle 8i folgende. Was ist ein Bloom-Filter? Warum soll sich der bei Star- Joins lohnen? Welche Arten von Partitionierung gibt es? Welche davon dient der Parallelisierung? Welche Vorteile hat Hast-Partitionierung gegenüber Range-Partitionierung? Wie funktioniert ein paralleler Join über zwei nicht auf dem Join Attribute partitionierten Tabellen? Ulf Leser: Data Warehousing und Data Mining 37