193
Oracle Data Warehouse ETL in der Datenbank / Zusammenspiel mit Nicht-Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Embed Size (px)

Citation preview

Page 1: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht-Oracle – ETL - Tools Alfred Schlaucher

DATA WAREHOUSE

Page 2: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 3: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 4: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele

• Optimierung des Datenbank-Einsatzes in einem Oracle-DB basierten Data Warehouse

• Blick für eine „Best Practise Oracle Architektur“ öffen

• Aufhellen der Black Box „Datenbank“• Bessere Lastverteilung zwischen Komponenten

(ETL-Server / DB-Server)• Auflösen von Engpässen• Aufzeigen von optimalen Wegen

Page 5: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

D a t a W a r e h o u s e

Black Box DWH-DB transparent machen

Page 6: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 7: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Was macht das DWH-Konzept so erfolgreich (auch nach 15 Jahren) ?

ZentraleBereit-

stellung

Business-Daten

Semantik

Historisch(-> Trends)

Entkop-plung von op. System

Flexibel und unabhängigvon operativen Anwendungenanalysieren können

Daten sollten zentral und leicht für alle Benutzergruppengleichermaßen zugänglich sein

Daten sollten leicht verstehbar sein- Informationen statt Daten- Semantische Zusammen-

hänge

Trendfähige Informationen durch Aufbewahrung und Aufbereitung historischer Daten

A

1 2

3 4

7

Page 8: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Evolution des Data Warehouse ¾ unserer Kunden nutzen ihr DWH auch zu operativen Zwecken

Komplexe Informations-Ausarbeitung und Analysen

Jahr/Quartal/MonatPeriodische Berichte

Woche/Tagoft und schnellwiederholbare Einzel-informationen

Stunde/Minute/Sekunde/Realtime

überschaubar

Hochvolumig / granular

Taktisch

Überschaubar / aggregiert

DWH

Strategisch

Operativ

8

Page 9: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Die 3-Schichten-Architektur

Schlagwörter:• Stabilität• Kurze Lieferzeit• Konsolidiert• Alle Zielgruppen

Das Ziel der 3-Schichten-Architektur ist der Entwurf einer möglichst umfassenden, mehrere Unternehmens- und

Themenbereiche abdeckenden stabilen Informationsablage, die in kurzer Zeit konsolidierte Berichte und Analysen für alle (!) Zielgruppen des

Unternehmens bereitstellt.

9

Page 10: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HerePD4711AMKLB998786523477690000000KLABAUTERIIO???EERWEERW883466888750000888000EU-Wert735328567353654i88863457746

PRODUKTDATEN

Produktsparten

Spartenname

Spartennr

Produktgruppen

Gruppenname

Gruppennr

Produkte

Produktname

Produktenr

EinzelpreisMüll, Altlast, unverständliche Daten

OperativeDaten

NormalisierteDaten (DWH)

Spartenname

Spartennr

Gruppenname

Gruppennr

Produktdaten

Produktname

Produktenr

Einzelpreis

Neu sortierte Daten

Prinzip Normalisieren / DenormalisierenGranularisierung als Lösung

VerständlicheInformation(denormalisiert)

Granulare DatenIm DWH

10

Page 11: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Das Neutralitätsprinzip des DWH A

ny S

ourc

e/Ta

rget

Sys

tem Enterprise Information Layer

(Kern DWH)

Dat

a In

tegr

atio

n

User View Layer(Data Marts)

Data Integration Layer(Stage)

Process neutral / 3 NF

Any

Use

r G

roup

PrüfenIntegrierenHarmonisieren

StandardisierenErweiternVerbindenIn Beziehung setzen

AnwendenAufbereitenAggregieren

Rohdaten Angebot Bedarf

Redundanzen

Anwendungs-neutral,

granular,Zeit-neutral

Neutral gegenüberVorsystemen, Sprachen, OS

Neutral gegenüberEndbenutzern:Alle User! Alle Tools!

11

Page 12: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HereReporting &Publishing

Ad-hoc Analysis

Office Integration

Mobile

Scorecards

Interactive Dashboards

BI Server

Oracle Database Management System

Oracle Data Warehouse Architektur für unternehmensweites Datenmanagement

Dat

a In

tegr

atio

nR

eal T

ime

& B

atch

Any Source

Controlling

Financial

Marketing

Sales

HR

BI Apps

Dynamic Data MartsData Quality Rules Checks&Monitoring

DWH Logistic UtilitiesBusinessCatalogue

TechnicalAuditing

MetadataUtilities

Lifecycle Management Concept

DWH System Monitoring Utilities

DWH Security Utilities

DWH Backup / Recovery Concept

Concept FrameworkBig Data Appliance

Exadata Exalytics

Operational Data Layer

Information Layer Architecture Concept

Enterprise Information Layer User View LayerData IntegrationLayer

noSQL Hadoop

Big Data Solution

Reference Data ModelsData Management Concept

InDatabase ROLAP

InDatabase MOLAP

InDatabase Data MiningRInDatabase

Optimiertes Netzwerk

ServerCluster

OperatingSystem

Optimized Network

StorageHierarchy

Server Cluster

Exadata / Database Machine / Exalytics

Page 13: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Regeln einer effizienten DWH-Architektur

• Orientierung an den Informationsbedürfnissen der Benutzer• Granularisierte 3NF-DWH Schicht schafft

• Neutralität gegenüber Vorsystemen • Flexibilität bei der Bereitstellung neuer Abfragemodelle• Über Data Mart-Grenzen hinweg gemeinsam genutzte Berechnungen

Aggregationen usw. so früh wie möglich umsetzen• Zusammenhängende Data Mart-Schicht

• Mehrfachnutzung von Dimensionen• Geschickter Umgang mit sehr großen Faktentabellen• Eher granulare Informationen auch in den Fakten-Tabellen

• Alle Schichten in einem DB-Raum • Ein zusammenhängender DB-Server-Cluster zum Verhindern unnötiger Wege

• In-Database-Aktiviäten (Prüfen/Laden)• Ein zusammenhängender DB-Server-Cluster zum Verhindern unnötiger Wege

• 1:1 Kopien verhindern• Bereits beim Lesen in die Vorsysteme einfache Prüf- und Filteraktivitäten• Updates und einzelne Deletes vermeiden• ETL wiederholbar aufbauen

Page 14: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Multidimensionales Modell (Star Schema)

ArtikelA1A2A3A4

A1A2A3A4

4 4

89

Verkäufe

Art1

Art2

Art3

Art4

1 : nZ1Z2Z3Z4

6.7.09

Zeit

7.7.098.7.099.7.09

Q3Q3Q3Q3

Z1Z2Z3Z4

n : 1

Regionen

R1R2R3R4

Nord

Sued

West

Ost

R1R2R3R4

Kunde

Maier

Müller

Schmid

Engel

V1V2V3V4

V1V2V3V4

1 : n

n : 1

Einstiegspunktefür Anwender-Abfragen

Star Schema• Flexibel• Graphisch auch für

Business-User verständlich

P

PF

F

Blau

Gelb

Rot

Lila

Schwach

Mittel

Hoch

Schwach

Status

Farbe

Wohndichte

14

Page 15: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Dimensionen

Artikelgruppe

Sparte

Dim_Artikel

Artikel_Langtext

Artikelsparte

Artikel

Artikel_Schlüssel

Artikelgruppe_Langtext

Artikelsparte_Langname

Parent

Parent

Fakten

Levelschlüssel

Levelschlüssel/Objektname

Levelschlüssel

Business Key

Künstlicher Dimension Key

Dim_Schlüssel

Aggregation

Aggregation

15

Page 16: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Star vs. Snowflake Schema

16

Page 17: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Das Schichten-Modell als Hilfestellung bei der Planung des ETL-Prozesses

Any

Sou

rce/

Targ

et S

yste

m

Enterprise Information Layer D

ata

Inte

grat

ion

User View LayerData Integration Layer

Process neutral / 3 NF

Any

Use

r G

roup

Operational Data Layer

17

Oracle Data Warehouse

Page 18: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Lade-Aktivitäten an Schichtübergängen

Integration Enterprise User ViewFlüchtige Daten Persistent Kopien / teilpersistent

dynamisch

KopierenSelektieren

Generische Datenstrukturen(isolierte Tabellen,teil-ausgeprägte Datentypen)

Keine Constraints

3 NF Datenstrukturen(ER-Tabellen,ausgeprägte Datentypen)

Aktivierte Constraints

Multidimensionale Modelle(ER-Tabellen,ausgeprägte Datentypen)

MengenbasiertesPrüfen ohne Constraints

UmschlüsselungLookups -> Referenz-/StammdatenJoinsAufbauen von Distinct-Strukturen(Normalisieren)

UmschlüsselungLookups -> DimensionsdatenJoins - Denormalisieren

Normalisieren(Granularisieren)

18

DenormalisierenHistorisieren

z.T. Aggregieren

Clearing-Verfahren,technisches, logisches,semantisches Prüfen

Page 19: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Durch führes Transformieren Synergien ermöglichen

Any

Sou

rce/

Targ

et S

yste

m

Enterprise Information Layer

Dat

a In

tegr

atio

n

User View Layer

Data Integration Layer

Process neutral / 3 NF

Any

Use

r G

roup

Operational Data Layer

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

Die frühest mögliche Stelle finden

Page 20: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Verteilte Server zwingen oft zu unproduktiven 1:1 Ladevorgängen

Enterprise Information Layer

User View Layer

Data Integration Layer

Process neutral / 3 NF

User View Layer

User View Layer

1:1

1:1

1:1

Vorsystem mitVorrechner

Vorsystem

1:1

1:1

Page 21: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Eine Hardware (bzw. Cluster) ermöglicht flexibles Handeln durch kurze Wege

Enterprise Information Layer User View LayerData Integration Layer

Process neutral / 3 NF

Freie Wahlmöglichkeit

für Ort und Art des ETL

Page 22: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Synergien ermöglichenA

ny S

ourc

e/Ta

rget

Sys

tem

Enterprise Information Layer

Dat

a In

tegr

atio

n

User View Layer

Data Integration Layer

Process neutral / 3 NF

Any

Use

r G

roup

Operational Data Layer

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

ETL: Kosten pro Kunde

Die frühest mögliche Stelle finden

Page 23: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Stage – Funktion

• Arbeitsschicht für alles, was der technischen Bearbeitung unterliegt

• Überprüfung von • Syntaktischer Korrektheit (Typ, Länge, NULL)• Vollständigkeit der Daten und Mengenverhältnisse• Gültigen Wertebereichen• Vorhandensein von Referenzdaten• Eindeutigkeit (optional)• Eliminierung von NULL-Werten

• Zusammenführung operativ getrennter Daten • Bilden neuer Informationsobjekte mit dem Ziel der einfacheren

Weiterverarbeitung (optional)• Waisen-Management (optional)• Bildung von Daten-Deltas (optional)

23

Page 24: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Stage – Verarbeitung

• Keine 1:1-Kopien• Keine besonderen Datenmodell-Strukturen • Wenn möglich, bereits beim Extrahieren Prüfungen und

Wandlungen von Daten vornehmen• Keine Indizes verwenden

Stage ist leer, wenn nicht geladen wird

24

Page 25: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Die Schichten im DetailDie (Kern-) Data Warehouse - Schicht

Any

Sou

rce/

Targ

et S

yste

m

Enterprise Information Layer D

ata

Inte

grat

ion

User View LayerData Integration Layer

Process neutral / 3 NF

Any

Use

r G

roup

Operational Data Layer

25

Oracle Data Warehouse

Page 26: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

DWH-KerndatenschichtAufgaben und Ziele

• Eindeutigkeit aller Objekte und Namen• Redundanzfreiheit aller Informationen• Langlebigkeit der Daten (Historisierung)

Granulare Informationen als Bausteine für neue Informationszusammenhänge

26

Page 27: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

DWH-Kerndatenschicht

• 3 Normalform (3 NF)• Subjekt-bezogen• In Teilbereiche (Subject Areas) gegliedert• Anwendungs- und Geschäftsprozess-neutral

• Objekte werden in mehreren Geschäftsprozesse benötigt • Daten müssen tauglich genug sein, um sie in allen Anwendungen zu

verwenden

• Datenarten• Stammdaten (historisiert)• Referenzdaten – externe / interne, allgemeine Sammlungen• Bewegungsdaten (angesammelt)

27

Page 28: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 29: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

ETL-Lösung

• Backbone des DWH• Transfer-Medium über alle Schichten hinweg

• Vermittlungsfunktion• Übernimmt oft Dokumentationsaufgabe

• Bewegen großer Datenvolumina bei gleichzeitiger komplexer Transformation

• Standard-Lösung wird benötigt• Nicht zu komplex (Entwickler-Spielzeug)• Verständlich auch für Business User• Leichte Erklärbarkeit für Dritte

29

Page 30: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziel / Aufgabe eines DWH-Ladeverfahrens

• Bereitstellen von Daten in adäquater Weise• Zeitlich passend• Richtige Form• Passende Inhalte

• Daten so ablegen, dass man sie wiederfindet• Dokumentation

• Daten Ressourcen-ökonomisch speichern• Berücksichtigung von Plattenplatz

30

Page 31: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Was wird geladen?

• Es sollte nur das geladen werden, was wirklich gebraucht wird

• Gibt es einen Auftrag für das Laden bestimmter Daten?• Wer braucht die Daten?• Welche Daten werden gebraucht?

• Sind die zu ladenden Daten in einem brauchbaren Zustand?• Welche Anforderungen sind an Quelldaten zu stellen?• Wer definiert die Anforderungen?

31

Page 32: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Lade-Aufwand minimieren

• Ladeläufe orientieren sich an den Daten, die man braucht

Erst die Datenstrukturen sortieren, bevor man Ladeläufe

plant

• Zur Orientierung hilft das 3-Schichten-Modell:• Staging Area• DWH (3 NF)• Data Marts

32

Page 33: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

1. Integrieren

• Identifizieren von identischen oder zusammenhängenden Informationen• Synonymen-/Homonymen-Thematik

• Aggregationslevel angleichen• Identifizieren und Angleichen

• Formate, Zustände, Sichtweisen etc...

1. Integrieren2. Informations-Mehrwerte 3. Kopieren4. Sammeln

Betrag / SummeArtikel / Produkt

Artikel / Artikelgruppe

Meter / KilometerLose Stücke / Gebinde

34

Page 34: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

2. Informations-Mehrwerte

• Qualitativ gute Informationen schaffen• Datenqualitäts-Checks

• Vollständigkeit• Datentypen• Referentielle Integrität• Eindeutigkeit• Korrekte Werte

• Fachliche Regeln überprüfen

• Berechnungen / Aggregationen / Zusammenfassungen• Anreichern und Vermengen mit Referenzdaten

• Lookups• Marktdaten• Vergleichszahlen

1. Integrieren2. Informations-Mehrwerte 3. Kopieren4. Sammeln

35

Page 35: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

3. Kopieren

• 1:1-Datenbewegung• Einfachste Aufgabe

• Mengen-Operationen• Ohne zusätzliche Logik

• Überwindung von Systemgrenzen• Vorschriften zum Mapping• Schnittstellen-Konventionen

• Aspekt der Performance

1. Integrieren2. Informations-Mehrwerte 3. Kopieren4. Sammeln

36

Page 36: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

4. Sammeln

• Einlagern von Daten• Zeitliche Rahmenvorgaben• Historisierung

• Versionieren von Daten• Kategorisieren / Inventarisieren von Daten

• Dokumentieren der eingelagerten Informationen

• Referenzen aufbauen • Alterungs-Eigenschaften berücksichtigen • Dokumentieren• Mehr als nur eine Momentaufnahme

1. Integrieren2. Informations-Mehrwerte 3. Kopieren4. Sammeln

37

Page 37: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Daten-nahe Transformation im DWHDen richtigen Platz finden

n-tier

Application Server

n-tier

Application Server

Quellsystem DWH-System

ETL?

ETL?

38

Page 38: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Aktivitäten in einem ETL-Prozess

• Standardfunktionen Insert, Update, Delete, Merge (Insert / Update)• 1:1-Transformationen (reines Kopieren, auch mit minimalen Änderungen)• Selektionen (z.B. Where-Klauseln, Bedingungen)• Gruppierende Transformationen (Aggregationen, Sortieren, Segmentieren)• Pivotierende Transformationen (Verändern der Kardinalität von Zeilen und

Spalten)• Berechnungen (einfache oder komplexe, Funktionen oder Programme)• Formatieren von Daten• Zusammenführende und spaltende Transformationen (Join / Split)• Anreichernde Transformationen (Referenzen auslesen, Lookups,

Konstanten, Fallunterscheidungen)• Aussortieren / Trennen von Datenbereichen• Prüflogik (logisch / fachliche und physisch / technische)• Protokollierende Maßnahmen (Log Files, Statistiken)• Steuerungen (Rules-Systeme)• Kommunizieren mit anderen Systemen (Messages senden / empfangen /

quittieren)

39

Page 39: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Generieren statt ProgrammierenVorteile einer Tool-Unterstützung

• Vermindern von Fehlern durch Handprogrammierung• Tabellen- und Spaltennamen müssen nicht mehr

mühsam geschrieben werden• Steuerung vieler Entwicklungsschritte durch Wizards• Automatische Steuerung von Ziel- und

Quellschemata• Automatische Validierung (z.B. Typverträglichkeiten)• Debugging der Laderoutinen• Laufzeitumgebung steht bereit • Wichtigster Grund: Dokumentation

40

Page 40: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Balance zwischen den beteiligten Komponenten finden

DWH-Datenbank

DWH-ServerETL-Server

ETL-Engine

Page 41: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Balance zwischen den beteiligten Komponenten finden

DWH-Datenbank

DWH-ServerETL-Server

ETL-Engine

Page 42: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Balance zwischen den beteiligten Komponenten finden

DWH-Datenbank

DWH-ServerETL-Server

ETL-Engine

DokumentationSteuerungBenutzerfühung

Rechen-PowerAusnutzen von bestehenden Ressource

Page 43: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 44: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Hilfsmittel in der Datenbank (Auflistung)

• Parallelisierung• Partitioning / Partition Exchange Load (PEL)• Direct Path Load• Set-Based SQL• Pipelined Table Functions• Materialized Views• Kopiertechniken

• External Tables / Loader• Transportable Tablespace• Data Pump• Database Link• Direkt FTP-Load

Page 45: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Parallelisierung

46

Oracle Data Warehouse

Page 46: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Parallelisierung und Skalierung

• Abfragen• SELECT• JOIN-Operationen• SORT-Operationen• GROUP BY

• DDL• CREATE TABLE / MV• CREATE INDEX• Online Index Rebuild

• DML• INSERT• UPDATE / DELETE• MOVE / SPLIT PARTITION

CPUSQL

seriell100%

50%

I/O

100%

50%

parallel

SQLCPU I/O

Ein SQL Statement wird vom Optimizer in kleinere Arbeitsschritte aufgeteilt und

läuft skalierbar ab.

47

Page 47: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Monitoring der Parallelität

SQL-Job in Warteposition

Laufender SQL-Job mit Parallelität 8

Abgeschlossene SQL-Jobs

Page 48: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Parallelisierung eines Statements

Statement in Warteposition(Queue)

Automatisches Downgrade

Potentiell höherer Bedarf

Page 49: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Master-/ Slave-Prozesse (Parallelisierung)

Page 50: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ausführungsplan einer parallelisierten Abfrage

Page 51: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Voraussetzungen für Parallelisierung

• Hardware-Architektur• Symmetric Multiprocessors (SMP)• Clusters (RAC, Grid Computing)• Massively Parallel Processing (MPP)

• Ausreichend I/O-Bandbreite• Geringe oder mittlere CPU-Auslastung

• Systeme mit CPU-Auslastungen von weniger als 30%

• Genügend Hauptspeicher für speicherintensive Prozesse• Sortierung• Hashing• I/O-Puffer

52

Page 52: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Degree of Parallelism (DOP)

• Automatic Degree of Parallelism• PARALLEL_DEGREE_POLICY = AUTO

• Degree of Parallelism manuell festlegen• ALTER TABLE sales PARALLEL 8;• ALTER TABLE customers PARALLEL 4;

• Default Parallelism• ALTER TABLE sales PARALLEL;

• Parallelisieren von Abfragen• SELECT /*+ PARALLEL(b)n PARALLEL(a)n */ a,b,c FROM bestellung b, artikel a;

SI : DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT

RAC: DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT xINSTANCE_COUNT

53

Page 53: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Kontrolle über Parallelisierung behalten

• Parameter PARALLEL_DEGREE_POLICY• Manual

• Verhalten wie vor 11gR2, der DBA konfiguriert alles manuell• Kein Automated DOP• Kein Statement Queuing• Keine In-Memory Parallel Execution

• Limited• Eingeschränkter Automated DOP für Abfragen auf Tabellen mit

Default Parallelisierung• Kein Statement Queuing• Keine In-Memory Parallel Execution

• Auto• Alle in Frage kommenden Statements werden parallel ausgeführt• Statement Queuing• In-Memory Parallel Execution

54

Page 54: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Funktionsweise von Automated DOP

SQLStatement

Statement wird geparsedOptimizer ermittelt

Execution Plan

Statement wird seriell ausgeführt

Statement wird parallel ausgeführt

Optimizer bestimmt idealen DOP

Geschätzte Ausführung ist größer als Schwellwert

Tatsächlicher DOP= MIN(Default DOP, idealer DOP)Geschätzte Ausführung ist

kleiner als Schwellwert

PARALLEL_MIN_TIME_THRESHOLD

55

Page 55: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Parameter für Parallel QueryOracle 11.2.0.1

Neue Parameter• parallel_degree_limit = 'CPU' (CPU|IO|integer)• parallel_degree_policy = MANUAL (MANUAL|LIMITED|AUTO)• parallel_force_local = FALSE (FALSE|TRUE)• parallel_min_time_threshold = AUTO (AUTO|integer)• parallel_servers_target = 8 (0 - max_servers)

Parameter• parallel_adaptive_multi_user = TRUE (TRUE|FALSE)• parallel_execution_message_size = 16384 (2148 – 32768)• parallel_instance_group = '' ()• parallel_max_servers = 20 (0 - 3600) pro Instanz• parallel_min_percent = 0 (1 - 100) %• parallel_min_servers = 0 (0 - max_servers)• parallel_threads_per_cpu = 2 (1 - 4|8) pro core

Veraltete Parameter• parallel_automatic_tuning = FALSE (FALSE|TRUE)• parallel_io_cap_enabled = FALSE (FALSE|TRUE)

56

Page 56: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HerePartitioning / Partition Exchange Load

57

Oracle Data Warehouse

Page 57: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Partitioning unterstützt viele Aufgaben

Query PerformancePartition Pruning

Ladeprozess

Hochverfügbarkeit auchwährend des Ladens und

Maintenance

Leichterer Umgang mitIndizierung

Unterstützung ILM(Information Lifecycle

Management)

Unterstützung im Backup-Prozess

Unterstützung bei der Aktualisierung

von Materialized Views(Partition Change Tracking)

Unterstützung bei der Komprimierung

Partitioning

Partitionierungs-Kriterium fachlich anwendbar oder nicht?

Partitioning Typ:- Range- List- Hash

58

Page 58: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Partitioning – Die Grundfunktionalität

Kollektive Sicht

SELECT.... FROM....

Local Index

Global Partitioned Index

Global Index

Partition-bezogene Sicht

Manageability

Separate Compression

Read Only TS

versch. Platten

Basis für ILM

Hilfsmittel im ETL PEL Local Indexing

Availability

Backup / Recovery

Scheduled Downtime

Archiving

Performance

ADD, DROP, SPLIT,MOVE, MERGE,

TRUNCATE,COMPRESS

59

Page 59: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Verschiedene Varianten

• Partitioning-Typen

• Range• List• Hash• Reference• Interval• System• Virtual Column

• Subpartitioning-Typen• Range - Hash• Range - List• Range - Range• List - Range• List - Hash• List - List

60

Page 60: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Partition Exchange Loading (PEL)-- Leere Partition an Zieltabelle hinzufügenALTER TABLE Bestellung ADD PARTITION "Nov08" VALUES LESS THAN (to_date('30-Nov-2008','dd-mon-yyyy'));

-- Neue leere temporäre Tabelle erstellenCREATE TABLE Bestellung_temp AS SELECT * FROM Bestellung WHERE ROWNUM < 1;

-- Inhalte laden INSERT INTO "PART"."BESTELLUNG_TEMP" (BESTELLNR, KUNDENCODE, BESTELLDATUM, LIEFERDATUM, BESTELL_TOTAL, AUFTRAGSART, VERTRIEBSKANAL) VALUES ('2', '3', TO_DATE('23.Nov.2008', 'DD-MON-RR'), to_date('23.Nov.2008', 'DD-MON-RR'), '44', 'Service', '6');Commit;

-- Erstellen Index auf temporäre TabelleCREATE INDEX Ind_Best_Dat_Nov ON Bestellung_temp ("BESTELLNR") NOLOGGING PARALLEL;

-- Temporäre Tabelle an die Zieltabelle anhängen ALTER TABLE Bestellung EXCHANGE PARTITION "Nov08" WITH TABLE Bestellung_temp INCLUDING INDEXES WITHOUT VALIDATION;

2

3

4

5

1

61

Page 61: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Monat 10

Monat 11

Monat 12

Monat 13

Faktentabelle

Zeit

Region

Financial

Production

Human Res.

Store

Supplier

Marketing

Service

Neuer Monat

P1P2P3P4

4 4

89

Z1Z2Z3Z4

Temporäre Tabelle

Parallel Direct Path INSERT(Set Based) CREATE TABLE AS SELECT(CTAS)CREATE Indizes / Statistiken anlegenEXCHANGE Tabelle

Partition Exchange Loading (PEL)

DROPPARTITION

• Unvergleichbar schnell!

62

Page 62: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Wie wird partitioniert

• Partition Key• Eine oder mehrere Spalten in der Tabelle bestimmen den

tatsächlichen Speicherort eines Datensatzes

• Separate Tablespaces• Pro Partition einen eigenen

Tablespace

Vereinfachte WartungTablespace

SegmentExtent

Blocks

63

Page 63: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Direct / Convential Path Load

64

Oracle Data Warehouse

Page 64: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Direct Path / Convential Path

Convential Path• Reuse Free Space in Blöcken• Constraint Checks• Undo Data / Logging• Daten zunächst immer in SGA Buffer

Direct Path• Schreiben oberhalb der High Water

Marks • Keine Constraint Checks• Kein Logging• Daten nicht in SGA Buffer

Convential Path

SQL LoaderExternal TableInsert AppendCTAS

Benutzer

SQL Command Processing

Space Management

Get new extentsAdjust High Water Mark

Find partial blocksFill partial blocks

Buffer Cache

Buffer Cache Management- Manage queues- Manage contention

Read DatabaseBlocks

Write DatabaseBlocks

Direct Path

Database

Or

ac

le

S

er

ve

r

Page 65: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Set Based SQL

66

Oracle Data Warehouse

Page 66: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Varianten von Prüfungen

Attribut-bezogen • Not Null / Pflichtfelder• Formatangaben• Check Constraint• Wertbereiche

• Ober-/Untergrenzen / Wertelisten

Satz-bezogen (Tupel)• Abhängigkeiten von Werten in

anderen Attributen desselben Satzes

Satz-übergreifend (Relationen)• Primary Key / Eindeutigkeit• Aggregat – Bedingungen

• Ober- Untergrenzen von Summen• Anzahl Sätze pro Intervall usw.

• Rekursive Zusammenhänge• Verweise auf andere Sätze

derselben Tabelle (Relation)

Tabellen-übergreifend (interrelational)• Foreign Key• Aggregat – Bedingungen

• Ober- Untergrenzen von Summen• Anzahl Sätze pro Intervall usw.

• Rekursive Zusammenhänge• Verweise auf Sätze einer anderen

Tabelle (Relation)

Zeit-bezogen (Tupel)• Zeitinvariante Inhalte

• Anz. Bundesländer• Zeitabhängige Veränderungen • Über die Zeit mit anderen Daten

korrelierende Feldinhalte Verteilungs-bezogen• Arithmetische Mittel• Varianz / Standardabweichungen• Qualitätsmerkmale und Mengen

67

Page 67: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Prüfkonzepte

• Einfach implementierbar• Bessere Performance• Nur bei aktivierten Constraints

Stage-Tabelle+ Geprüfte Daten

Kopieren

Statistiken

Date

Number

Varchar2()

BadFile

FehlerhafteSätze

CheckConstraints

StatistikRoutine

DMLError Log

• Fachliche Prüfungen kaum möglich• Eventuell zusätzliche Prüfungen

nötig

68

Page 68: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Error Logging

• Constraints• Unique Key / Primary Key• Foreign Key• NOT NULL• Check Constraint

Kunde

Kunde_err

KUNDENNRVORNAME NACHNAME ORTNR STRASSE TELEFON

KUNDENNRVORNAME NACHNAME ORTNR STRASSE TELEFON ORA_ERR_NUMBER$ORA_ERR_MESG$ ORA_ERR_ROWID$ORA_ERR_OPTYP$ ORA_ERR_TAG$

INSERT INTO Kunde

VALUES (......)

LOG ERRORS INTO kunde_err('load_20040802')

69

Page 69: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Error Logging: Beispiel

70

Page 70: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Check Constraint mit Regular Expressions

CREATE TABLE Check_KUNDE (KUNDENNR NUMBER,GESCHLECHT NUMBER,VORNAME VARCHAR2(50),NACHNAME VARCHAR2(50),ANREDE VARCHAR2(10),GEBDAT DATE,ORTNR NUMBER,STRASSE VARCHAR2(50),TELEFON VARCHAR2(30));

ALTER TABLE check_kunde ADD CONSTRAINT Ch_KD_Name CHECK(REGEXP_LIKE(NACHNAME, '[^[:digit:]]'));

Regel: Im Kundennamen müssen Buchstaben vorkommen und keine reine Zahlenkolonne

INSERT INTO check_kunde (Kundennr, Geschlecht, Vorname, Nachname, Anrede, Gebdat, Ortnr, Strasse, Telefon) VALUES (9,1,'Klaus','123','Herr','01.01.60',2,'Haupstr.',08923456);

FEHLER in Zeile 1: ORA-02290: CHECK-Constraint (DWH.CH_KD_NAME) verletzt

71

Page 71: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Beispiele* Match 0 or more times

? Match 0 or 1 time

+ Match 1 or more times

{m} Match exactly m times

{m,} Match at least m times

{m, n} Match at least m times but no more than n times

\n Cause the previous expression to be repeated n times

[:alnum:] Alphanumeric characters

[:alpha:] Alphabetic characters

[:blank:] Blank Space Characters

[:cntrl:] Control characters (nonprinting)

[:digit:] Numeric digits

[:graph:] Any [:punct:], [:upper:], [:lower:], and [:digit:] chars

[:lower:] Lowercase alphabetic characters

[:print:] Printable characters

[:punct:] Punctuation characters

[:space:] Space characters (nonprinting), such as carriage return, newline, vertical tab, and form feed

[:upper:] Uppercase alphabetic characters

[:xdigit:] Hexidecimal characters

Modus

Zeichenklassen

72

Page 72: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Performance

• Regular Expressions sind schnelle Operartionen in der Datenbank

• Verwendung von Regular Expressions steigert die Performance bei Prüfungen von Formaten

• Daten müssen nicht mehrfach gelesen werden

73

Page 73: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Arbeiten ohne Constraints

• Constraints stören bei Massenaktionen im DWH

Ausschalten der Constraints

• Übernahme der Aufgaben von Constraints durch ETL-Prozess

• Mengen-basierte Vorgehensweise

spool test.sqlselect 'alter table '||table_name||' disable constraint'||constraint_name||';' from user_constraints wheretable_name=('TABELLENNAME');spool off

74

Page 74: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Was kann mit SQL geprüft werden

• Formatprüfungen• Feldtypen• Stringformate, Ausdrücke

• NOT NULL• Eindeutigkeit• Wertebereiche

• Spaltenübergreifende Table_Checks• Inhaltliche Regeln

75

Page 75: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Wichtiges Hilfsmittel: CASE-Anweisung

SELECT CASE WHEN isnumeric('999') = 1 THEN 'numerisch' ‚ ELSE 'nicht numerisch'‚ END ErgebnisFROM dual;

CREATE OR REPLACE FUNCTION isnumeric ( p_string in varchar2) return boolean AS l_number number; BEGIN l_number := p_string; RETURN 1; EXCEPTION WHEN others THEN RETURN 0; END;

76

Page 76: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HereBestellnr

Menge

Summe

Name

Ort

BestDatum

Abarbeitungslogik mit CASE

Bestellnr

Menge

Summe

Name

Ort

BestDatum

Bestellnr_isNull

Menge_isNumeric

Summe_isNumeric

Summe_isNull

BestDatum_isDate

...

OLTP_Kunden

OLTP_Kunden_tmp

INSERT INTO OLTP_Kunden_tmpSELECT Bestellnr,Menge,Summe,Name,Ort,BestDatum,CASE WHEN (Bestellnr is NULL) then 1 ELSE 0 END Bestellnr_isNull,CASE WHEN (isNumeric(Menge) = 1) then 1 ELSE 0 END Menge_isNumeric,CASE WHEN (isNumeric(Summe) = 1) then 1 ELSE 0 END Summe_isNumeric,CASE WHEN (Summe is NULL) then 1 ELSE 0 END Summe_isNull,CASE WHEN (isDate(BestDatum) = 1) then 1 ELSE 0 END BestDatum_isDateFROM OLTP_Kunden;

Page 77: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Hilfsfunktion: Is Number

create or replace function isNumeric(i_value_to_checkvarchar2)

return number is v_dummy number;begin v_dummy := to_number( i_value_to_check); return 1; -- it's numberexception when others then return -1; -- it's invalidend isNumeric;

78

Page 78: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Hilfsfunktion:Date_Check

• In Verbindung mit der CASE-Anweisung

create or replace function IsDate (str varchar2) return varchar2 is inDate varchar2(40);

FUNCTION dateCheck (inputDate varchar2, inputMask varchar2) RETURN varchar2

IS dateVar date;BEGIN dateVar:= to_date(inputDate,inputMask); return 'true'; exception when others then return 'false';END;

BEGIN inDate:= trim(str); if dateCheck(inDate, 'mm-dd-yyyy') = 'false' AND dateCheck(inDate, 'mm-dd-yy') = 'false' AND dateCheck(inDate, 'yyyy-mm-dd') = 'false' AND dateCheck(inDate, 'yy-mm-dd') = 'false' AND dateCheck(inDate, 'yyyy-mon-dd') = 'false‚ AND dateCheck(inDate, 'yy-mon-dd') = 'false‚ AND dateCheck(inDate, 'dd-mon-yyyy') = 'false‚ AND dateCheck(inDate, 'dd-mon-yy') = 'false‚ AND dateCheck(inDate, 'mmddyy') = 'false‚ AND dateCheck(inDate, 'mmddyyyy') = 'false‚ AND dateCheck(inDate, 'yyyymmdd') = 'false' AND dateCheck(inDate, 'yymmdd') = 'false‚ AND dateCheck(inDate, 'yymmdd') = 'false' AND dateCheck(inDate, 'yymondd') = 'false‚ AND dateCheck(inDate, 'yyyymondd') = 'false‚ AND dateCheck(inDate, 'mm/dd/yyyy') = 'false' AND dateCheck(inDate, 'yyyy/mm/dd') = 'false‚ AND dateCheck(inDate, 'mm/dd/yy') = 'false' AND dateCheck(inDate, 'yy/mm/dd') = 'false‚ AND dateCheck(inDate, 'mm.dd.yyyy') = 'false' AND dateCheck(inDate, 'mm.dd.yy') = 'false' AND dateCheck(inDate, 'yyyy.mm.dd') = 'false' AND dateCheck(inDate, 'yy.mm.dd') = 'false' then return 'false'; else return 'true'; end if; --exception --when others then return 'false';

END;

79

Page 79: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Prüfung auf Eindeutigkeit

INSERT INTO el_kunde (kundennr,vorname,nachname,ortnr,strasse,telefon) SELECT src2.nummer, src2.name, FROM SRC2, (SELECT nummer FROM (SELECT count(nummer) n, nummer FROM src2 group by nummer) WHERE n = 1) doppelte

WHERE src2.nummer = doppelte.nummer;

80

SELECT F1 FROM (SELECT count(F1) n,F1 FROM s GROUP BY F1) WHERE n > 1;

Page 80: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Inhaltliche Abhängigkeit von zwei Feldern

Die satzübergreifende Reihenfolge von den Werten einer Spalte muss mit der Reihenfolge in einer anderen Spalte übereinstimmen

81

Page 81: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Tabellenübergreifender Summenvergleich

Bestellung

Bestellposition

Bestellnummer (PK)Gesamtsumme

Bestellnummer (FK)Positionssumme

=

82

Select * from (select bestellnumme, gesamtsumme from Bestellung) best, (select Bestellnummer , sum(Positionssumme) gesamtsumme from Bestellposition group by Bestellnummer) Poswhere best.bestellnummer = pos.bestellnummer and best.gesamtsumme = pos.gesamtsumme

Page 82: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Native Support für Pivot und Unpivot

SALESREP Q1 Q2 Q3 Q4---------- ----- ----- ----- ----- 100 230 240 260 300 101 200 220 250 260 102 260 280 265 310

SALESREP QU REVENUE---------- -- ---------- 100 Q1 230 100 Q2 240 100 Q3 260 100 Q4 300 101 Q1 200 101 Q2 220 101 Q3 250 101 Q4 260 102 Q1 260 102 Q2 280 102 Q3 265 102 Q4 310

Sinnvoller Einsatz im Rahmendes ETL-Prozesses

83

Page 83: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Native Support für Pivot und Unpivot

select * from quarterly_salesunpivot include nulls(revenue for quarter in (q1,q2,q3,q4))order by salesrep, quarter ;

QUARTERLY_SALES

SALESREP Q1 Q2 Q3 Q4---------- ----- ----- ----- ----- 100 230 240 260 300 101 200 220 250 260 102 260 280 265 310

SALESREP QU REVENUE---------- -- ---------- 100 Q1 230 100 Q2 240 100 Q3 260 100 Q4 300 101 Q1 200 101 Q2 220 101 Q3 250 101 Q4 260 102 Q1 260 102 Q2 280 102 Q3 265 102 Q4 310

Sinnvoller Einsatz im Rahmendes ETL-Prozesses

84

Page 84: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Native Support für Pivot und Unpivot

SALESREP 'Q1' 'Q2' 'Q3' 'Q4'---------- ----- ----- ----- ----- 100 230 240 260 300 101 200 220 250 260 102 260 280 265 310

SALES_BY_QUARTER

SALESREP QU REVENUE---------- -- ---------- 100 Q1 230 100 Q2 240 100 Q3 160 100 Q4 90 100 Q3 100 100 Q4 140 100 Q4 70 101 Q1 200 101 Q2 220 101 Q3 250 101 Q4 260 102 Q1 260

select * from sales_by_quarterpivot (sum(revenue)for quarter in ('Q1','Q2','Q3','Q4'))order by salesrep ;

Sinnvoller Einsatz im Rahmendes ETL-Prozesses

85

Page 85: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Multiple Inserts

INSERT ALL WHEN STATUS = 'P'‚ THEN INTO WH_TRANS_PRIVAT (BESTELLMENGE,KUNDENCODE,BESTELL_TOTAL,STATUS) VALUES (BESTELLMENGE$1,KUNDENCODE$1,BESTELL_TOTAL$1,STATUS) WHEN STATUS = 'F'‚ THEN INTO WH_TRANS_FIRMA (BESTELLMENGE,KUNDENCODE,BESTELL_TOTAL,STATUS) VALUES (BESTELLMENGE$1,KUNDENCODE$1,BESTELL_TOTAL$1,STATUS) SELECT WH_TRANSAKTIONEN.BESTELLMENGE BESTELLMENGE$1, WH_TRANSAKTIONEN.KUNDENCODE KUNDENCODE$1, WH_TRANSAKTIONEN.BESTELL_TOTAL BESTELL_TOTAL$1, WH_TRANSAKTIONEN.STATUS STATUS FROM WH_TRANSAKTIONEN WH_TRANSAKTIONEN WHERE (WH_TRANSAKTIONEN.STATUS = 'P‚ /*SPLITTER.PRIVATKUNDEN*/) OR (WH_TRANSAKTIONEN.STATUS = 'F‚ /*SPLITTER.FIRMENKUNDEN*/);

86

Page 86: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

MERGE INTO "Kunde_TGT" USING (SELECT "KUNDEN_STAMM"."KUNDENNR" "KUNDENNR", "KUNDEN_STAMM"."VORNAME" "VORNAME", "KUNDEN_STAMM"."NACHNAME" "NACHNAME", "KUNDEN_STAMM"."STATUS" "STATUS", "KUNDEN_STAMM"."STRASSE" "STRASSE", "KUNDEN_STAMM"."TELEFON" "TELEFON", "KUNDEN_STAMM"."TELEFAX" "TELEFAX„FROM "KUNDEN_STAMM" "KUNDEN_STAMM") MERGE_SUBQUERYON ( "Kunde_TGT"."KUNDENNR" = "MERGE_SUBQUERY"."KUNDENNR") WHEN NOT MATCHED THEN INSERT ("Kunde_TGT"."KUNDENNR", "Kunde_TGT"."VORNAME", "Kunde_TGT"."NACHNAME", "Kunde_TGT"."STATUS", "Kunde_TGT"."STRASSE", "Kunde_TGT"."TELEFON", "Kunde_TGT"."TELEFAX") VALUES ("MERGE_SUBQUERY"."KUNDENNR", "MERGE_SUBQUERY"."VORNAME", "MERGE_SUBQUERY"."NACHNAME", "MERGE_SUBQUERY"."STATUS", "MERGE_SUBQUERY"."STRASSE", "MERGE_SUBQUERY"."TELEFON", "MERGE_SUBQUERY"."TELEFAX") WHEN MATCHED THEN UPDATE SET "VORNAME" = "MERGE_SUBQUERY"."VORNAME", "NACHNAME" = "MERGE_SUBQUERY"."NACHNAME", "STATUS" = "MERGE_SUBQUERY"."STATUS", "STRASSE" = "MERGE_SUBQUERY"."STRASSE", "TELEFON" = "MERGE_SUBQUERY"."TELEFON", "TELEFAX" = "MERGE_SUBQUERY"."TELEFAX";

MERGE-Funktion

• Funktion MERGE dient dem gleichzeitigen INSERT und UPDATE

• Basierend auf dem Matching des definierten Schlüssels (ON-Klausel)

• Auch DELETE-Operationen möglich

87

Page 87: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Bildung künstlicher Schlüssel

Alter

Name

Kunden_NR

Anzahl Kinder

Berufsgruppe

Wohnart

Einkommensgruppe

Ort

PLZ

Verkaufsregion

Kunden_NR

Strasse

Ort

PLZ

Tel

Partnernummer

Partnernummer

Wohnart

Einkommensgruppe

Verkaufsregion

Dim_Kd_NR

...

Sequence

Anwendung 2

Anwendung 1

Data Warehouse

Neuer Schlüssel

88

Page 88: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

AA 34 dddf KD_11Satz12

DFG 64 dloidf KD_22Satz13

erf 78 ghzf KD_33Satz14

1

Log.Business Schlüssel (Alternate Unique)

Stamm Info

sdfg 4456 llkof KD_44Satz15

Stamm Info Stamm Info

2 Stamm Info Stamm Info Stamm Info

3 Stamm Info Stamm Info Stamm Info

4 Stamm Info Stamm Info Stamm Info

5 Stamm Info Stamm Info Stamm Info

KD_11

KD_22

KD_33

KD_44

KD_55

6 Stamm Info Stamm Info Stamm InfoKD_66

Künstl. Schlüssel (Primary Key)

DFG 64 dloidf1

DFG 64 dloidf2

erf 78 ghzf3

sdfg 4456 llkof4

Log.Business Schlüssel

Dimension

Fakten

Bewegungsdaten

Join Lookup

Key Lookup

89

Page 89: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Lookup-Verfahren mit Aktualisierung (Stammdaten)

Anti – Join

Bewegungs-sätze

Referenzdaten Tmp Tablealle Sätze ohne

Referenz

Protokoll

ZielsätzeJoin

Insert mitDummy –Schlüssel

90

Page 90: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

AA 34 dddf KD_11Satz12

DFG 64 dloidf KD_22Satz13

erf 78 ghzf KD_33Satz14

Log.Business Schlüssel (Alternate Unique)

sdfg 4456 llkof KD_44Satz15

1 Stamm Info Stamm Info Stamm Info

2 Stamm Info Stamm Info Stamm Info

3 Stamm Info Stamm Info Stamm Info

4 Stamm Info Stamm Info Stamm Info

5 Stamm Info Stamm Info Stamm Info

KD_11

KD_22

KD_33

KD_44

KD_55

6 Stamm Info Stamm Info Stamm InfoKD_66

Künstl. Schlüssel (Primary Key)

DFG 64 dloidf1

DFG 64 dloidf2

erf 78 ghzf3

sdfg 4456 llkof4

Dimension

FaktenBewegungsdaten

Sequenz

Next Val 7

XX 567 ddwer KD_99Satz12

7 Dummy Dummy DummyKD_99

Anti - JoinWenn nicht in Dimension enthalten dann

INSERT INTO DimSELECT .... FROM Bew, Dim WHERE Log Key NOT IN Dim

1. Schritt

Log.Business SchlüsselXX 567 ddwer7

Join Lookup

2. Schritt

91

Page 91: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HereTable Functions

92

Oracle Data Warehouse

Page 92: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

tf1 tf2

tf3

Stage_tabelle

Quelle Ziel

INSERT INTO Ziel SELECT * FROM (tf2(SELECT * FROM (tf1(SELECT * FROM Quelle))))

INSERT INTO Ziel SELECT * FROM tf( SELECT * FROM (Stage_tabelle))

Table Functions – Pipeline-Verfahren

93

Page 93: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Begriffe im Bereich Table Functions

• Table Function• Funktionen, die eine Gruppe von Sätzen (SET) gleichzeitig bearbeitet.

Table Functions wirken wie physische Tabellen. Entsprechend werden sie auch in der FROM Klausel verwendet.

• Record Type • Ein komplexer, aus mehreren Feldern zusammengesetzter Datentyp.

• Nested Table• Eine Art virtuelle Tabelle (temporäre Tabelle im Speicher). Eine Table

Function kann eine solche Tabelle komplett an das aufrufende Kommando zurückgeben.

• Ref Cursor • Eine Art Pointer auf ein Result – Set einer Abfrage. Man übergibt einen

Ref Cursor einer Table Function, damit diese die Sätze des Result – Sets innerhalb der Function abarbeitet.

• Parallel• Table Functions können eingehende Sätze parallel bearbeiten, wenn

diese als Ref Cursor übergeben werden.• Pipelined

• Eine Table Function reicht bereits fertige Sätze an das aufrufende Kommando zur weiteren Verarbeitung weiter, während sie noch weitere Sätze bearbeitet.

94

Page 94: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

If a = b...Update...Case...

CursorFetchLoop

Funktion

Table_Function( )

INSERT INTO Table SELECT Feld1, Feld2 FROM

Mengenbasierte VerarbeitungTrotz Programmierung

• Schnelle Verarbeitung (Pipelined)

• Objekttechnik • Parallelisierung

• Mehrere Rückgabewerte und Einzelrückgaben

• Cursor als Input• Schachtelbar Return Table

pipe row(record Type)Variante 1

Variante 2

95

Page 95: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

drop type Bestellung_X_t;create type Bestellung_X_t as object (BESTELLNR NUMBER(10),KUNDENCODE NUMBER(10),BESTELLDATUM DATE,LIEFERDATUM DATE,BESTELL_TOTAL NUMBER(12,2),Fehler_Datum DATE);

drop type Bestellung_X_t_table;create type Bestellung_X_t_table as TABLE of Bestellung_X_t;

create or replace package cursor_pkg as type Bestellung_t_rec IS RECORD ( BESTELLNR NUMBER(10), KUNDENCODE NUMBER(10), BESTELLDATUM DATE, LIEFERDATUM DATE, BESTELL_TOTAL NUMBER(12,2));END;

DefinitionRecord-Type

DefinitionNested-Table aufder Basis des Rekord-Types

DefinitionCursor als Typdes Übergabeparameters

Die Hilfstypen für Daten und Cursor

96

Page 96: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

create or replace function f_Bestellung_X(cur cursor_pkg.refcur_t) RETURN Bestellung_X_t_table IS BESTELLNR NUMBER(10); KUNDENCODE NUMBER(10); BESTELLDATUM DATE; LIEFERDATUM DATE; BESTELL_TOTAL NUMBER(12,2); Fehler_Datum DATE; ORDER_ID NUMBER(10);

objset Bestellung_X_t_table := Bestellung_X_t_table();i number := 0;beginLOOP -- read from cursor variable FETCH cur into BESTELLNR,KUNDENCODE, BESTELLDATUM,LIEFERDATUM,BESTELL_TOTAL,ORDER_ID; -- ext when last row EXIT WHEN cur%NOTFOUND; i := i+1; if substr(to_char(LIEFERDATUM,'YYYY.MM.YY'),1,4) >2002 then Fehler_Datum := to_date('9999.12.12','YYYY.MM.DD'); else Fehler_Datum := LIEFERDATUM; End if; objset.extend; objset(i) := Bestellung_X_t(BESTELLNR,KUNDENCODE, BESTELLDATUM,LIEFERDATUM,BESTELL_TOTAL,Fehler_Datum);END LOOP; CLOSE cur; Return objset;END;

Übernahme von Ausgangssätzenals Cursor

Definieren einer Nested-Table-Strukturfür die spätere Rückgabe.

Lesen aus Cursor

Erweitern Nested-Table um einenSatz und Überführen eines Satzes indie Nested-Table

Rückgabe der kompletten Tabelle an das aufrufende Statement(Alternative zu PIPE).

Die Table Function

97

Page 97: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

insert into bestellung_X select * from TABLE(f_Bestellung_X(CURSOR(SELECT * from Bestellung)))

select * from TABLE(f_bestellung(CURSOR(SELECT * from Bestellung)))

select count(*) from TABLE(f_bestellung(CURSOR(SELECT * from Bestellung))

Beispielaufrufe

98

create view VWTF (anzahl) as select count(*) from TABLE(f_bestellung_y());

Kapseln von Table Function – Aufrufen:

Page 98: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Materialized Views spartETL-Aufwand

99

Oracle Data Warehouse

Page 99: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Prinzip und AufgabenstellungSummentabellen

Basistabelle Summentabelle

Änderungen

?

stale

Complete RefreshIncremental Refresh

100

Page 100: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Nachteile Summentabellen

• Kein automatisches Erkennen von „Staleness“• Zusätzlicher ETL-Aufwand• Fehlende Inkrementelle Aktualisierung• Eingriff auf die Benutzeraktivitäten

• Benutzer müssen Namen der Summentabelle wissen

Page 101: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Aufgaben der Materialized Views (MAVs)

• Erleichtern das Management von Summentabellen• Wegfall von Erstellungsprozeduren• Einfache Steuerung des Zeitpunktes zur Aktualisierung• Eventuell Beschleunigung der Aktualisierung

(inkrementelles Refresh)

• Abfrage-Performance optimieren• Variable Kennzahlensysteme aufbauen

• Mehrstufige MAVs

• Abfragegruppen zusammenfassen (Kategorisierung)• Geschäftsobjekt-bezogene MAVs

102

Page 102: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Physische Eigenschaften von MAVsSpeicherung / Plattenplatz

• Speicherung von MAVs • Angabe einer Storageklausel möglich• Können in separatem Tablespace angelegt werden• Belegen Plattenplatz

• Nicht mehr als klassische Summentabellen

• Komprimierung vom MAVs möglich

103

Page 103: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

MAV-Erstellung und erstmaliges Füllen

• BUILD IMMEDIATE (direkt bei der Erstellung, default)• Problematisch bei großen Basistabellen und im Rahmen von

Entwicklung / Test

• BUILD DEFERRED (Erstellung beim ersten Refresh)• Sinnvoll bei erster Überführung neuer MAV-Definitionen in die

Produktionsumgebung

• ON PREBUILD• Sinnvoll, wenn es separate Erstellungroutinen gibt, die ihr Ergebnis

nur in einer Tabelle ablegen können, man aber die Rewrite-Vorteile der MAVs nutzen will

• Kopie von normalen Views (analog zum vorigen Punkt)

104

Page 104: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Refresh-Funktionen

• COMPLETE • Immer vollständiges Neuladen aus den Basistabellen

• FAST (inkrementell)• Nur bei vorhandenem MAV Log auf der Basistabelle

• FORCE (inkrementell oder komplett, default)• Je nach der zu erwartenden Refresh-Dauer

• NEVER • Vorhalten historischer Bestände oder bei separater Prozedur

• ON COMMIT (oft bei OLTP)• Commit einer Transaktion auf der Basistabelle

• ON DEMAND (sinnvoll im DWH, default)

105

Page 105: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Beispiel einer Materialized View

CREATE MATERIALIZED VIEW MV_Standard BUILD IMMEDIATE REFRESH COMPLETE ON DEMAND ENABLE QUERY REWRITE AS SELECT

z.jahr_nummer Jahr,z.monat_desc Monat,sum(u.umsatz) Summe,

a.artikel_id ID,count(u.umsatz)

FROM f_umsatz u,

d_artikel a, d_zeit z WHERE

a.artikel_id = u.artikel_id ANDu.zeit_id = z.datum_id

GROUP BY z.jahr_nummer, z.monat_desc, a.artikel_id;

106

Page 106: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Testen und Ablaufbedingungen einer MAVset autotrace on; -- Anzeige des Ausführungsplans

show parameter query

query_rewrite_enabled TRUE -- erlaubt das Query Rewritequery_rewrite_integrity STALE_TOLERATED -- erlaubt Query Rewrite, auch wenn

-- die Daten in der Basistabelle-- nicht mehr aktuell sind

query_rewrite_integrity TRUSTED -- auch deklarierte -- Basis-Informantionen gelten-- als korrekt (z. B. Views oder-- prebuild)

query_rewrite_integrity ENFORCED -- Daten müssen stimmen

-- Ändern der Parameter mitALTER SESSION SET query_rewrite_enabled=TRUE;ALTER SESSION SET query_rewrite_enabled=FALSE;

Page 107: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

DBMS_MVIEW (Refresh-Funktion)

• Refresh-Funktionen• REFRESH• REFRESH_DEPENDENT• REFRESH_ALL_MVIEW

REFRESH_DEPENDENT

REFRESH_ALL_MVIEW

REFRESH

• Transaktionsverhalten (optional)• ATOMIC_REFRESH• REFRESH_AFTER_ERRORS• NESTED

• Refresh-Methoden (optional)• COMPLETE (C)• FAST (F)• FORCE (default) (?)• PARTITIONED (P)

• COMPLETE C) -> immer komplettes Lesen der Basis-Tabelle• FAST (F) -> Inkremtentelles Lesen, wenn möglich (View-Log oder PCT)• FORCE (default) (?) -> beide vorgenannten Varianten, abhängig von der dafür benötigten Zeit

EXECUTE DBMS_MVIEW.REFRESH('MV_STANDARD‘,'C');

Page 108: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

DBMS_MVIEW (Refresh-Funktion)

• ATOMIC_REFRESH => TRUE | FALSE• Refresh vollzieht sich in einer Transaktion• Im Fehlerfall wird die Transaktion zurückgerollt

• REFRESH_AFTER_ERRORS => TRUE | FALSE• Refresh von mehreren Materialized Views läuft weiter bzw. bricht

ab, wenn bei einer MAV ein Fehler aufgetreten ist

• NESTED• Eine Materialized View und alle von ihr abhängigen MAVs werden

aktualisiert

EXECUTE DBMS_MVIEW.REFRESH('MV_STANDARD‘,'C');EXECUTE DBMS_MVIEW.REFRESH('MV_STANDARD',atomic_refresh=>TRUE);EXECUTE DBMS_MVIEW.REFRESH('MV_STANDARD',atomic_refresh=>TRUE,

nested => TRUE);EXECUTE DBMS_MVIEW.REFRESH('MV_STANDARD',nested=>TRUE);

109

Page 109: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Fast Refresh-Varianten

• WITH ROWID• SEQUENCE• INCLUDING NEW VALUES

• Join Dependency Expression• Partition Key• Partition Marker

BasistabelleMAV Log

MAV1 MAV2 MAV3

Partition 1

Partition 4

Partition 5

Partition 2

Partition 3

Partition 6

MAV1

MAV2

Basistabelle

Aktualisierung über MAV Logs Aktualisierung über Partition Change Tracking (PCT)

komplett

inkrementell

110

Page 110: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Fast Refresh mit MAV Log

--- MAV Log auf Tabelle D_Artikel

DROP MATERIALIZED VIEW LOG ON d_artikel;CREATE MATERIALIZED VIEW LOG ON d_artikelWITH ROWID, SEQUENCE(dimension_key, nummer, artikel_name, artikel_id, gruppe_nr, gruppe_name,sparte_name, sparte_nr)INCLUDING NEW VALUES;

--- MAV Log auf Tabelle D_Zeit

DROP MATERIALIZED VIEW LOG ON d_zeit;CREATE MATERIALIZED VIEW LOG ON d_zeitWITH ROWID, SEQUENCE(datum_id, datum_desc, tag_des_monats, tag_des_jahres, woche_des_jahres, monats_nummer,monat_desc, quartals_nummer, jahr_nummer) INCLUDING NEW VALUES;

--- MAV Log auf Tabelle F_Umsatz

DROP MATERIALIZED VIEW LOG ON f_umsatz;CREATE MATERIALIZED VIEW LOG ON f_umsatzWITH ROWID, SEQUENCE(umsatz, menge, umsatz_nach_rabatt, rabatt_wert_firmenkunde,Rabatt_wert_privatkunde, bestell_datum, artikel_id, kunde_id, region_id, zeit_id) INCLUDING NEW VALUES;

111

Page 111: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Kopiertechniken beim Laden• Trigger in Quelltabelle• SQL*Loader• Data Pump• External Tables• Transportable Tablespaces• Database Link

112

Oracle Data Warehouse

Page 112: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Herausforderungen beim Extrahieren

• Unterschiedliche Schema-Namen in Quell- und Zielsystemen

• Bewahrung der Konsistenz

• Unterschiedliche GRANTs der User

• Zusätzlicher Netzwerkverkehr

• Meist ist nur das Delta der geänderten Daten gewünscht

113

Page 113: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Datenbank-Trigger

• Werden nur im Quellsystem angelegt• Beeinflusst Performance des Quellsystems• Eher als Notlösung anzusehen

• Wenn es kein Änderungsdatum in der Quelltabelle gibt• Zum Triggern Message-basierter oder Event-gesteuerter

Ladeläufe

CREATE OR REPLACE TRIGGER Bestellung BEFORE DELETE OR INSERT OR UPDATE ON Bestellung FOR EACH ROWWHEN (new.Bestellnr > 0)DECLARE sal_diff number;BEGIN INSERT INTO log_Bestellung (Alte_Bestell_Nr,Neue_Bstell_Nr) VALUES(old.Bestellnr,new.Bestellnr); END;/

114

Page 114: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

SQL*Loader

• Loader Modes• Convential Path

• INSERT von Daten / UPDATE von Indizes / Auslösen von Triggern• Auswertung von Constraints

• Direct Path • Formatieren der Daten in Blöcken und direktes Einfügen in die

Datafiles• Keine SGA-Operationen / kein INSERT auf SQL-Level

• Parallel Direct Path• Parallele SQL*Loader-Aufrufe

115

Page 115: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

SQL*Loader – Empfehlungen

• Direct Path Load nutzen• Alle Integrity Constraints ausschalten

• NOT NULL, Unique und Primary Key Constraints

• Verhindern von Index-Aktualisierungen• UNRECOVERABLE Option wählen• Partitionen nach und nach laden

• Andere Partitionen bleiben für andere Benutzer im Zugriff

• Parallel laden, wenn es möglich ist • Nutzung paralleler Schreib-Threads• Alternativ parallele Jobs starten

116

Page 116: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Beispiel - Control File

OPTIONS (SKIP=1, BINDSIZE=50000, ERRORS=50, ROWS=200, DIRECT=TRUE, PARALLEL=TRUE, READSIZE=65536, RESUMABLE=TRUE,RESUMABLE_TIMEOUT=7200)UNRECOVERABLE LOAD DATACHARACTERSET WE8MSWIN1252INFILE 'C:\orte.csv' BADFILE 'orte.bad' DISCARDFILE 'orte.dis‚INTO TABLE dwh.tb_orte WHEN ort_id != BLANKS APPEND REENABLE DISABLED_CONSTRAINTS FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY "'" (orte_nr POSITION(1) INTEGER EXTERNAL , ort CHAR , plz CHAR , bundesland CHAR , region CHAR , nummernfeld INTEGER EXTERNAL )

117

Page 117: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Aufruf des SQL*Loaders

sqlldr userid=DWH/DWH control=c:\orte.ctl log=C:\orte.log

orte.csvorte.ctl

TB_ORTEDatenControlFile

118

Page 118: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Data Pump Architektur

Quelle: http://www.dbazine.com/blogs/blog-cf/chrisfoot/blogentry.2006-05-26.3042156388

119

Page 119: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Oracle Data Pump

• Höhere Performance als bei IMP / EXP oder anderen Entlade-Verfahren

• Daten und / oder Metainformationen von DB Objekten• Größere Steuerungsmöglichkeit, d.h. mehr Parameter und

Kontrolle der Datenextraktion

• Leichtere Einbindung der Datenflüsse über Rechnergrenzen hinweg

• Parallelisierung in RAC-Umgebungen Instanz-übergreifend

• Kompression u. Verschlüsselung nach Bedarf• Legacy Mode zur Weiterverwendung von Ex-/Import

Controls • Wiederanlauffähig

Release 2

120

Page 120: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Vereinfachte Verfahrensdarstellung

OLTP DWH

Schema OLTP

Besondere GRANTs

Schema DWH

Delta-Load

FTP

Export mit Data Pump (expdp)

Import mit Data Pump (impdp)

121

Page 121: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Export der Daten

• Optional Flashback zum Absichern des Entlade-Zeitpunktes nutzen

• Remote-Export möglich (per NETWORK_LINK)• Wegfall von separatem FTP-Aufruf

• Einschränkung durch Query-Bedingung• Damit Zugriff z. B. auf „Last Update-Sätze“

• Default Export Location• D:\o11\admin\o11\dpdump\EXPDAT.DMP

122

Page 122: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ablauf des Exports

• Export über Parameter-Datei• Export auch mit Remote-

Zugriff• Einschränkung der

Datenmenge durch QUERY

• Bei dem Import: REMAP auf das Schema

expdp dwh/dwh@o11 parfile=Para_EX.txt

impdp dwh2/dwh2@o11 DIRECTORY=DP_OUTDUMPFILE=EXP1.DMP LOGFILE=DP_OUT:imp_log REMAP_SCHEMA=DWH:DWH2

123

Page 123: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Export-Beispiele

124

Page 124: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Import-Beispiele

125

Page 125: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Interaktiver Modus von Data Pump

• CTRL-C zum Starten des interaktiven Modus• ADD_FILE

• Das Hinzufügen eines neuen Dump-Files ist möglich• KILL_JOB

• Prozess kann abgebrochen werden• STOP_JOB

• Aktueller Job wird beendet• PARALLEL

• Einstellung des Parallelisierungsgrads

• Eingabe von „continue_client“ führt zur normalen Monitor-Ausgabe zurück

126

Page 126: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

External Tables

• Tabelle, die eine Datei referenziert• Datei wird als normale Tabelle behandelt• Nur lesend zugreifbar• RMAN sichert nicht die Daten• Bulk-Loading Operationen, wie insert... select• Mehr Transformationsoptionen

als im SQL* Loader• Parallelisierbares Lesen• Alternative zum SQL*Loader

127

Page 127: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

CREATE DIRECTORY Exttab AS 'D:\Szenario\Exttab';

DROP TABLE Gemeinde_EX;CREATE TABLE Gemeinde_EX ( Gemeinde_Nr VARCHAR2(8), Gemeinde VARCHAR2(50) )

ORGANIZATION EXTERNAL

(TYPE oracle_loaderDEFAULT DIRECTORY ExttabACCESS PARAMETERS (RECORDS DELIMITED BY newline BADFILE 'Gemeinde.bad‚ DISCARDFILE 'Gemeinde.dis‚ LOGFILE 'Gemeinde.log‚ SKIP 20 FIELDS TERMINATED BY ";" OPTIONALLY ENCLOSED BY '"‚ )LOCATION ('Gemeinde_CSV.TXT'))

GemeindeID;Gemeinde;KundenID;KreisID01001000;Flensburg;;0;100101002000;Kiel;;0;100201003000;Luebeck;;0;100301004000;Neumuenster;;0;100401051001;Albersdorf;;0;105101051002;Arkebek;;0;105101051003;Averlak;;0;105101051004;Bargenstedt;;0;105101051005;Barkenholm;;0;105101051006;Barlt;;0;105101051008;Bergewoehrden;;0;105101051010;Brickeln;;0;105101051011;Brunsbuettel;;0;1051

...........................

...........................

External Tables – Beispiel 1

128

Page 128: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Modifikationsmöglichkeiten

alter table ex_orte location ('ORTE_Y.CSV');

alter table ex_orte default directory LC_Texte_2;

create or replace directory LC_TEXTE_2 AS 'D:\Szenario\Testdaten';

129

Page 129: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

„Beschickungskonzept“

• Änderungsprozedur zum• Kopieren der Dateien• Umbenennen von

Dateinamen

• Änderungsprozedur zum• Ändern der Einträge in

derExternal Table

• Ändern des Pfades im Directory-Objekt

ABC120109ABC130109

ABC140109ABC150109

Sich täglich ändernde Dateinamen

Datum im Dateinamen

Lieferantenname im Dateinamen

130

Page 130: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Preprocessing für External Tables

CREATE TABLE sales_transactions_ext (PROD_ID NUMBER, CUST_ID NUMBER ...)ORGANIZATION external (TYPE oracle_loader DEFAULT DIRECTORY data_file_dir ACCESS PARAMETERS (RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII PREPROCESSOR exec_file_dir:'gunzip' OPTIONS '-C' BADFILE log_file_dir:'sh_sales.bad_xt' LOGFILE log_file_dir:'sh_sales.log_xt' FIELDS TERMINATED BY "|" LDRTRIM ( PROD_ID, CUST_ID, TIME_ID DATE(10) "YYYY-MM-DD", CHANNEL_ID, PROMO_ID, QUANTITY_SOLD, AMOUNT_SOLD, UNIT_COST, UNIT_PRICE)) location ('sh_sales.dat.gz')) REJECT LIMIT UNLIMITED;

Release 2

131

Page 131: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

External Tables mit Data Pump

• Erstellen External Table in Quell-DB• Verwendung von CREATE AS SELECT * FROM <source_table>

• Das Ausführen des CREATE startet den Data Pump-Export

• Kopieren der Dump-Datei auf die Zielumgebung

• In der Zielumgebung neue External Table-Definition erstellen und aktivieren

• Durch Zugriff mit SELECT auf die External Table die Daten lesen

132

Page 132: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

External Tables mit Data Pump

OLTP DWH

FTP

EX_T EX_T

133

Page 133: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

External Tables mit Data Pump

OLTP DWH

select * from EX_Bestellung_2

134

Page 134: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Vorteile der Kombination

• Leichte Handhabung• Syntax der beiden Typen sehr ähnlich

• Hohe Performance• Data Pump-eigenes Format ist für schnellen Ex-/Import ausgelegt• Parameter von Data Pump zusätzlich nutzen, um die zu

extrahierende Datenmenge auf das Wesentliche zu reduzieren

• Verbleiben innerhalb der SQL-Sprache• Durch CREATE TABLE AS SELECT lassen sich sowohl WHERE-

Filter als auch Joins während des Extrahierens verarbeiten

135

Page 135: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Transportable Tablespaces

• Höchste Performance beim Austausch von Oracle zu Oracle• Daten werden als komplettes File oder File Set bewegt

• Austausch zwischen unterschiedlichen Betriebssystemen möglich • Konvertierung kann mit RMAN erfolgen, z.B. von BigEndian

nach LittleEndian

• Nützlich beim Bewegen der Daten zwischen Quellsystem und Staging Area sowie zwischen den anderen Schichten im Warehouse

136

Page 136: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Vorgehensweise

1. Anlegen des Tablespaces im Quellsystem

2. Zuweisung der zu kopierenden Daten zum Tablespace• Alle Daten sind dem Tablespace zugeordnet (Indizes etc.)

3. Ändern des Tablespaces auf Read-Only

4. Export der Metadaten mit Data Pump (EXPDP)

5. Eventuell Konvertierung des Tablespace Datafiles• Über die RMAN CONVERT Function

6. Kopieren des Tablespace Datafiles und der Metadaten

7. Import der Metadaten in der Zielumgebung

8. Ändern des Tablespaces auf Read-Write

137

Page 137: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Transportable Tablespaces

P1P2P3P4

4 4

89

Z1Z2Z3Z4

CREATE TABLE temp_jan_umsatzNOLOGGINGTABLESPACE ts_temp_umsatzASSELECT * FROM ?????????WHERE time_id BETWEEN '31-DEC-1999' AND '01-FEB-2000';

Index/Constraint freeParallel Direct Path InsertSet Based

1

2

3

4

ALTER TABLESPACE ts_temp_umsatz READ ONLY;

EXP TRANSPORT_TABLESPACE=yTABLESPACES=ts_temp_umsatzFILE=jan_umsatz.dmp

Kopieren des Tablespace zur Zielplattform

BS-CopyDaten

Metadaten

Buchhaltung

Produktion

Personal

Lager

Lieferanten

Marketing

Service

138

Page 138: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Transportable Tablespaces

IMP TRANSPORT_TABLESPACE=y DATAFILES='/db/tempjan.f'TABLESPACES=ts_temp_umsatzFILE=jan_umsatz.dmp

5

6

7

ALTER TABLESPACE ts_temp_umsatz READ WRITE;

ALTER TABLE umsatz ADD PARTITION umsatz_00jan VALUESLESS THAN (TO_DATE('01-feb-2000','dd-mon-yyyy'));ALTER TABLE umsatz EXCHANGE PARTITION umsatz_00janWITH TABLE temp_umsatz_janINCLUDING INDEXES WITH VALIDATION;

Metadaten

091999

101999

111999

121999

Fakttable Umsatz

Neuer Monat012000

139

Page 139: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Database Links – SQL über DB-Grenzen hinweg

Kunde

Data WarehouseOLTP

Kunde

Insert into tgt select * from kunde@DBL_OLTP

tgt

CREATE DATABASE LINK “DBL_OLTP" CONNECT TO “CRM" IDENTIFIED BY “CRM" USING 'ORCL_OLTP0' ;

SID: ORCL_OLTPSchema: CRM

Page 140: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 141: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Aspekte, die zu beachten sind

• Indizierung• Constraints• Komprimierung• Statistiken• Logging• Steuern von logischen Transaktionen• Aktualisierung Materialized Views• Laufzeit-Statistiken

142

Page 142: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Typischer Ablauf eines LadelaufsGroßes Ladevolumen

• Initialisieren Monitoring-Funktionen (wenn vorhanden)• Constraints abschalten• Indizes löschen• Laden über “Direct Path”

• Constraint-Prüfung mit SQL-Mitteln

• Eventuell Löschen alter Daten• Oder Archivieren

• Aktivieren der Constraints• (Sofern überhaupt gebraucht)

• Neu-Aufbau von Indizes• Statistiken aktualisieren

• DBMS_STAT

• Materialized Views aktualisieren• Laufzeit-/ Ressourcen – Statisitiken aktualisieren

143

Page 143: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Lade-Aktivitäten an Schichtübergängen

Integration Enterprise User ViewFlüchtige Daten Persistent Kopien / teilpersistent

dynamisch

KopierenSelektieren

Generische Datenstrukturen(isolierte Tabellen,teil-ausgeprägte Datentypen)

Keine Constraints

3 NF Datenstrukturen(ER-Tabellen,ausgeprägte Datentypen)

Aktivierte Constraints

Multidimensionale Modelle(ER-Tabellen,ausgeprägte Datentypen)

MengenbasiertesPrüfen ohne Constraints

UmschlüsselungLookups -> Referenz-/StammdatenJoinsAufbauen von Distinct-Strukturen(Normalisieren)

UmschlüsselungLookups -> DimensionsdatenJoins - Denormalisieren

Normalisieren(Granularisieren)

144

DenormalisierenHistorisieren

z.T. Aggregieren

Clearing-Verfahren,technisches, logisches,semantisches Prüfen

Page 144: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

ETL-Aktivitäten sind kontrollierte Vorgänge

• Objektbezogenes Vorgehen• Objektbezogenes Steuern der Parallelisierung• Gezieltes Ein-/ Ausschalten der Constraints• Gezieltes Ein-/Ausschalten Logging • Gezieltes Aktualisieren der Statistiken einzelner Objekte• Gezieltes Aktualisieren von Materialized Views

Enterprise Information Layer User View LayerData Integration Layer

Process neutral / 3 NF

L a d e - A k t i v i t ä t e n

L e s e - A k t i v i t ä t e n

Pauschale Schema-bezogeneRoutinen vermeiden. Diese sind in OLTP-Systemen sinnvoll abernicht im DWH.

Page 145: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Umgang mit Constraints im DWH

• Constraints werden im DWH seltener gebraucht(Gegensatz zu OLTP)• Es finden keine Benutzer-initiierten Inserts / Updates statt• Potentielle Änderungen sind alle bekannt und können gezielt

behandelt werden• Mengenbasierte Prüfungen schneller als Contraint-Prüfungen• Sinnvolle Contraints sind:

• PK-Contraints / Index auf Stamm- / Referenztabellen• PK-Contraints / Index auf Dimensionstabellen

Page 146: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Notwendige Prüfungen

• Dimensionen des Star Schemas• Parent-Child – Kardinalität zwischen Hierachie-Leveln• Eindeutigkeit (PK) der Einträge auf dem untersten Level

• Faktentabellen• Sind alle Faktensätze über Joins mit den Dimensionen erreichbar?• Sind alle FK-Felder mit Werten gefüllt

Page 147: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Umgang mit Tabellen beim Laden

TargetTable

Keine Constraints aktivKeine Trigger aktivKeine Indizes(Nologging)

Mengenbasiertes Prüfen von* Eindeutigkeit* NOT NULL* Feldtypen* FK / PK – Relationen*Sonstige Checks

Flashback Recovery aktiv

148

Page 148: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Einsatz von Compression

149

Oracle Data Warehouse

Page 149: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Fallstricke und Empfehlungen

• Mindestens Standard-Kompression sollte im DWH eingesetzt werden

• Tabellen mit Standard-Kompression dekomprimieren sich bei vielen vielen INSERTS / UPDATES

• Regelmäßiges Rekomprimieren• Partitionen von partitionierten Tabellen

unterschiedlich behandeln

Page 150: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Das Datenwachstum beherrschen Komprimieren: Verwaltung und Kosten reduzieren

Kompressions Typ: Einsatz für: Faktor

Basic Compression Read only Tabellen und Partitionen in Data Warehouse Umgebungen oder “inaktive” Daten-Partitionen in OLTP Umgebungen.

2-4

OLTP Compression Aktive Tabellen und Partitionen in OLTP und Data Warehouse Umgebungen.

2-4

SecureFiles Compression

Non-relational Daten in OLTP und Data Warehouse Umgebungen.

2-4

Index Compression Indizes auf Tabellen in OLTP und Data Warehouse Umgebungen.

2

Backup Compression Alle Umgebungen. 2

Hybrid Columnar Compression – Data Warehousing

Read only Tabellen und Partitionen in Data Warehouse Umgebungen.

8-12

Hybrid Columnar Compression – Archival

“Inaktive” Daten Partitionen in OLTP und Data Warehousing Umgebungen.

10-40

151

Page 151: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Tabellen-Komprimierung in 11g

• Komprimierungseinstellung durch• CREATE TABLE beim Neuanlegen• ALTER TABLE MOVE COMPRESS bei existierenden Daten• ALTER TABLE MOVE PARTITION COMPRESS bei Partitionen

• Beispiel - Syntax:

• Im Enterprise Manager:

CREATE TABLE sales_history(…) COMPRESS FOR BASIC | OLTP

152

Page 152: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HereDer Query Optimizerund Statistiken

Oracle Data Warehouse

Page 153: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Statistiken sammeln

• Regelmäßig aktuelle Statistiken sind wichtig für gute Ausführungspläne

• Ständiges Aktualisieren belastet das System• Best Practice im DWH

• Statistiken in Verbindung mit dem ETL-Prozesse aktualisieren.• Nur diejenigen Tabellen, Partitionen und Indexe aktualisieren, die

aktuell geladen bzw. verändert wurden.• => Automatisiertes Aktualisieren sollte genau überlegt werden

DBMS_STATS.GATHER_TABLE_STATS(Ownname=><OWNER>, Tabname=><TABLE_NAME>);

DBMS_STATS.GATHER_TABLE_STATS(Ownname=><OWNER>, Tabname=><TABLE_NAME>, Partname=><PARTITION_NAME>, GRANULARITY=>'PARTITION');

154

Page 154: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Sammeln von Statistiken

• Tabellen -> GATHER_TABLE_STATS

• Indexe -> GATHER_INDEX_STATS• Schema -> GATHER_SCHEMA_STATS

• Automatisiertes Sammeln für ein Schema

• Automatisiertes Sampling• Parameter DBMS_STATS.AUTO_SAMPLE_SIZE

Begin dbms_stats.gather_schema_stats( ownname => 'PERF' ,options => 'GATHER AUTO' ,estimate_percent => 5 ,block_sample => TRUE);end;

EXEC DBMS_STATS.GATHER_TABLE_STATS ('PART','BESTELLUNG_PART_RANGE',estimate_percent=>100);

EXEC dbms_stats.gather_schema_stats(ownname => 'PERF',estimate_percent => 5,block_sample => TRUE)

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS('OE',DBMS_STATS.AUTO_SAMPLE_SIZE);

Page 155: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Inkrementelles Statistiksammeln (11g)

• 11g: Incremental Global Statistics• Synapsis Struktur in SYSAUX Tablespace• Sehr schnelles Erzeugen der globalen Statistiken ohne die

komplette Tabelle zu lesen • Inkrementelles Aktualisieren einschalten

• Initiales einmaliges Sammeln

• Inkrementelles Sammeln geschieht automatisch über• EXEC DBMS_STATS.GATHER_TABLE_STATS(‚DWH1','UMSATZ');

DBMS_STATS.SET_TABLE_PREFS(<OWNER>, <TABLE_NAME>, 'INCREMENTAL', TRUE);

DBMS_STATS.GATHER_TABLE_STATS(Ownname=><OWNER>, Tabname=><TABLE_NAME>, DEGREE=><DESIRED_DEGREE>);

DBMS_STATS.GATHER_TABLE_STATS(Ownname=><OWNER>, Tabname=><TABLE_NAME>, Partname=><SUBPARTITION_NAME>, GRANULARITY=>'SUBPARTITION', DEGREE=><DESIRED_DEGREE>);

Oracle Database Performance Tuning Guide 11g Release 2 / Chapter 13 - Managing Optimizer Statistics http://download.oracle.com/docs/cd/E11882_01/server.112/e10821/stats.htm

156

Page 156: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Anwendung im DWH bei partitionierten Tabellen

• Globale Statistiken regelmäßig sammeln• Z. B. einmal im Monat

• Einschalten des ‚Incremental‘- Modus für die entsprechende Tabelle:

• EXEC DBMS_STATS.SET_TABLE_PREFS(‚DWH',‘UMSATZ,'INCREMENTAL','TRUE');

• Nach jedem Laden einer neuen Partition, die Statistiken aktualisieren:

• EXEC DBMS_STATS.GATHER_TABLE_STATS('DWH','UMSATZ');

Partition Tag 1

Partition Tag 2

Partition Tag 3

Partition Tag 4

Partition Tag 5

Partition Tag 7

Partition Tag 8

Partition Tag 9

Partition Tag 10

Partition Tag n

Globale tatistiken

Neu hinzugefügte Partiton verfälscht Statistiken

ETL

157

Page 157: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Schlüssel im DWH und Indizierung

158

Oracle Data Warehouse

Page 158: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Warum künstliche Schlüssel verwenden?

• Gründe für den zusätzlichen Aufwand künstlicher Schlüssel sind:• Integration

• In mehreren Vorsystemen gibt es unterschiedliche Schlüssel

• Stabilität• Natürliche Schlüssel können sich ändern• Geschäftsbereiche können sich ändern

DWH langlebiger als operative Anwendungen

• Künstliche Schlüssel bedeuten Performance für das Star Schema

159

Page 159: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Umschlüsselung

Alter

Name

Kunden_NR

Anzahl Kinder

Berufsgruppe

Wohnart

Einkommensgruppe

Ort

PLZ

Verkaufsregion

Kunden_NR

Strasse

Ort

PLZ

Tel

Partnernummer

Partnernummer

Wohnart

Einkommensgruppe

Verkaufsregion

Dim_Kd_NR

...

Sequence

Anwendung 2

Anwendung 1

Data Warehouse

Neuer Schlüssel

160

Page 160: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Regeln für künstliche SchlüsselIn Dimensionen

• Schlüssel sind einfach zu benutzen und kurz, um• Speicherplatz zu sparen • Fehler zu vermeiden

• Nach Möglichkeit keine zusammengesetzten Schüssel• Erfordert beim Zugriff unnötig viel Vorwissen zu den einzelnen

Schlüsselbestandteilen • Schlüsselbestandteile können leicht NULL-Wert annehmen,

die Eindeutigkeit ist gefährdet

• Keine Felder wählen, die NULL werden können

• Spaltenwerte sollten stabil sein und sich nicht mehr ändern

161

Page 161: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

B*Tree Index – 4 Zugriffe bis zum Wert

Zugriff über die RowID

1

2

3

4

162

Clustering Factor

Page 162: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Bitmap – Zugriff auf Werte per Bit StreamRowid Name Abschluss Rating

AAAHfVAAJAAAKOKAAA Meier Klasse_10 5

AAAHfVAAJAAAKOKAAB Schubert Abitur 5

AAAHfVAAJAAAKOKAAC Klaus-Gustav Abitur 5

AAAHfVAAJAAAKOKAAD Schmidt Diplom 5

AAAHfVAAJAAAKOKAAE Langbein Doktor 5

AAAHfVAAJAAAKOKAAF Hund Klasse_10 5

AAAHfVAAJAAAKOKAAG Vogel Abitur 5

AAAHfVAAJAAAKOKAAH Messner Abitur 5

AAAHfVAAJAAAKOKAAA

AAAHfVAAJAAAKOKAAB

AAAHfVAAJAAAKOKAAC

AAAHfVAAJAAAKOKAAD

AAAHfVAAJAAAKOKAAE

AAAHfVAAJAAAKOKAAF

AAAHfVAAJAAAKOKAAG

AAAHfVAAJAAAKOKAAH

Abschluss=Klasse_10

Abschluss=Abitur

Abschluss=Diplom

Abschluss=Doktor

1

0

0

0

0

1

0

0

0

1

1

0

0

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

1

0

0

0

SELECT NameFROM KD_TableWHERE Abschluss=‘Diplom‘;

163

Page 163: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Physische Strukturen im Star SchemaData Mart-Schicht

Reg Zeit

Org.Linie

Prod

Primary Key Constraint

PK ConstraintPK Constraint

PK Constraint

Foreign Key (NOT NULL)

Komprimiert

Partitioniert

Lokale Indizes

Security

Verschlüsselung

Dimensionsobjekt Dimensionsobjekt

Dimensionsobjekt

Bitmap-Index

Dimensionsobjekt

164

Page 164: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Indizierung im Star

165

D_ZEIT

DATUM_ID TAG_DES_MONATS TAG_DES_JAHRES WOCHE_DES_JAHRESMONATS_NUMMER MONAT_DESC QUARTALS_NUMMER JAHR_NUMMER ZEIT_ID

D_REGIONREGION_ID ORTNRORTKREISNRKREIS LANDNRLANDREGIONNR REGION

D_ARTIKEL

ARTIKEL_NAMEGRUPPE_NR GRUPPE_NAME SPARTE_NAME SPARTE_NR ARTIKEL_ID

D_VERTRIEBSKANAL

KANAL_ID VERTRIEBSKANAL KANALBESCHREIBUNG VERANTWORTLICH KLASSE

F_UMSATZ

ARTIKEL_ID KUNDEN_ID ZEIT_ID REGION_ID KANAL_ID UMSATZ MENGE UMSATZ_GESAMT

PK

PK

PK

PK

PK

FKFK

FKFKFK

PK: Btree IndexFK: Bitmap Index

D_KUNDEKUNDEN_IDKUNDENNR GESCHLECHTVORNAME NACHNAME TITEL ANREDE GEBDAT BRANCHE WOHNART KUNDENARTBILDUNG ANZ_KINDER EINKOMMENSGRUPPE ORTNR NUMBER, BERUFSGRUPPE STATUS STRASSE TELEFON TELEFAX KONTAKTPERSONFIRMENRABATT BERUFSGRUPPEN_NR BILDUNGS_NR EINKOMMENS_NR WOHNART_NR HAUSNUMMERPLZ ORT KUNDENKARTEZAHLUNGSZIEL_TAGE TOTAL TOTAL_NR

Page 165: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

166

D_ZEIT

DATUM_ID TAG_DES_MONATS TAG_DES_JAHRES WOCHE_DES_JAHRESMONATS_NUMMER MONAT_DESC QUARTALS_NUMMER JAHR_NUMMER ZEIT_ID

D_REGIONREGION_ID ORTNRORTKREISNRKREIS LANDNRLANDREGIONNR REGION

D_ARTIKEL

ARTIKEL_NAMEGRUPPE_NR GRUPPE_NAME SPARTE_NAME SPARTE_NR ARTIKEL_ID

D_VERTRIEBSKANAL

KANAL_ID VERTRIEBSKANAL KANALBESCHREIBUNG VERANTWORTLICH KLASSE

F_UMSATZ

ARTIKEL_ID KUNDEN_ID ZEIT_ID REGION_ID KANAL_ID UMSATZ MENGE UMSATZ_GESAMT

PK

PK

PK

PK

PK

FKFK

FKFKFK

PK: Btree IndexFK: Bitmap Index

D_KUNDEKUNDEN_IDKUNDENNR GESCHLECHTVORNAME NACHNAME TITEL ANREDE GEBDAT BRANCHE WOHNART KUNDENARTBILDUNG ANZ_KINDER EINKOMMENSGRUPPE ORTNR NUMBER, BERUFSGRUPPE STATUS STRASSE TELEFON TELEFAX KONTAKTPERSONFIRMENRABATT BERUFSGRUPPEN_NR BILDUNGS_NR EINKOMMENS_NR WOHNART_NR HAUSNUMMERPLZ ORT KUNDENKARTEZAHLUNGSZIEL_TAGE TOTAL TOTAL_NR

Indizierung im Star

Page 166: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Wo und wie wird im DWH indiziert

Enterprise Information Layer User View LayerData Integration Layer

Process neutral / 3 NF

Keine Indexe B*tree für Eindeutigkeit und als Primary Key

Bitmaps

L a d e - A k t i v i t ä t e n

L e s e - A k t i v i t ä t e n

Bitmaps

B*tree für Primary KeysIn den DimensionenTabellen

Page 167: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HereTransaktionssteuerung• Logische / technische Transaktion• Flashback

168

Oracle Data Warehouse

Page 168: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Aufgabenstellung der Lade-Transaktion

• Betrachten des kompletten Ladelaufs als eine zusammenhängende Transaktion• Entweder alle Sätze oder keine geladen

• Wie können abgebrochene Ladeläufe wieder rückgängig gemacht werden?

169

Page 169: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Transaktionssteuerung / -rücksetzung

• Markieren von Sätzen eines Ladelaufs in zusätzlichen Feldern• Ladelauf-Nummer, Ladelauf-Datum, ...• Zurückrollen durch langsames Einzel-DELETE

• Arbeiten mit Partitioning• Aufbau einer neuen Partition unabhängig von der Zieltabelle• Schnelles DROP PARTITION im Fehlerfall• Einfachste und schnellste Variante

• Flashback Database / Table / Query• Transaktions-genaues Zurückrollen• Flashback DB benötigt zusätzlichen Plattenplatz

• Einsatz von Data Guard

170

Page 170: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Flashback Database Vorbereitungen

• Archive Log Mode• Prüfen, ob Flashback und Archive Log Mode der Datenbank aktiviert

sindSELECT flashback_on, log_mode FROM gv$database;

• Abfragen der Zeitdauer, mit der Objekte aufgehoben werdenSELECT name, value FROM gv$parameter WHERE name LIKE '%flashback%';

• Verändern der Aufbewahrungszeit(Anzahl der Minuten 60 * 24 = 1440 = 1 Tag)ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=2880;

FLASHBACK_ON LOG_MODE------------------ ------------YES ARCHIVELOG

db_flashback_retention_target 2880

171

Page 171: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Flashback Logs

SQL> desc gv$flashback_database_log; Name Null? Typ ----------------------------------------- -------- --------------------------- INST_ID NUMBER OLDEST_FLASHBACK_SCN NUMBER OLDEST_FLASHBACK_TIME DATE RETENTION_TARGET NUMBER FLASHBACK_SIZE NUMBER ESTIMATED_FLASHBACK_SIZE NUMBER

SQL> SELECT * from gv$flashback_database_log;

INST_ID OLDEST_FLASHBACK_SCN OLDEST_F RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE---------- -------------------- -------- ---------------- -------------- --------------------- 1 16527241 27.12.08 2880 72892416 217939968

172

Page 172: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Abfragen auf die Änderungssituation

SQL> select ora_rowscn from X;

ORA_ROWSCN---------- 1653136616531970165313661653144416532989165329891653298916532989165329891653298916532989165329891653298916532989

SQL> SELECT oldest_flashback_scn, 2 oldest_flashback_time 3 FROM gv$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_F-------------------- -------- 16527241 27.12.08

SQL> SELECT current_scn 2 FROM gv$database;

CURRENT_SCN----------- 16554677

SQL> SELECT * from gv$flashback_database_log;

INST_ID OLDEST_FLASHBACK_SCN OLDEST_F RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE---------- -------------------- -------- ---------------- -------------- ----------------------- 1 16527241 27.12.08 2880 72892416 217939968

173

Page 173: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Beispiel Flashback Table

Abfrage u. Flashback der letzten Änderungs-SCNSELECT ora_rowscn FROM x;SELECT * FROM x AS OF SCN 12555060;SELECT * FROM x AS OF TIMESTAMP to_timestamp('2012-02-15 10:15:00',

'YYYY-MM-DD HH:MI:SS');

ZurücksetzenFlashback table x to scn 16552768;

CREATE TABLE x (Nummer number);

ALTER TABLE x ENABLE ROW MOVEMENT;

INSERT INTO X VALUES (1);

COMMIT; Jetzt erst wird eine SCN erzeugt

INSERT INTO X VALUES (1);

INSERT INTO X VALUES (1);

174

Page 174: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Flashback Database

• Komplette Datenbank zurücksetzen

• Einzelne Tabellen• Ist im DWH-Load-Prozess sinvoller

• Zurücksetzen • Über Zeitstempel• Über SCN

Sys-Schema DWH-Schemastartup mount exclusive;

FLASHBACK TABLE dwh.X TO SCN 16552768; FLASHBACK TABLE X TO SCN 16552768;

175

Page 175: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ziele Oracle DWH Architektur zur Einordnung Anforderungen an den ETL Prozess Hilfsmittel in der Datenbank (Übersicht) Vorgehensweise im ETL-Prozess Hardware und Umgebungsarchitektur

Themen

Page 176: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Hardware-Faktoren

177

Oracle Data Warehouse

Page 177: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Nähe von Datenbank und ETL-Server

DB Server ETL Server

10 GbLeitung

DB Server ETL Server

1 GbLeitung

Page 178: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Balanced Konfigurationen

• Anzahl CPU‘s

• Größe des Hauptspeichers

• Anzahl Platten

• Anzahl Disk Controller

179

• ~200 MB Datendurchsatz pro CPU• Anzahl CPU = Max. Durchsatz in MB/s / 200

• Trennung von Storage für OLTP und DWH-Systeme !!

• Schnelle Platten nutzen (15000 U/min)• Eher mehr, kleine Platten nutzen,

als wenige große Platten nutzen• Flash-Speicher in Betracht ziehen• ASM in Betracht ziehen

• Einfaches und DB-optimiertes Verwalten

• Größe des Speichers in GB = 2 * Anz. CPUs

Anzahl Disk Controller = Max. Durchsatz in MB/s

Controllerdurchsatz in MB

Controllerdurchsatz in MB =70% * Herstellerangaben in Gbit/s

8

Page 179: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Die Hardware Umgebung – Storage

• Trennung von Storage für OLTP und DWH-Systeme• Schnelle Platten nutzen (15000 U/min)• Eher mehr, kleine Platten nutzen,

als wenige große Platten nutzen• Flash-Speicher in Betracht ziehen• ASM in Betracht ziehen

• Einfaches und DB-optimiertes Verwalten

180

Page 180: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Messung von IO-Durchsatz

• Einfache Schätzmethode• Calibrate_IO

• Read-only Test• Wenige Test-Optionen -> leicht anwendbar• > 11g

• Orion (ORacle IO Numbers)• Read / Write – Tests (Achtung schreibt auf Platten)• Viele Test-Optionen• OLTP + DWH Workload• Ab 11.2 im BIN-Verzeichnis der DB• www.oracle.com/technology/software/tech/orion/index.html

181

Page 181: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Einfache Schätzmethode zur Lesegeschwindigkeit

SELECT table_name, num_rows, blocks, blocks*8 KB,blocks*8/1000 MB,blocks*8/1000000 GB FROM user_tables;

select tablespace_name, block_size from dba_tablespaces;

TABLESPACE_NAME BLOCK_SIZE------------------------------ ----------MON_G 8192MON 8192MON_D 8192MON_E 8192MON_F 8192

TABLE_NAME NUM_ROWS BLOCKS KB MB GB------------------------------ ---------- ---------- ---------- ---------- ----------BESTELLUNG_PART_RANGE 163840000 962355 7698840 7698,84 7,69884BESTELLUNG_PART_RANGE_4 163840000 962355 7698840 7698,84 7,69884

select count(*) from bestellung_part_Range_4; -- liest komplette Tabelle 

COUNT(*)---------- 163840000 Abgelaufen: 00:00:31.32

 Ergibt ~0,25 GB pro Sekunde Lesegeschwindigkeit(Achtung Blöcke eventuell nicht voll, daher geringer )

select 7.7/31 from dual;SQL> 7.7/31 ----------,248387097

Blockgröße feststellen

Anzahl Blöcke/Anzahl Bytes

Messen der Lese-geschwindigkeit

Berechnung desDurchsatzes

182

Page 182: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

ASM

• Verwalten ganzer Gruppen von Platten• Keine Einzelaktionen

• DBA übernimmt die Storage-Verwaltung• Gewohnte Kommandos… SQL Create…

• SAME in der DB • Verlagern des Striping and Mirroring Everything in die Verantwortung der

Datenbank

• Automatische Verteilung der Daten über alle Platten• Verhindert von Hotspots• Messung von IO-Zugriffen über DB-Statistiken (ist klassischen RAID-

Verfahren überlegen)

• Bequemes Hinzufügen /Wegnehmen von Platten• Verhindert Fragmentierung der Platten• Einführung von ASM kann bis 25% verbessertes IO-

Verhalten liefern• Performance kommt an Raw Devices heran

183

Page 183: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

ASM Architektur• ASM Disks

• Partitionen oder LUNs, die über das Betriebssystem bereitgestellt werden• Ab 11 sind einfache Partitionen, RAW Devices oder auch NFS-Dateien möglich

• ASM Disk Groups• Eine oder mehrere ASM Disks• Logical Volumes – logische Einheit von Speicherplatz• Eine DB kann mehrere Disk Groups haben

• ASM Failure Groups• Ensemble von ASM Disk Groups, die als 2 oder 3-Wege-Spiegel

arbeiten

• ASM instance• Ähnlich einer DB-Instanz aber ohne datafiles• Muss hochgefahren und auch über eine SID ansprechbar sein

• ASM Files • Files, die in den Disk Groups abgelegt sind, ohne

dass man deren physischen Ort bestimmt • Die ASM-Files entsprechen den sonst üblichen

Datenbank-Files (1:1 Mapping)• ASM verteilt diese Files über mehrere physische Bereiche (Platten)• Die logischen Konzepte wie Extents, Segmente

oder Tablespaces bleiben erhalten

ASM DiskASM Disk

ASM DiskASM Disk

ASM Disk

184

Page 184: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

ASM Architektur

185

Page 185: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Der physische Aufbau einer RAC-Umgebung

Options: RAC

Speichernetzwerk

CPU

CPU CPU

CPU CPU

CPU CPU

CPU

Knoten 1 Knoten 2

Privates Netzwerk(Interconnect)

Öffentliches Netzwerk

Instanz 1 Instanz 2

Daten

186

Page 186: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Ausfallsicherheit durch den Cluster

16-port switch

16-port switch

1 Gigabit ethernet

16 Storage arrays, each with

10-20 disks

4 nodes, each with 4 x 2 Ghz CPUs 5 PCI slots

187

Page 187: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Architektonische Vorteile RAC und ETL

• Voraussetzung ETL in der Datenbank• Nur dieses bringt Last auf die RAC-Knoten

• Verteilung der Datenbank-basierten ETL-Jobs auf unterschiedliche Knoten• Laufen keine ETL-Jobs

• Knoten frei für andere Datenbank-Aufgaben• Geringere Hardware-Anschaffungskosten• Wegfall Backup-Rechner• Wegfall Netzlast

• Direkter ETL-Zugriff auf Daten der eigenen Datenbank und über schnelle Leitungen

188

Page 188: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Allgemeine AufbauempfehlungenRAC aus ETL-Sicht

• Die Knoten nicht zu klein wählen• Sollten so stark sein, dass sie zusammenhängende ETL-Jobs auch alleine bewältigen können. (Z. B. 4 CPUs pro Knoten)

• RAC und ETL• Das System sollte nicht darauf angewiesen sein, über die Knoten hinweg parallelisieren zu müssen, um zu skalieren.• Skalierung gelingt über die gezielte Steuerung zusammenhängender Lade-Jobs auf die unterschiedlichen Knoten.

• Durchsatz für Interconnect 1-2 Gbit / Sec• Hauptspeicher 4 GB pro CPU• Durchsatz für das Speichernetzwerk:

pro CPU mindestens 100 MB/Sec

189

Page 189: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture HerePerformance und Systemzustand überwachen(Hilfsmittel)

190

Oracle Data Warehouse

Page 190: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Automatic Database Diagnostic Monitor(ADDM) und AWR

sysaux

User 1

User 2

AWRstündlich

ADDM Findings1……nn%2……nn%3……nn%…….

Statistics_level TYPICAL -> ONBASIC -> OFF

8 Tage lang

Recommendations- Hardware- Init-Parameter- Space Konfig.- Performance Advisor

Action

1

2

3

OEMAddmrpt.sql

Rationale

4

DBMS_ADVISOR Package

MMON-Process

use

SQL Tuning Advisor

Undo Advisor Segement Advisor

AWR-Report

191

Page 191: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

AWR (Analytic Workload Repository)

• Regelmäßiges Sammeln von einer Vielzahl von System-generierten Statistiken• Mit Hintergrundprozessen (MMON)• Gespeicherte Statistiken des MMON in SYSAUX Tablespace• Vorkonfiguriert generiert AWR alle 60 Minuten Snapshots

• Parameter STATISTICS_LEVEL (Basic/Typical/All)• Basic schaltet das Sammeln aus

• Retention-Time (Default 8 Tage)• DBA_HIST_* - Views zur Auswertung

• Manuell starten• execute dbms_workload_repository.create_snapshot(‘ALL‘);

• Auswerten• Awrrpt.sql• OEM

192

Page 192: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Trace einer Session

*** 2011-09-05 08:08:53.468=====================PARSING IN CURSOR #1 len=62 dep=0 uid=0 oct=47 lid=0 tim=33718840968 hv=3081195784 ad='34ab52dc' sqlid='2bqy8r6vufn88'BEGIN dbms_monitor.session_trace_enable(135,181,false); END;END OF STMTEXEC #1:c=0,e=1082,p=0,cr=0,cu=0,mis=1,r=1,dep=0,og=1,plh=0,tim=33718840965 *** 2011-09-05 08:09:02.890CLOSE #1:c=0,e=45,dep=0,type=0,tim=33728275300=====================PARSING IN CURSOR #3 len=41 dep=0 uid=0 oct=3 lid=0 tim=33728275601 hv=1078826809 ad='34ab4260' sqlid='2b69gpx04v5tt'select count(*) from dwh.wh_transaktionenEND OF STMTPARSE #3:c=0,e=63,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=3695442063,tim=33728275598EXEC #3:c=0,e=43,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=3695442063,tim=33728275918FETCH #3:c=0,e=792,p=0,cr=49,cu=0,mis=0,r=1,dep=0,og=1,plh=3695442063,tim=33728276801STAT #3 id=1 cnt=1 pid=0 pos=1 obj=0 op='SORT AGGREGATE (cr=49 pr=0 pw=0 time=0 us)'STAT #3 id=2 cnt=4216 pid=1 pos=1 obj=86150 op='TABLE ACCESS FULL WH_TRANSAKTIONEN (cr=49 pr=0 pw=0 time=8940 us cost=16 size=0 card=4216)'FETCH #3:c=0,e=3,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=0,plh=3695442063,tim=33728277502 *** 2011-09-05 08:09:15.453CLOSE #3:c=0,e=28,dep=0,type=0,tim=33740829401=====================PARSING IN CURSOR #2 len=57 dep=0 uid=0 oct=47 lid=0 tim=33740830066 hv=208267310 ad='34bc4a1c' sqlid='faaagm066mu1f'BEGIN dbms_monitor.session_trace_disable(135,181); END;END OF STMT 

Identifizierung einer zu prüfenden Session select sid,serial#,terminal,program,module from v$session;

135 177 ASCHLAUC sqlplus.exe sqlplus.exe Aktivieren des SQL-Traceexecute dbms_monitor.session_trace_enable(135,177,true);-- TRUE / FALS mit bzw. Ohne waits und zusätzliche Analysen Deaktivierenexecute dbms_monitor.session_trace_disable(135,181); 

193

Page 193: Oracle Data Warehouse – ETL in der Datenbank / Zusammenspiel mit Nicht- Oracle – ETL - Tools Alfred Schlaucher DATA WAREHOUSE

Click to edit titleClick to edit Master text styles

Insert Picture Here

Auswertung Trace-Dateien

• TKPROF• tkprof orcl_ora_4488.trc c:\abc.txt explain=sys/sys sort=fchqry

• Trace Analyzer (TRCA)• Download über Doc 224270.1

194