460 likes | 647 Views
Seminar Data Warehousing Thema: Partitionierung. Seminarvortrag 10.06.2005 Benjamin Dunst. Gliederung. Einführung und Motivation Grundlagen der Partitionierung Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick. Übersicht. Einführung und Motivation Grundlagen der Partitionierung
E N D
Seminar Data WarehousingThema: Partitionierung Seminarvortrag 10.06.2005 Benjamin Dunst
Gliederung • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DWH Umfeld • Ausblick
Übersicht • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DWH Umfeld • Ausblick
Einführung • Daten Partitionierung: - Ansatz ursprünglich aus verteilten DB Bsp.: Logisch eine Produkttabelle - in HH produzierte Produkte (Produkttupel) liegen in HH (ProduktNr 1xxxx) - in K produzierte Produkte (Produkttupel) liegen in K (ProduktNr 2xxxx) - Produkttabelle physisch partitioniert horizontale Partitionierung nach ProduktNr
Einführung - vertikale Partitionierung (physisch) - Zuordnung verschiedener Spalten zu verschiedenen Lokationen Bsp.: Logisch eine Produkttabelle - Bildmaterial der Produkte liegt in M bei Marketing- abteilung - Verkaufspreise der Produkte liegen in der Kosten- rechnung in B • seit 2. Hälfte der `90er Einzug in zentralisierte DBMS
Einführung • Data Warehousing kann zu Datenbanken in hohen Giga- oder Terabyte-Bereichen führen • Es kommen immer mehr Daten hinzu, jedoch werden in der Regel keine gelöscht • Datenvolumen stellt DBen kaum vor Probleme • Probleme verursachen Tabellen mit vielen Millionen oder sogar Milliarden Tupeln
Motivation • Umgang mit großen Relationen • Partitionierung bietet Optimierungspotenziale • Ziel der Partitionierungstechnik: „Steigerung des Leistungsverhaltens von Anfragen im Zusammenhang mit der Datenpartitionierung“
Übersicht • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DWH Umfeld • Ausblick
Partitionierung - Grundlagen • Partitionierungsidee: „Divide & Conquer“ • Partitionen können unabhängig voneinander verwaltet werden • Performanceverbesserungen (befinden sich die in einer Abfrage benötigten Daten in einer Partition, so muss nur auf diese Partition zugegriffen werden) • Tabellen und Zugriffspfade können partitioniert werden
Partitionierung - Grundlagen • Definitionsansatz: Eine Partitionierung von Tabellen und Zugriffspfaden ist eine injektive (eindeutige) Abbildung von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werte-abhängiger oder werteunabhängiger Kriterien, wobei jedes Tupel genau einer Partition zugeordnet wird.
Partitionierung - Grundlagen • Zur Definition (1): Eine Partitionierung von Tabellen und Zugriffspfaden ist eine injektive (eindeutige) Abbildung von Tupeln einer Tabelle… Partition 1 Partition 2
Partitionierung - Grundlagen • Zur Definition (2): … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteabhängigerKriterien… - Berechnung der Partition eines Datensatzes durch eine Funktion anhand der Attributwerte - Partitionierungsarten: z.B. Range-, Hash-Partitionierung
Partitionierung - Grundlagen • Zur Definition (3): … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteunabhängigerKriterien. - DBMS hat keine Info`s, in welcher Partition sich Datensatz X befindet - Partitionierungsarten: z.B. Random-, Round-Robin-Partitionierung
Übersicht • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DHW Umfeld • Ausblick
Tabellenpartitionierung • Horizontale Partitionierung - Relation wird zeilenweise in disjunkte Teilmengen partitioniert - Tupel als Ganzes wird nicht zerlegt (wie bei vertikaler Partitionierung)
Tabellenpartitionierung Selektionsprädikat (Partitionierungsprädikat) Horizontale Partitionierung
Tabellenpartitionierung • Vertikale Partitionierung - Häufig zur Abspaltung der LOBs verwandt - Aufteilung der Relation in eine oder mehrere Spalten - Bis auf den Schlüssel disjunkt partitioniert - Für die Rekonstruktion notwendig
Tabellenpartitionierung Vertikale Partitionierung
Tabellenpartitionierung Partitionierungsdimensionen: - Eindimensionale Partitionierungsfunktion
Tabellenpartitionierung - Mehrdimensionale Partitionierungsfunktion Variante 1 Variante 2
Tabellenpartitionierung - Arten Bereichs-Partitionierung (Range-Partitioning) - Wertebereiche der ausgewählten Attribute wird in disjunkte Intervalle zerlegt - Partitionierungsfunktion aufstellen - Datensätze werden mittels Partitionierungs- funktion den Partitionen zugeteilt
Tabellenpartitionierung - Arten Selektionsprädikat Ausgangstabelle: P1 P2 P3
Tabellenpartitionierung - Arten Hash-Partitionierung - Datensätze werden mit einer Hash-Funktion verteilt - DBMS errechnet beim INSERT Partitions- nummer als Hashwert aus Attributwerten - Breite Streuung der Datensätze auf Partitionen - Vorteil: Keine parallele Suche notwendig, da die Partition wiederholt berechnet werden kann
Tabellenpartitionierung - Arten Beispiel Hashfunktion: Zwei Partitionen: h(k)= k mod 2 Partition 1 ( h(ProduktNr) = 0 ): Partition 2 ( h(ProduktNr) = 1 ): h(2004) = 2004 mod 2 = 0 h(2003) = 2003 mod 2 = 1 h(2002) = 2002 mod 2 = 0 h(2001) = 2001 mod 2 = 1 h(1005) = 1005 mod 2 = 1 h(1002) = 1002 mod 2 = 0 h(1001) = 1001 mod 2 = 1
Tabellenpartitionierung - Arten Composite - Partitionierung Kombination z.B. aus Range- & Hash-Partitionierung • Range-Partitionierung durchführen • Subpartition mittels Hash-Funktion
Tabellenpartitionierung - Arten List – Partitionierung - Administrator bestimmt diskrete Werteliste - anhand dieser Liste werden Tupel den Partitionen zugeteilt - Vorteil: Inhaltlich nicht zusammenhängende Werte können in einer Partition zusammen- gefasst werden (sonst Range-Partitionierung) - Administrator für gleichmäßige Verteilung verant- wortlich
Tabellenpartitionierung - Arten Random – Partitionierung - DBMS verteilt Tupel beim INSERT zufällig auf Partitionen - führt zu einer weitgehend gleichmäßigen Belegung - Vorteil: Partitionen können gleichzeitig durchsucht werden - Nachteil: nicht bekannt, wo Tupel abgelegt wurden
Tabellenpartitionierung - Arten Round Robin – Partitionierung - DBMS füllt beim INSERT die Partitionen ‚reihum‘ auf - gleichmäßige Partitionsbelegung - Vorteil: gleichzeitiges Durchsuchen möglich - Nachteil: nicht bekannt, wo Tupel abgelegt wurde (ganze Tabelle durchsuchen)
Tabellenpartitionierung - Arten Übersicht:
Übersicht • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DWH Umfeld • Ausblick
Anwendung DWH • Data Warehouse Ansatz - Multidimensionaler Datenraum - Realisierung meist durch RDBMS - Multidimensionale Zusammenhänge werden mittels relationalem Sternschema umgesetzt • Multidimensionales Datenmodell - Unterteilung der Daten in Fakten & Dimensionen
Anwendung DWH • Beispiel Sternschema Dimsionstabellen Faktentabelle
Anwendung DWH Mögliche Anfrage: Wieviel Umsatz haben die Kunden im Bereich Logistik im 2. Quartal erbracht? Bereich Logistik: KdNr bis 1000 2. Quartal: ZeitNr ab 91 1 1005 5074 5084 5086 5189 1005 5074 5086 5189 1 5084
ZEITNR : P3 P4 KDNR 5084 1 : 1001 1000 P1 P2 5189 1005 5074 5086 : 1 0 .. 90 91 .. .. Anwendung DWH Mögliche Anfrage: Wieviel Umsatz haben die Kunden im Bereich Logistik im 2. Quartal erbracht? (Bereich Logistik: KdNr bis 1000 ; 2. Quartal: ZeitNr ab 91)
Anwendung DWH • Partitionierung bietet Optimierungspotenziale • Bereiche: - Verwaltung sehr großer Relationen - Überspringen von Partitionen bei der Anfrageauswertung - Ausnutzung paralleler Datenbank- & Systemarchitekturen
Anwendung DWH • Verwaltung sehr großer Relationen - klassische Einfüge- & Löschoperationen für große Teile einer Datenbasis auf einzelner Tabelle ineffizient - Vorteil der Partitionierung: Einfaches Hinzufügen oder Löschen mittels DDL Anweisung
Anwendung DWH • Überspringen von Partitionen bei Anfrageauswertung (partition pruning) - Voraussetzung: Anfrage weist Restriktion auf, die über Partitionierungskriterium definiert ist - nur betroffene Relationen müssen zur Beantwortung herangezogen werden - wesentlicher leistungssteigernder Ansatz bei der Ausführung von Warehouse-Anfragen
Anwendung DWH • Ausnutzung paralleler Datenbank- & Systemarchitekturen - Aufteilen großer Datenbestände in kleinere Partitionen ermöglicht systemtechnische Optimierung - einzelne Partitionen auf unterschiedliche Festplatten verteilen, um parallel zugreifen zu können
Anwendung: Oracle Beispiel: Range-Partitionierung CREATE TABLE Produkte ( prodnr NUMBER(4) NOT NULL, prodname VARCHAR2(100), prodgruppe NUMBER(10), CONSTRAINT pkprodukte PRIMARY KEY (prodnr)) STORAGE (INITIAL 900M NEXT 900M) PCTFREE 0 PARTITION BY RANGE (prodnr) ( PARTITION prod1 VALUES LESS THAN (2000) TABLESPACE ts1 PARTITION prod2 VALUES LESS THAN (3000) TABLESPACE ts2 PARTITION prod3 VALUES LESS THAN (4000) TABLESPACE ts3 );
Anwendung: DB2 • Beispiel: Hash-Partitionierung CREATE TABLE Produkte ( prodnr int primary key, ... ) partitioning key (prodnr) using hash
Übersicht • Einführung und Motivation • Grundlagen der Partitionierung • Tabellenpartitionierung • Anwendung im DWH Umfeld • Ausblick
Ausblick Optimierungspotenzial vorhanden Unterschiede zwischen den Herstellern weitere Anwendung z.B. in der Archivierung