Haben Sie die Zeit im Griff? Zeitdimensionen - DOAG 2012
- 1. Partitionierung im DWH:
Erkenntnisse aus der Praxis
Oracle DWH Konferenz
Dani Schnider
Trivadis AG
Kassel, 19. März 2013
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
19. März 2013
1
- 2. Dani Schnider
Principal Consultant und
DWH/BI Lead Architect
bei 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»
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
2
- 3. Kurzvorstellung Trivadis.
Trivadis ist führend bei der IT-Beratung, der Systemintegration
und der Erbringung von IT-Services mit Fokussierung auf - und
-Technologien im D-A-CH-Raum.
Unsere Leistungen erbringen wir aus den strategischen Geschäftsfeldern:
Trivadis Services übernimmt den korrespondierenden Betrieb Ihrer IT Systeme.
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
3
- 4. Mit über 600 IT- und Fachexperten bei Ihnen vor Ort.
2014 © Trivadis
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 und
nachhaltig profitabel
Erfahrung aus mehr als 1'900
Projekten pro Jahr bei über 800
Kunden
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
4
- 5. Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
5
- 6. 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?
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
6
Dimension
Dimension
Dimension
Fact
Table
Dimension
- 7. Praxisbeispiel 1: Fluggesellschaft
Flugbuchungen in partitionierter Faktentabelle
RANGE Partitionen pro Monat, Partition Key: Buchungsdatum
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Sep 09 Oct 09 Nov 09 Dec 09
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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
7
„Alle Buchungen für
Flüge im November
2009“
- 8. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
8
- 9. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
9
- 10. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
10
- 11. Praxisbeispiel 2: Internationale Bank
Problem: Partition Key LOAD_ID ist für Abfragen ungeeignet
Abfragen basieren auf Bilanzdatum
2014 © Trivadis
Lösung:
RANGE Partitionen auf Bilanzdatum
LIST Subpartitionen auf Ländercode
Partition Exchange mit Subpartitionen
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
11
- 12. Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
12
- 13. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
13
- 14. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
14
- 15. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
15
- 16. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
16
- 17. Praxisbeispiel 3: Partition Exchange und Interval
Partitioning
Problem: Partitionen können bei Interval Partitioning nicht explizit erstellt
2014 © Trivadis
werden
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
17
- 18. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
18
- 19. Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
19
- 20. 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
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09
Sep 09
Oct 06 Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
- 21. Praxisbeispiel 4: Automatische Partitionenverwaltung
1. Set next tablespace to read-write
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09
Sep 09
Oct 06 Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
- 22. Praxisbeispiel 4: Automatische Partitionenverwaltung
1. Set next tablespace to read-write
2. Drop oldest partition
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09
Sep 09
Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
22
- 23. Praxisbeispiel 4: Automatische Partitionenverwaltung
1. Set next tablespace to read-write
2. Drop oldest partition
3. Create new partition for next month
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22 TS_23 TS_24
Oct 09
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09
Sep 09
Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
23
- 24. 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
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22
TS_23 TS_24
Oct 09
Sep 09
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
24
- 25. 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
TS_01 TS_02 TS_03 TS_04 TS_05 TS_06 TS_07 TS_08 TS_09 TS_10 TS_11 TS_12
TS_13 TS_14 TS_15 TS_16 TS_17 TS_18 TS_19 TS_20 TS_21 TS_22
TS_23 TS_24
Oct 09
Sep 09
TS_25 TS_26 TS_27 TS_28 TS_29 TS_30 TS_31 TS_32 TS_33 TS_34 TS_35 TS_36
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
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
Jan 09 Feb 09 Mar 09 Apr 09 Mai 09 Jun 09 Jul 09 Aug 09 Nov 06 Dec 06
Jan 07 Feb 07 Mar 07 Apr 07 Mai 07 Jun 07 Jul 07 Aug 07 Sep 07 Oct 07 Nov 07 Dec 07
25
- 26. Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
26
- 27. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
27
- 28. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
28
- 29. 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
2014 © Trivadis
Partitionierung im DWH: Erkenntnisse aus der Praxis
19. März 2013
29
- 30. Vielen Dank.
Trivadis AG
Dani Schnider
Europa-Strasse 5
CH-8152 Glattbrugg/Zürich
Schweiz
Tel. +41 44 808 70 20
Fax +41 44 808 70 21
info@trivadis.com
www.trivadis.com
blog.trivadis.com/blogs/danischnider/
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
19. März 2013
30