Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Data Warehousing Thema: Partitionierung Seminarvortrag10.06.2005 Benjamin Dunst.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Data Warehousing Thema: Partitionierung Seminarvortrag10.06.2005 Benjamin Dunst."—  Präsentation transkript:

1 Seminar Data Warehousing Thema: Partitionierung Seminarvortrag Benjamin Dunst

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

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

4 Einführung Daten Partitionierung: Daten Partitionierung: - Ansatz ursprünglich aus verteilten DB Bsp.: Logisch eine Produkttabelle - in HH produzierte Produkte (Produkttupel) liegen in HH (ProduktNr 1xxxx) (ProduktNr 1xxxx) - in K produzierte Produkte (Produkttupel) liegen in K (ProduktNr 2xxxx) (ProduktNr 2xxxx) - Produkttabelle physisch partitioniert horizontale Partitionierung nach ProduktNr horizontale Partitionierung nach ProduktNr

5 Einführung - vertikale Partitionierung (physisch) - Zuordnung verschiedener Spalten zu - Zuordnung verschiedener Spalten zu verschiedenen Lokationen verschiedenen Lokationen Bsp.: Logisch eine Produkttabelle - Bildmaterial der Produkte liegt in M bei Marketing- abteilung abteilung - Verkaufspreise der Produkte liegen in der Kosten- rechnung in B rechnung in B seit 2. Hälfte der `90er Einzug in zentralisierte DBMS 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 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 Es kommen immer mehr Daten hinzu, jedoch werden in der Regel keine gelöscht Datenvolumen stellt DBen kaum vor Probleme Datenvolumen stellt DBen kaum vor Probleme Probleme verursachen Tabellen mit vielen Millionen oder sogar Milliarden Tupeln Probleme verursachen Tabellen mit vielen Millionen oder sogar Milliarden Tupeln

7 Motivation Umgang mit großen Relationen Umgang mit großen Relationen Partitionierung bietet Optimierungspotenziale Partitionierung bietet Optimierungspotenziale Ziel der Partitionierungstechnik: Ziel der Partitionierungstechnik: Steigerung des Leistungsverhaltens von Anfragen im Zusammenhang mit der Datenpartitionierung

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

9 Partitionierung - Grundlagen Partitionierungsidee: Divide & Conquer Partitionierungsidee: Divide & Conquer Partitionen können unabhängig voneinander verwaltet werden 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) 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 Tabellen und Zugriffspfade können partitioniert werden

10 Partitionierung - Grundlagen Definitionsansatz: 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. 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): Zur Definition (1): Eine Partitionierung von Tabellen und Zugriffspfaden ist eine injektive (eindeutige) Abbildung von Tupeln einer Tabelle… Eine Partitionierung von Tabellen und Zugriffspfaden ist eine injektive (eindeutige) Abbildung von Tupeln einer Tabelle… ProduktNrProduktNameProduktGruppeProduktPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1003Basketball170, bmp 1004Volleyball121, bmp 1005Tennisball12, bmp ::::: 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp 2005Schuh X611269, bmp Partition 1 Partition 2

12 Partitionierung - Grundlagen Zur Definition (2): Zur Definition (2): … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteabhängiger Kriterien… … von Tupeln einer Tabelle bzw. eines Zugriffspfades anhand werteabhängiger Kriterien… - Berechnung der Partition eines Datensatzes durch eine Funktion anhand der Attributwerte durch eine Funktion anhand der Attributwerte - Partitionierungsarten: z.B. Range-, Hash-Partitionierung z.B. Range-, Hash-Partitionierung

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

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

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

16 Tabellenpartitionierung ProdNrProduktNameProdGr.ProdPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1003Basketball170, bmp 1004Volleyball121, bmp 1005Tennisball12, bmp ::::: 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp 2005Schuh X611269, bmp ProdNrProduktNameProdGr.ProdPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1003Basketball170, bmp 1004Volleyball121, bmp 1005Tennisball12, bmp ::::: ProdNrProduktNameProdGr.ProdPreisProduktBild 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp 2005Schuh X611269, bmp Selektionsprädikat (Partitionierungsprädikat) Horizontale Partitionierung

17 Tabellenpartitionierung Vertikale Partitionierung Vertikale Partitionierung - Häufig zur Abspaltung der LOBs verwandt - Aufteilung der Relation in eine oder mehrere Spalten Spalten - Bis auf den Schlüssel disjunkt partitioniert - Für die Rekonstruktion notwendig

18 Tabellenpartitionierung ProduktNrProduktNameProdGruppeProduktPreis 1001Fussball X16230, Fussball X17259, Tennisball12,33 :::: 2001Nike Shirt T65365, Adidas Cap Nr1720, PowerBar Riegel152, Schuh X111149,99 ProduktNrProduktBild bmp bmp bmp :: bmp bmp bmp bmp ProdNrProduktNameProdGr.ProdPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1005Tennisball12, bmp ::::: 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp Vertikale Partitionierung

19 Tabellenpartitionierung Partitionierungsdimensionen: - Eindimensionale Partitionierungsfunktion B 6 P1P1 P2P2 P3P3 A

20 Tabellenpartitionierung - Mehrdimensionale Partitionierungsfunktion B 6 P4P4 P5P5 P6P6 A P1P1 P2P2 P3P B 6 P4P4 A P1P1 P2P2 P3P Variante 1Variante 2

21 Tabellenpartitionierung - Arten Bereichs-Partitionierung (Range-Partitioning) - Wertebereiche der ausgewählten Attribute wird in disjunkte Intervalle zerlegt in disjunkte Intervalle zerlegt - Partitionierungsfunktion aufstellen - Datensätze werden mittels Partitionierungs- funktion den Partitionen zugeteilt funktion den Partitionen zugeteilt

22 Tabellenpartitionierung - Arten ProduktNrProduktNameProdGruppeProduktPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1003Basketball170, bmp 1004Volleyball121, bmp ::::: 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp 2005Schuh X611269, bmp ::::: 3001Fit.riegel Q10152, bmp 3002Fit.riegel Q12153, bmp Ausgangstabelle: Selektionsprädikat P1P1 P2P2 P3P3

23 Tabellenpartitionierung - Arten Hash-Partitionierung - Datensätze werden mit einer Hash-Funktion verteilt verteilt - DBMS errechnet beim INSERT Partitions- nummer als Hashwert aus Attributwerten nummer als Hashwert aus Attributwerten - Breite Streuung der Datensätze auf Partitionen - Vorteil: Keine parallele Suche notwendig, da die Partition wiederholt berechnet werden kann Partition wiederholt berechnet werden kann

24 Tabellenpartitionierung - Arten Beispiel Hashfunktion: Zwei Partitionen: h(k)= k mod 2 ProdNrProduktNameProdGr.ProdPreisProduktBild 1001Fussball X16230, bmp 1002Fussball X17259, bmp 1005Tennisball12, bmp 2001Nike Shirt T65365, bmp 2002Adidas Cap Nr1720, bmp 2003PowerBar Riegel152, bmp 2004Schuh X111149, bmp ProdNrProduktNameProdGr.ProdPreisProduktBild 1001Fussball X16230, bmp 1005Tennisball12, bmp 2001Nike Shirt T65365, bmp 2003PowerBar Riegel152, bmp ProdNrProduktNameProdGr.ProdPreisProduktBild 1002Fussball X17259, bmp 2002Adidas Cap Nr1720, bmp 2004Schuh X111149, bmp 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

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

26 Tabellenpartitionierung - Arten List – Partitionierung - Administrator bestimmt diskrete Werteliste - anhand dieser Liste werden Tupel den Partitionen zugeteilt Partitionen zugeteilt - Vorteil: Inhaltlich nicht zusammenhängende Werte können in einer Partition zusammen- Werte können in einer Partition zusammen- gefasst werden (sonst Range-Partitionierung) gefasst werden (sonst Range-Partitionierung) - Administrator für gleichmäßige Verteilung verant- wortlich wortlich

27 Tabellenpartitionierung - Arten Random – Partitionierung - DBMS verteilt Tupel beim INSERT zufällig auf Partitionen auf Partitionen - führt zu einer weitgehend gleichmäßigen Belegung Belegung - Vorteil: Partitionen können gleichzeitig durchsucht werden durchsucht werden - Nachteil: nicht bekannt, wo Tupel abgelegt wurden

28 Tabellenpartitionierung - Arten Round Robin – Partitionierung - DBMS füllt beim INSERT die Partitionen reihum auf reihum auf - gleichmäßige Partitionsbelegung - Vorteil: gleichzeitiges Durchsuchen möglich - Nachteil: nicht bekannt, wo Tupel abgelegt wurde (ganze Tabelle durchsuchen) wurde (ganze Tabelle durchsuchen)

29 Tabellenpartitionierung - Arten Übersicht: Parititionierungs- verfahren RangeHashCompositeListRandom Round Robin wertebasiertxxxx nicht wertebasiert xx

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

31 Anwendung DWH Data Warehouse Ansatz Data Warehouse Ansatz - Multidimensionaler Datenraum - Multidimensionaler Datenraum - Realisierung meist durch RDBMS - Multidimensionale Zusammenhänge werden mittels relationalem Sternschema umgesetzt relationalem Sternschema umgesetzt Multidimensionales Datenmodell Multidimensionales Datenmodell - Unterteilung der Daten in Fakten & Dimensionen - Unterteilung der Daten in Fakten & Dimensionen

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

33 Anwendung DWH VERKÄUFE: RECHNRKDNRZEITNRPRODNRMengePreis Mögliche Anfrage: Wieviel Umsatz haben die Kunden im Bereich Logistik im 2. Quartal erbracht? Bereich Logistik: KdNr bis Quartal: ZeitNr ab

34 Anwendung DWH : P2P2 P1P : KDNR P4P4 P3P3 : ZEITNR 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)

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

36 Anwendung DWH Verwaltung sehr großer Relationen Verwaltung sehr großer Relationen - klassische Einfüge- & Löschoperationen für große Teile einer Datenbasis auf einzelner große Teile einer Datenbasis auf einzelner Tabelle ineffizient Tabelle ineffizient - Vorteil der Partitionierung: Einfaches Hinzufügen oder Löschen mittels Einfaches Hinzufügen oder Löschen mittels DDL Anweisung DDL Anweisung

37 Anwendung DWH Überspringen von Partitionen bei Anfrageauswertung (partition pruning) Überspringen von Partitionen bei Anfrageauswertung (partition pruning) - Voraussetzung: Anfrage weist Restriktion auf, die über Partitionierungskriterium definiert ist die über Partitionierungskriterium definiert ist - nur betroffene Relationen müssen zur Beantwortung herangezogen werden Beantwortung herangezogen werden - wesentlicher leistungssteigernder Ansatz bei der Ausführung von Warehouse-Anfragen der Ausführung von Warehouse-Anfragen

38 Anwendung DWH Ausnutzung paralleler Datenbank- & Systemarchitekturen Ausnutzung paralleler Datenbank- & Systemarchitekturen - Aufteilen großer Datenbestände in kleinere Partitionen ermöglicht systemtechnische Partitionen ermöglicht systemtechnische Optimierung Optimierung - einzelne Partitionen auf unterschiedliche Festplatten verteilen, um parallel zugreifen zu Festplatten verteilen, um parallel zugreifen zu können können

39 Anwendungen DBSADABAS (Tool Adabas Vista) Informix Dynamic Server (Enterpreise and Workgroup Edition 10.00) Oracle 10g Sybase IQ Part.-artenRange Round Robin, Expression (benutzerdefinierte Verteilungs- funktion, z.B. Range, Hash) Range,Hash,List, Composite Range- Hash, Composite Range- List Round Robin, 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 );

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

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

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


Herunterladen ppt "Seminar Data Warehousing Thema: Partitionierung Seminarvortrag10.06.2005 Benjamin Dunst."

Ähnliche Präsentationen


Google-Anzeigen