View
184
Download
3
Category
Preview:
DESCRIPTION
Dani Schnider, Principal Consultant und DWH/BI Lead Architectbei Trivadis in Zürich, referierte an der Oracle DWH in Kassel. 19. März 2013.
Citation preview
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
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
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.
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
2014 © Trivadis
Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis
5
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
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“
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
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
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
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
2014 © Trivadis
Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis
12
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
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
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
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
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
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
2014 © Trivadis
Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis
19
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
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
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
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
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
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
2014 © Trivadis
Der richtige Partition Key
Laden durch Austauschen
Rollende Zeitfenster
Globale Statistiken
19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis
26
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
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
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
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
info@trivadis.comwww.trivadis.com
blog.trivadis.com/blogs/danischnider/
19. März 2013Partitionierung im DWH: Erkenntnisse aus der Praxis
30
Recommended