Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

30
2014 © Trivadis BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN 2014 © Trivadis Partitionierung im DWH: Erkenntnisse aus der Praxis Oracle DWH Konferenz Dani Schnider Trivadis AG Kassel, 19. März 2013 19. März 2013 Partitionierung im DWH: Erkenntnisse aus der Praxis 1

description

Dani Schnider, Principal Consultant und DWH/BI Lead Architect bei Trivadis in Zürich, referierte an der Oracle DWH in Kassel. 19. März 2013.

Transcript of Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

Page 1: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

2014 © Trivadis

Partitionierung im DWH: Erkenntnisse aus der PraxisOracle DWH Konferenz

Dani Schnider

Trivadis AG

Kassel, 19. März 2013

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

1

Page 2: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Dani Schnider

Principal Consultant und DWH/BI Lead Architectbei Trivadis in Zürich

Kursleiter für Trivadis-Kurse über Data Warehousing, SQL Optimierung und Oracle Warehouse Builder

Co-Autor des Buches «Data Warehousing mit Oracle»

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

2

Page 3: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Kurzvorstellung Trivadis.

Trivadis ist führend bei der IT-Beratung, der Systemintegrationund der Erbringung von IT-Services mit Fokussierung auf - und -Technologien im D-A-CH-Raum.

Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern:

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

3

Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT

Systeme.

Page 4: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Mit über 600 IT- und Fachexperten bei Ihnen vor Ort.

11 Trivadis Niederlassungen mitüber 600 Mitarbeitenden

200 Service Level Agreements

Mehr als 4'000 Trainingsteilnehmer

Forschungs- und Entwicklungs-budget: CHF 5.0 / EUR 4 Mio.

Finanziell unabhängig undnachhaltig profitabel

Erfahrung aus mehr als 1'900 Projekten pro Jahr bei über 800 Kunden

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

4

Page 5: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Der richtige Partition Key

Laden durch Austauschen

Rollende Zeitfenster

Globale Statistiken

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

5

Page 6: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Der richtige Partition Key

Richtiger Partition Key ist wichtig für:

Abfrageoptimierung Partition Pruning Partition-wise Joins

ETL Performance Partition Exchange Data Retention

Typisch für Data Warehouses:

RANGE-Partitionierung von Faktentabelle

Partition Key: Datum

Aber welches Datum?

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

6

Dimension

Dimension

Dimension

Dimension

FactTable

Page 7: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 1: Fluggesellschaft

Flugbuchungen in partitionierter Faktentabelle

RANGE Partitionen pro Monat, Partition Key: Buchungsdatum

Problem: Die meisten Abfragen beziehen sich auf das Abflugdatum Flüge können 11 Monate im Voraus gebucht werden 11 Partitionen müssen für ein spezifisches Abflugdatum gelesen werden

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

7

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Sep 09 Oct 09 Nov 09 Dec 09

„Alle Buchungen für Flüge im November 2009“

Page 8: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 1: Fluggesellschaft

Lösung: Partition Key Abflugdatum statt Buchungsdatum

Daten werden in aktuelle und zukünftige Partitionen geladen

Abfragen nach Abflugdatum lesen nur eine Partition

Abfragen nach Buchungsdatum müssen 11 (kleine) Partitionen lesen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

8

Page 9: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 1: Fluggesellschaft

Bessere Lösung: Composite RANGE-RANGE Partitioning RANGE Partitionen auf Abflugdatum RANGE Subpartitionen auf Buchungsdatum

Mehr Flexibilität für Abfragen auf Abflug- und/oder Buchungsdatum

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

9

Page 10: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 2: Internationale Bank

Kontostände für internationale Kunden Monatliche Filelieferungen aus unterschiedlichen Ländern Teilweise Korrekturfiles (ersetzen letzte Lieferung des gleichen Monats)

Ursprüngliche Lösung: Technische LOAD_ID für jede Kombination von Monat/Land LIST Partitionen auf LOAD_ID Files werden in Stage-Tabelle geladen Partition Exchange mit aktueller Partition

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

10

Page 11: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 2: Internationale Bank

Problem: Partition Key LOAD_ID ist für Abfragen ungeeignet Abfragen basieren auf Bilanzdatum

Lösung: RANGE Partitionen auf Bilanzdatum LIST Subpartitionen auf Ländercode Partition Exchange mit Subpartitionen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

11

Page 12: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Der richtige Partition Key

Laden durch Austauschen

Rollende Zeitfenster

Globale Statistiken

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

12

Page 13: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Partition Exchange – Vorgehensweise

1. Daten in Work-Tabelle laden

2. Indizes auf Work-Tabelle erstellen

3. Auf Zieltabelle neue Partition anfügen

4. Partition Exchange

5. Ev. Work-Tabelle löschen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

13

Page 14: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Partition Exchange – Vorgehensweise

1. Daten in Work-Tabelle laden

2. Indizes auf Work-Tabelle erstellen

3. Auf Zieltabelle neue Partition anfügen

4. Partition Exchange

5. Ev. Work-Tabelle löschen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

14

Page 15: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Partition Exchange – Vorgehensweise

1. Daten in Work-Tabelle laden

2. Indizes auf Work-Tabelle erstellen

3. Auf Zieltabelle neue Partition anfügen

4. Partition Exchange

5. Ev. Work-Tabelle löschen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

15

Page 16: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Interval Partitioning

Seit Oracle 11g können Partitionen automatisch erstellt werden

Erweiterung von RANGE Partitioning INTERVAL Partitioning

Beim Einfügen von neuen Daten wird bei Bedarf neue Partition erstellt

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

16

Page 17: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 3: Partition Exchange und Interval Partitioning

Problem: Partitionen können bei Interval Partitioning nicht explizit erstellt werden

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

17

Page 18: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 3: Partition Exchange und Interval Partitioning

1. Work-Tabelle laden

2. Erste Row in Zieltabelle einfügen Neue Partition wird erstellt

3. Partition Exchange

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

18

Page 19: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Der richtige Partition Key

Laden durch Austauschen

Rollende Zeitfenster

Globale Statistiken

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

19

Page 20: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

Anforderungen Monatspartitionen auf allen Faktentabellen, tägliche ETL-Jobs Daten werden 3 Jahre gespeichert (36 Partitionen pro Tabelle) Table Compression, um Full Table Scans zu beschleunigen Backup nur auf jeweils aktuelle Partitionen

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

20

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09Sep 09

Oct 06 Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

Page 21: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

1. Set next tablespace to read-write

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

21

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09Sep 09

Oct 06 Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

Page 22: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

1. Set next tablespace to read-write

2. Drop oldest partition

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

22

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09Sep 09

Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

22

Page 23: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

1. Set next tablespace to read-write

2. Drop oldest partition

3. Create new partition for next month

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

23

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09Sep 09

Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

Oct 09

23

Page 24: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

1. Set next tablespace to read-write

2. Drop oldest partition

3. Create new partition for next month

4. Compress current partition

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

24

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

TS_22

Oct 09Sep 09

24

Page 25: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 4: Automatische Partitionenverwaltung

1. Set next tablespace to read-write

2. Drop oldest partition

3. Create new partition for next month

4. Compress current partition

5. Set tablespace to read-only

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

25

Jan 08 Feb 08 Mar 08 Apr 08 Mai 08 Jun 08 Jul 08 Aug 08 Sep 08 Oct 08 Nov 08 Dec 08

TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12

Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Nov 06 Dec 06

TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_23 TS_24

Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07

TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36

TS_22

Oct 09Sep 09

25

Page 26: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Der richtige Partition Key

Laden durch Austauschen

Rollende Zeitfenster

Globale Statistiken

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

26

Page 27: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Globale Statistiken

Globale Statistiken sind entscheidend für gute Execution Plans num_distinct, low_value, high_value, density, histograms

Berechnen von globalen Statistiken ist zeitintensiv Alle Partitionen müssen gelesen werden

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

27

Page 28: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Inkrementelle globale Statistiken

Globale Statistiken aus Zusatzinformationen „Synopsis“ pro Partition im SYSAUX Tablespace Zusätzliche Metadaten zur Berechnung der globalen Statistiken

Globale Statistiken werden aus diesen Zusatzinformationen abgeleitet

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

28

Page 29: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

Praxisbeispiel 5: Globale Statistiken nach Migration auf 11g

Ausgangslage Bestehendes Data Warehouse auf Oracle 10g Release 2 Statistiken auf Partitionen mit estimate_percent = 1 Keine globalen Statistiken!

Nach Migration auf Oracle 11g Release 1 Proof of Concept für Inkrementelle globale Statistiken Statistikberechnung dauert viel länger als bisher funktioniert nur mit auto_sample_size

Gewählte Lösung Statistiken auf Partitionen (nicht inkrementell)

mit estimate_percent = 1 (ETL) Monatliche Berechnung von globalen Statistiken

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

29

Page 30: Partitionierung im DWH: Erkenntnisse aus der Praxis - Oracle DWH Konferenz

2014 © Trivadis

BASEL BERN BRUGG LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART WIEN

2014 © Trivadis

Vielen Dank.Trivadis AG

Dani Schnider

Europa-Strasse 5CH-8152 Glattbrugg/ZürichSchweiz

Tel. +41 44 808 70 20Fax +41 44 808 70 21

[email protected]

blog.trivadis.com/blogs/danischnider/

19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis

30