Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Data Warehousing Thema: Partitionierung

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Data Warehousing Thema: Partitionierung"—  Präsentation transkript:

1 Seminar Data Warehousing Thema: Partitionierung
Seminarvortrag Benjamin Dunst

2 Gliederung Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick

3 Übersicht Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick

4 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

5 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

6 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 Die Datenmanipulation im OLTP-Betrieb (Online Transaction Processing), aber auch eine klassische Datensicherung (Offline-Backup) oder die Reorganisation derartig großer Tabellen begrenzen zum einen die Leistung des gesamten Systems, zum anderen kann dadurch die Verfügbarkeit der Daten wesentlich eingeschränkt werden. Aufgrund der Forderung nach hoher Verfügbarkeit der Daten (z.B. global tätige Unt mit einem DHW) sind Online Backups oder eine Online- Reorganisation ansatzweise mögliche Lösungen der Probleme Daten müssen aus betriebswirtschaftlichen und/oder rechtlichen Gründen erhalten bleiben l

7 Motivation Umgang mit großen Relationen
Partitionierung bietet Optimierungspotenziale Ziel der Partitionierungstechnik: „Steigerung des Leistungsverhaltens von Anfragen im Zusammenhang mit der Datenpartitionierung“ Leistungsanforderungen: Verfügbarkeitsanforderungen:

8 Übersicht Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick

9 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

10 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.

11 Partitionierung - Grundlagen
Zur Definition (1): Eine Partitionierung von Tabellen und Zugriffspfaden ist eine injektive (eindeutige) Abbildung von Tupeln einer Tabelle… Partition 1 ProduktNr ProduktName ProduktGruppe ProduktPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1003 Basketball 1 70,00 1003.bmp 1004 Volleyball 21,99 1004.bmp 1005 Tennisball 2,33 1005.bmp : 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp 2005 Schuh X6 269,00 2005.bmp Ein Tupel aus der Ausgangstabelle wird genau einer Partition zugewiesen Partition 2

12 Partitionierung - Grundlagen
Zur Definition (2): … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteabhängiger Kriterien… - Berechnung der Partition eines Datensatzes durch eine Funktion anhand der Attributwerte - Partitionierungsarten: z.B. Range-, Hash-Partitionierung Vorteil: DBMS kann jederzeit die Partition in der ein Datensatz untergebracht ist berechnen Partitionierungsarten werden später vorgestellt

13 Partitionierung - Grundlagen
Zur Definition (3): … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteunabhängiger Kriterien. - DBMS hat keine Info`s, in welcher Partition sich Datensatz X befindet - Partitionierungsarten: z.B. Random-, Round-Robin-Partitionierung

14 Übersicht Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DHW Umfeld Ausblick

15 Tabellenpartitionierung
Horizontale Partitionierung - Relation wird zeilenweise in disjunkte Teilmengen partitioniert - Tupel als Ganzes wird nicht zerlegt (wie bei vertikaler Partitionierung)

16 Tabellenpartitionierung
Selektionsprädikat (Partitionierungsprädikat) ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1003 Basketball 1 70,00 1003.bmp 1004 Volleyball 21,99 1004.bmp 1005 Tennisball 2,33 1005.bmp : ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1003 Basketball 1 70,00 1003.bmp 1004 Volleyball 21,99 1004.bmp 1005 Tennisball 2,33 1005.bmp : 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp 2005 Schuh X6 269,00 2005.bmp ProdNr ProduktName ProdGr. ProdPreis ProduktBild 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp 2005 Schuh X6 269,00 2005.bmp Horizontale Partitionierung

17 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 Forderung nach Disjuktheit bezieht sich nur auf die Attribute, die nicht zum Schlüssel gehören

18 Tabellenpartitionierung
ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1005 Tennisball 1 2,33 1005.bmp : 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp Vertikale Partitionierung ProduktNr ProduktName ProdGruppe ProduktPreis 1001 Fussball X16 2 30,05 1002 Fussball X17 59,95 1005 Tennisball 1 2,33 : 2001 Nike Shirt T65 3 65,00 2002 Adidas Cap Nr1 7 20,50 2003 PowerBar Riegel 15 2,00 2004 Schuh X1 11 149,99 ProduktNr ProduktBild 1001 1001.bmp 1002 1002.bmp 1005 1005.bmp : 2001 2001.bmp 2002 2002.bmp 2003 2003.bmp 2004 2004.bmp

19 Tabellenpartitionierung
Partitionierungsdimensionen: - Eindimensionale Partitionierungsfunktion B 6 P1 P2 P3 A 5 4 3 2 1 7 8 9

20 Tabellenpartitionierung
- Mehrdimensionale Partitionierungsfunktion B 6 P4 P5 P6 A 5 4 3 P1 P2 P3 2 1 7 8 9 B 6 P4 A 5 4 3 P1 P2 P3 2 1 7 8 9 Variante 1 Variante 2

21 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 Eignet sich überall dort, wo aufgrund der Tabellenstruktur und der Spaltenwerte NATÜRLICHE Partitionierungswerte vorliegen, die darüber hinaus eine Gleichverteilung der Daten garantieren können. Z.B. Partitionierung nach Jahren und Monaten, d.h. für jeden Monat eines Jahres eine Partition, die einzeln gelöscht oder archiviert werden kann

22 Tabellenpartitionierung - Arten
Selektionsprädikat Ausgangstabelle: ProduktNr ProduktName ProdGruppe ProduktPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1003 Basketball 1 70,00 1003.bmp 1004 Volleyball 21,99 1004.bmp : 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp 2005 Schuh X6 269,00 2005.bmp 3001 Fit.riegel Q10 2,15 3001.bmp 3002 Fit.riegel Q12 3,50 3002.bmp P1 P2 P3 Restpartition möglich

23 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 - Zuteilung wie bei Range auch über eine oder mehrere Spalten Nur die Anzahl der gewünschten Partitionen angeben, Rest macht Hash-Funktion Vorteile, wo KEINE natürlichen Partitionierungskriterien vorliegen oder die nur eine sehr ungleiche Verteilung der Daten aufweisen BESSER, wenn man nur 1. Spalten mit möglichst hoher Selektivität & 2. eindeutige oder nahezu eindeutige Werte als Kriterium auswählt

24 Tabellenpartitionierung - Arten
Beispiel Hashfunktion: Zwei Partitionen: h(k)= k mod 2 Partition 1 ( h(ProduktNr) = 0 ): ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1002 Fussball X17 59,95 1002.bmp 1005 Tennisball 1 2,33 1005.bmp 2001 Nike Shirt T65 3 65,00 2001.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp 2004 Schuh X1 11 149,99 2004.bmp ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1002 Fussball X17 2 59,95 1002.bmp 2002 Adidas Cap Nr1 7 20,50 2002.bmp 2004 Schuh X1 11 149,99 2004.bmp Partition 2 ( h(ProduktNr) = 1 ): ProdNr ProduktName ProdGr. ProdPreis ProduktBild 1001 Fussball X16 2 30,05 1001.bmp 1005 Tennisball 1 2,33 1005.bmp 2001 Nike Shirt T65 3 65,00 2001.bmp 2003 PowerBar Riegel 15 2,00 2003.bmp h(1005) = 1005 mod 2 = 1 h(1002) = 1002 mod 2 = 0 h(1001) = 1001 mod 2 = 1 h(2001) = 2001 mod 2 = 1 h(2002) = 2002 mod 2 = 0 h(2003) = 2003 mod 2 = 1 h(2004) = 2004 mod 2 = 0

25 Tabellenpartitionierung - Arten
Composite - Partitionierung Kombination z.B. aus Range- & Hash-Partitionierung Range-Partitionierung durchführen Subpartition mittels Hash-Funktion

26 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

27 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

28 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)

29 Tabellenpartitionierung - Arten
Übersicht: Parititionierungs-verfahren Range Hash Composite List Random Round Robin wertebasiert x nicht wertebasiert

30 Übersicht Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick

31 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

32 Anwendung DWH Beispiel Sternschema Dimsionstabellen Faktentabelle
ZEITEN ZEITNR Tag Monat Jahr Wochentag Kalenderwoche Quartal Beispiel Sternschema Dimsionstabellen KUNDEN KDNR Nachname Vorname Adresse PLZ Ort Gebiet VERKÄUFE RECHNR KDNR ZEITNR PRODNR Menge Preis PRODUKTE PRODNR ProdName ProdGruppe PreisEK PreisVK Faktentabelle

33 Anwendung DWH Mögliche Anfrage: Wieviel Umsatz haben die
VERKÄUFE: 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 RECHNR KDNR ZEITNR PRODNR Menge Preis 1 1021 85 1455 10 50 1005 1000 86 13 5074 95 31 5084 2000 55 100 5086 120 54 5189 121 45 1 1005 5074 5084 5086 5189 1005 5074 5086 5189 1 5084

34 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) .. 91 90 1 : P2 P1 1000 1001 KDNR P4 P3 ZEITNR 5189 5086 5084 5074 1005

35 Anwendung DWH Partitionierung bietet Optimierungspotenziale Bereiche:
- Verwaltung sehr großer Relationen - Überspringen von Partitionen bei der Anfrageauswertung - Ausnutzung paralleler Datenbank- & Systemarchitekturen

36 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

37 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

38 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

39 Informix Dynamic Server (Enterpreise and Workgroup Edition 10.00)
Anwendungen DBS ADABAS (Tool Adabas Vista) Informix Dynamic Server (Enterpreise and Workgroup Edition 10.00) Oracle 10g Sybase IQ Part.-arten Range Round Robin, Expression (benutzerdefinierte Verteilungs-funktion, z.B. Range, Hash) Range, Hash, List, Composite Range-Hash, Composite Range-List Hash, Range

40 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 ); Jede Partition in separatem Tablespace Für alle Partitionen Extent-Größe von 900 MB (vor Partitionierungsklausel

41 Anwendung: DB2 Beispiel: Hash-Partitionierung CREATE TABLE Produkte
( prodnr int primary key, ... ) partitioning key (prodnr) using hash

42 Übersicht Einführung und Motivation Grundlagen der Partitionierung
Tabellenpartitionierung Anwendung im DWH Umfeld Ausblick

43 Ausblick  Optimierungspotenzial vorhanden
 Unterschiede zwischen den Herstellern  weitere Anwendung z.B. in der Archivierung


Herunterladen ppt "Seminar Data Warehousing Thema: Partitionierung"

Ähnliche Präsentationen


Google-Anzeigen