SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Wenn das Projekt eben doch
kein Standard-Fall ist …

Bessere Datawarehouses durch
Table Functions



Gero Knapstein
OPITZ CONSULTING Gummersbach GmbH


DOAG Konferenz, November 2011, Nürnberg

                  Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 1
Wenn das Projekt eben doch
kein Standard-Fall ist …
Massendatenverarbeitung?
Reine SQL-Statements sind da
immer das Beste …


Wirklich immer?
Nein.


Ein kleiner Teil der Anforderungen
weigert sich hartnäckig gegen eine
performante, wartbare SQL-
Implementierung …


               Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 2
Agenda
1. Wie erstelle ich eine Table-Function?
     1.     Table Function allgemein
     2.     Non-Pipelined versus Pipelined Table Functions
     3.     Pipelined Table Function im Datenstrom
     4.     Parallelisierung / Partitionierung

2. Einsatzbeispiele in Data Warehouses
     1.     Near-Realtime-Datawarehouse mit PLSQL
     2.     Kontrolle / Manipulation historisierter Stages
     3.     Zeitdimension

3.        Einsatzvorschläge in Data Warehouses
     1.     Qualitätsprüfung auf Package-Collections und -Cursor
     2.     SCRUM-Sprints / Agile Entwicklung von ETL-Strecken

4.        Fazit



                         Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 3
Ihr Oracle Center of Excellence

Leistungs-                             Kunden /                Tätigkeits-
angebot                                Kollegen                felder
 Java                                                          IT-Strategie
                                       Über 600 Kunden
 SOA/BPM                                                       Beratung
 ORACLE                               Branchen-
                                        übergreifend            Implementierung
 BI/DWH                                                        Betrieb
 Outtasking
 Exadata                              Über 450 Kollegen       Training
 Exalogic                             An 8 Standorten




               Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 4
1.1   Table Function allgemein




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 5
Table Function                                                          allgemein
 Returns Collection

   Nested Table
   Varray
   Anydataset



 Rückgabe als Ergebnismenge in SQL verwenden:

  select * from TABLE (my_package.my_table_function);




             Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 6
Table Function                                                   Vorbereitung
 Return-Collectiontyp muss im SQL-Kontext bekannt sein

   Mit DDL Object Type und Collection Type anlegen

    create or replace type my_date_objtype
    is object (jahr number, tag number, datum date);

    create or replace type my_date_coltype
    is table of my_date_objtype;


   In Package-Spezfikation Record-Type und Collection definieren
     werden implizit als Object-Types angelegt, wenn als Table-Function genutzt
     Name: „SYS_PLSQL_64703_141_1“



               Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 7
Table Functions                                                                      Arten
 Zwei Arten mit unterschiedlicher Wirkung

   Pipelined Table Function

   (nonpipelined) Table Function




   in Zukunft (12.x): Bulk Pipelined Table Function




               Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 8
Non-Pipelined versus
1.2   Pipelined Table Functions




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 9
(nonpipelined) Table Function
 create or replace function get_date_of_year
 (p_year in number) return my_date_coltype is
   v_retcol my_date_coltype := my_date_coltype();
   v_date date v_date := to_year(p_year); i number := 1;
 begin
   loop
      exit when v_date >= to_year(p_year+1);
      v_retcol.extend;
      v_retcol(i) := my_date_objtype(p_year, i, v_date);
      v_date := v_date + 1; i := i + 1;
   end loop;
   return v_retcol;
 end;

 Erst wird komplette Collection aufbereitet,
  dann wird Collection zurückgegeben
 Konsequenzen
    Kompletter Collection-Speicherbedarf muss allokiert werden
    Wenn Rückgabe nach SQL-Kontext, dann nur 1 Kontextswitch(!)

                 Bessere Data Warehouses durch Table Functions     © OPITZ CONSULTING GmbH 2011   Seite 10
Pipelined Table Function
 create or replace function get_date_of_year_pipelined
 (p_year in number) return my_date_coltype pipelined is
   v_date date := to_year(p_year);
   i number := 1;
 begin
   loop
      exit when v_date >= to_year(p_year+1);
      pipe row (my_date_objtype(p_year, i, v_date));
      v_date := v_date + 1; i := i + 1;
   end loop;
   return;
 end;


  Erst wird KEINE Collection aufgebaut
   Separate Rückgabe potentieller Collectionzeilen
  Konsequenzen
     KEIN Collection-Speicherbedarf
     Für jede Zeile nach SQL 1 Kontextswitch (!)

                  Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 11
Table Functions                                                      Vergleich
 Non-Pipelined Table Function
   Sinnvoll bei kleinen Collections
     Speicherbedarf proportional zu Collection-Größe
     Performante Bereitstellung als SQL-Datenquelle



 Pipelined Table Function
   Sinnvoll bei großen Collections
   Performance-Einbuße (Kontextswitches)




 Ausstehend (Oracle 12.x?)
  Bulk Pipelined Table Function


               Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 12
Pipelined Table Function
1.3   im Datenstrom




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 13
Pipelined Table Function mit Cursor-Parameter
 IN-Parameter vom Typ REF CURSOR
create or replace function get_date_of_year
(p_refcurs in t_ref_cursor) return my_date_coltype pipelined
Is …

 Aufruf der Funktion mit
Select * from table(get_date_of_year (CURSOR (select * from …));



 Funktion CURSOR ()
  wandelt Query in einen geöffneten REF CURSOR um




              Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 14
Pipelined Table Function im Datenstrom

                              Stage 1                         Stage 2
             T1                                       T2                     T3


 T2 wartet mit Start, bis Stage1 komplett von T1 befüllt wurde
   Schnell zwischen Stages, wenn T1, T2 und T3 reine SQL-Statements sind


                     T1                               T2            T3

 Table Function T2 nimmt Datenstrom
  aus Table Function T1 unmittelbar auf
   Optimaler „First-Rows“-Mechanismus
   Gebremst durch Kontextswitches zwischen SQL- und PLSQL-Kontext

 Beschleunigung durch Parallelisierung / Partitionierung

              Bessere Data Warehouses durch Table Functions              © OPITZ CONSULTING GmbH 2011   Seite 15
1.4   Parallelisierung / Partitionierung




           Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 16
Pipelined Table Function parallelisiert

                      T1                                T2    T3

                      T1                                T2    T3

                      T1                                T2    T3

create or replace function get_date_of_year_pipelined
(p_refcurs in t_ref_cursor) return my_date_coltype pipelined
PARALLEL_ENABLE (PARTITION refcurs BY HASH (artikel_nr)
Is …

Parallel_enable
Parallel_enable (partition <curs> by any)
Parallel_enable (partition <curs> by range <columnlist>)
Parallel_enable (partition <curs> by hash <columnlist>)

              Bessere Data Warehouses durch Table Functions        © OPITZ CONSULTING GmbH 2011   Seite 17
Einsatzbeispiele
2   in Data Warehouses




        Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 18
2.1   Near-Realtime Data Warehouse




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 19
Near-Realtime-DWH                                                 Motivation
 Eine breite, denormalisierte Quelltabelle (ODS)
 Komplexe Aufbereitung
 Kunde wollte/will PL/SQL (will nicht OWB)
 Near-Realtime-Verarbeitung < 10 Min.




            Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 20
Near-Realtime-DWH                                                        Architektur

               ODS                                        AQ


             Nacht                                      Realtime
                                     PLSQL




            Merge                                       Merge               Pipelined
                                                                         Table Functions

                                                        Mart




        Bessere Data Warehouses durch Table Functions              © OPITZ CONSULTING GmbH 2011   Seite 21
2.2   1:1-Übernahme der Historisierung?




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 22
Übernahme Historisierung                                               Motivation
 1:1-Übernahme der Historisierung
     Für DWH-Anforderungen unbrauchbar (ERP hatte geringe Ansprüche)
     Nachbesserungen im ERP waren nicht ausreichend.
     Fehleridentifikation mit einfachem Select notwendig
     -> selbstgeschriebene Analytische Funktion

 Modifikation in stundengenaue Historisierung
   Fehlerbereinigung
       Lückenlose, nicht überlappende Terminierung
       Korrekte Statusabfolge
   Reduzierung auf ältesten Satz in Stunde

 Metadaten-gesteuerte Historisierungsaufbereitung
   Expressions für Modifikation (stundengenau, minutengenau, …)
   Historisierung (SCD1 oder SCD2)?
   Welcher Status wird durchgelassen?

                 Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 23
Übernahme Historisierung                                        Lösungsansatz
 Metadaten-gesteuerte Generatoren
 Table Function Generator
 View Generator


 Views und ggf. Table Functions werden mit Pre-Mapping
  aktualisiert


 Pipelined Table Function
   Übernimmt Sätze in sortierten Collections pro Schlüssel
   Korrigiert / eliminiert Sätze (separate Fehlerprotokollierung möglich)
   Schreibt korrigierte Sätze in indizierte Collection -> jüngster Satz bleibt übrig


                Bessere Data Warehouses durch Table Functions     © OPITZ CONSULTING GmbH 2011   Seite 24
Übernahme Historisierung                                                   Lösungsansatz
                fachliche                                  EM-Mapping
              Bedingungen                                  Schnittstelle



 Stage-                                      Data
                                                                                                   EM-
 Tabelle                                    modified                        Mapping               Tabelle


                                            Pipelined
                                              Table
                                            Function Fehlermapping
                                                      Schnittstelle



                                            Data not                         Pre-
                                            modified                         Post-                Fehler-
                                                                            Mapping
                                                                                                  Tabelle




           Bessere Data Warehouses durch Table Functions                      © OPITZ CONSULTING GmbH 2011   Seite 25
Übernahme Historisierung                                                        EM-Mapping-View




            Cast              Cursor                       Ref-Cursor                      Table
          Multiset          (select …)                          ist                     (Table-Fkt)
          Order by                                        Fkt-Parameter


Tabelle       Collections mit UK          Ref-Cursor                  Pipelined Table           (reduzierte) View-
                                                                         Function                Ergebnismenge

                      Bessere Data Warehouses durch Table Functions                     © OPITZ CONSULTING GmbH 2011   Seite 26
Übernahme Historisierung                                                        EM-Mapping-View




            Cast              Cursor                       Ref-Cursor                      Table
          Multiset          (select …)                          ist                     (Table-Fkt)
          Order by                                        Fkt-Parameter


Tabelle       Collections mit UK          Ref-Cursor                  Pipelined Table           (reduzierte) View-
                                                                         Function                Ergebnismenge

                      Bessere Data Warehouses durch Table Functions                     © OPITZ CONSULTING GmbH 2011   Seite 27
Übernahme Historisierung                                                   Lösungsansatz
                fachliche                                  EM-Mapping
              Bedingungen                                  Schnittstelle



 Stage-                                      Data
                                                                                                   EM-
 Tabelle                                    modified                        Mapping               Tabelle


                                            Pipelined
                                              Table
                                            Function Fehlermapping
                                                      Schnittstelle



                                            Data not                         Pre-
                                            modified                         Post-                Fehler-
                                                                            Mapping
                                                                                                  Tabelle




           Bessere Data Warehouses durch Table Functions                      © OPITZ CONSULTING GmbH 2011   Seite 28
Übernahme Historisierung                                 Table Function




                                                           Komplette Logik




         Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 29
2.3   Aufbau Zeitdimension




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 30
Table Function für Zeitreihen                                      Motivation
 ETL-Strecken werden durch OWB / Workflow betrieben
 OWB-Mapping ist Dokumentation
 Zeitreihen-Interval soll frei wählbar sein
 Zeitreihen-Grenzen sollen frei wählbar sein
 Prozedurale Geschäftslogiken sollen performant
  eingebunden werden




             Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 31
Table Function für Zeitreihe                                OWB-Mapping




 Table Function lässt sich
  in OWB-Mapping einbinden wie Table / View o. ä.

            Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 32
3   Weitere Einsatzvorschläge




        Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 33
Qualitätsprüfung
3.1   auf Package-Collections und -Cursor




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 34
Table Functions für Package-QS                                      Motivation
 ETL-Backends haben Packages für
   „Hauskeeping“
   Geschäftslogiken
   Analysen, Mailing, …

 Package-Collections
   Sind die PLSQL „Arrays“
   Werden benötigt für performante, komplexe Programmlogik
   Sind schwierig zu debuggen



 Unit-Tests werden gerne durchgeführt mit
   Select-Statements
   Utplsql o. ä.



              Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 35
Table Functions für Package-QS leicht gemacht!




 Select * from table(my_package.query_my_collection);
 Select * from table(my_package.query_my_cursor);

            Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 36
Agile DWH-Entwicklung
3.2   Sprints mit Table Functions




          Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 37
Entwicklungs-Sprints mit Table Functions

   Vor-             Table                          Table           Table                      Front-
  system           Function                       Function        Function                     end




   Vor-                                            Table           Table                      Front-
  system        Map-                              Function        Function                     end
                          Stage
                ping




   Vor-                                                            Table                      Front-
  system        Map-                           Map-               Function                     end
                          Stage                            Core
                ping                           ping




           Bessere Data Warehouses durch Table Functions                 © OPITZ CONSULTING GmbH 2011   Seite 38
Table Function                                           Online-Dokumentation




         Bessere Data Warehouses durch Table Functions          © OPITZ CONSULTING GmbH 2011   Seite 39
Fazit
 Table Functions muss man nicht unbedingt haben,
  aber sie machen komplexe Logiken wartbarer und
  manchmal auch schneller
 Auf Table Function basierende Ergebnismengen sind
  langsamer als reine SQL-Statements, aber sie skalieren und
  bewältigen DWH-übliche Datenmengen
 Transformationsstrecken aus Views, die auf Table Function
  basieren, eignen sich für agile DWH-Entwicklung
  mit schnellen Sprints
 Ausblick (Oracle 12.x):
  Bulk-Verarbeitung wird den Durchsatz deutlich
  beschleunigt!

            Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 40
Fragen & Antworten




         Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 41
Ihr Ansprechpartner
Gero Knapstein
Senior Berater

OPITZ CONSULTING GmbH
Kirchstr. 6 | 51647 Gummersbach
Tel. +49 (2261) 60 01-0
gero.knapstein@opitz-consulting.com


Besuchen Sie uns auf unserer Website:
www.opitz-consulting.com                                                youtube.com/opitzconsulting

                                                                        @OC_WIRE

                                                                        slideshare.net/opitzconsulting

                                                                        xing.com/group-51062.460375



                 Bessere Data Warehouses durch Table Functions   © OPITZ CONSULTING GmbH 2011   Seite 42
Besuchen Sie auch die anderen Vorträge von
OPITZ CONSULTING und unseren Stand (Nr. 236)!
Dienstag, 15. November 2011                           Mittwoch, 16. November 2011                Donnerstag, 17. November 2011

MySQL in an Oracle driven datacenter                  Das ungleiche Paar – Koexistenz von OWB    Grails – Die Suche ist vorbei
10:00 bis 10:45 Uhr, Raum Singapur                    und ODI                                    09:00 bis 09:45 Uhr, Raum Riga
                                                      09:00 bis 09:45 Uhr, Raum Kopenhagen

Oracle Forms meets BI                                 Praxis Knowhow: Skalierung von SOA Suite   Enterprise Architecture Deliverables – Let‘s talk
10:00 bis 10:45 Uhr, Raum Kiew                        11g Cluster                                about results!
                                                      09:00 bis 09:45 Uhr, Raum Budapest         09:00 bis 09:45 Uhr, Raum Prag

Minimale Latenz – Bedarfsgerechte Bereitstellung      RAC ONE Node 11.2.0.2. – Wo ist meine      Brückentechnologie – Min. Downtime Plattform-
von Daten im DWH                                      Instanz?                                   Migration / Upgrade von 9 nach 11.2
10:00 bis 10:45 Uhr, Raum Kopenhagen                  13:00 bis 13:45 Uhr, Raum St. Petersburg   10:00 bis 10:45 Uhr, Raum St. Petersburg

ESSBASE und die OBIEE 11g – Aufbruch zu               Oracle BAM – Die unentdeckten              Versteckte Schätze in BPM&SOA Suite 11g
„echten“ OLAP-Analysen                                Möglichkeiten                              – gesammelte Projekterfahrungen
12:00 bis 12:45 Uhr, Raum Helsinki                    13:00 bis 13:45 Uhr, Raum Oslo             10:00 bis 10:45 Uhr, Raum Oslo

SOA Continuous Integration                            Neues zur Oracle Lizenzierung              Unterbrechungsfreies Reporting:
12:00 bis 12:45 Uhr, Raum Riga                        15:00 bis 15:45 Uhr, Raum Kopenhagen       Hochverfügbarkeit von OWB bis BIEE 11g
                                                                                                 12:00 bis 12:45 Uhr, Raum Stockholm

Agile BI mit OBIEE 11g                                                                           Oracle Resource Management
14:00 bis 14:45 Uhr, Raum Helsinki                                                               13:00 bis 13:45 Uhr, Raum St. Petersburg

Die Crux mit dem Delta – vom Fullload zum                                                        Forms Legacy – ein ADF Panorama
Incremental Load                                                                                 14:00 bis 14:45 Uhr, Konferenzraum EG
16:00 bis 16:45 Uhr, Raum Kopenhagen

Automatisiertes Konfigurationsmanagement mit                                                     Deseaster Recovery bei Grid Infrastructure 11.2
Puppet                                                                                           mit zwei Rechenzentren
16:00 bis 16:45 Uhr, Konferenzraum EG                                                            15:00 bis 15:45 Uhr, Raum Hongkong

                                                                                                 Effizientere ETL mit Table Function
                                                                                                 16:00 bis 16:45 Uhr, Raum Stockholm


     youtube.com/opitzconsulting                           slideshare.net/opitzconsulting              xing.com/group-51062.460375

                                                           @OC_WIRE
                              Bessere Data Warehouses durch Table Functions                           © OPITZ CONSULTING GmbH 2011           Seite 43

Weitere ähnliche Inhalte

Andere mochten auch

Titoma Company Introduction -Electronic Product Design & Turnkey solution China
Titoma Company Introduction -Electronic Product Design & Turnkey solution ChinaTitoma Company Introduction -Electronic Product Design & Turnkey solution China
Titoma Company Introduction -Electronic Product Design & Turnkey solution ChinaTitoma - Design for Asian Manufacturing
 
02 Venus -Godes of Love or Demon of Hell
02 Venus -Godes of Love or Demon of Hell02 Venus -Godes of Love or Demon of Hell
02 Venus -Godes of Love or Demon of HellSyed Ali Salman
 
LibQUAL+®: The UK and Irish Experience
LibQUAL+®: The UK and Irish ExperienceLibQUAL+®: The UK and Irish Experience
LibQUAL+®: The UK and Irish ExperienceSelena Killick
 
Service Blueprinting / Service Design Drinks Berlin
Service Blueprinting / Service Design Drinks BerlinService Blueprinting / Service Design Drinks Berlin
Service Blueprinting / Service Design Drinks BerlinService Design Berlin
 
Generación de Conceptos en Diseño
Generación de Conceptos en DiseñoGeneración de Conceptos en Diseño
Generación de Conceptos en DiseñoAna Listopad
 
The Service Blueprints Overview
The Service Blueprints OverviewThe Service Blueprints Overview
The Service Blueprints Overview31Volts
 
Concepto en Diseño
Concepto en DiseñoConcepto en Diseño
Concepto en DiseñoAna Listopad
 
Analytische Funktionen leicht gemacht - DOAG Konferenz 2010 - OPITZ CONSULTI...
Analytische Funktionen leicht gemacht - DOAG  Konferenz 2010 - OPITZ CONSULTI...Analytische Funktionen leicht gemacht - DOAG  Konferenz 2010 - OPITZ CONSULTI...
Analytische Funktionen leicht gemacht - DOAG Konferenz 2010 - OPITZ CONSULTI...OPITZ CONSULTING Deutschland
 
Marisa- Grammar Book
Marisa- Grammar BookMarisa- Grammar Book
Marisa- Grammar Bookkmh59011
 
קטלוג אמני הערבה
קטלוג אמני הערבהקטלוג אמני הערבה
קטלוג אמני הערבהaravayo
 
Narko
NarkoNarko
Narkosknsz
 
Rodzaje słowników i encyklopedii
Rodzaje słowników i encyklopediiRodzaje słowników i encyklopedii
Rodzaje słowników i encyklopediilosiu
 
Skateboards
SkateboardsSkateboards
Skateboardseleemans
 
心智圖2011.10.11
心智圖2011.10.11心智圖2011.10.11
心智圖2011.10.11starmiracle
 

Andere mochten auch (18)

Titoma Company Introduction -Electronic Product Design & Turnkey solution China
Titoma Company Introduction -Electronic Product Design & Turnkey solution ChinaTitoma Company Introduction -Electronic Product Design & Turnkey solution China
Titoma Company Introduction -Electronic Product Design & Turnkey solution China
 
02 Venus -Godes of Love or Demon of Hell
02 Venus -Godes of Love or Demon of Hell02 Venus -Godes of Love or Demon of Hell
02 Venus -Godes of Love or Demon of Hell
 
LibQUAL+®: The UK and Irish Experience
LibQUAL+®: The UK and Irish ExperienceLibQUAL+®: The UK and Irish Experience
LibQUAL+®: The UK and Irish Experience
 
Service Blueprinting / Service Design Drinks Berlin
Service Blueprinting / Service Design Drinks BerlinService Blueprinting / Service Design Drinks Berlin
Service Blueprinting / Service Design Drinks Berlin
 
Generación de Conceptos en Diseño
Generación de Conceptos en DiseñoGeneración de Conceptos en Diseño
Generación de Conceptos en Diseño
 
The Service Blueprints Overview
The Service Blueprints OverviewThe Service Blueprints Overview
The Service Blueprints Overview
 
Concepto en Diseño
Concepto en DiseñoConcepto en Diseño
Concepto en Diseño
 
Analytische Funktionen leicht gemacht - DOAG Konferenz 2010 - OPITZ CONSULTI...
Analytische Funktionen leicht gemacht - DOAG  Konferenz 2010 - OPITZ CONSULTI...Analytische Funktionen leicht gemacht - DOAG  Konferenz 2010 - OPITZ CONSULTI...
Analytische Funktionen leicht gemacht - DOAG Konferenz 2010 - OPITZ CONSULTI...
 
Events delhi
Events delhiEvents delhi
Events delhi
 
Marisa- Grammar Book
Marisa- Grammar BookMarisa- Grammar Book
Marisa- Grammar Book
 
קטלוג אמני הערבה
קטלוג אמני הערבהקטלוג אמני הערבה
קטלוג אמני הערבה
 
Narko
NarkoNarko
Narko
 
Rodzaje słowników i encyklopedii
Rodzaje słowników i encyklopediiRodzaje słowników i encyklopedii
Rodzaje słowników i encyklopedii
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Skateboards
SkateboardsSkateboards
Skateboards
 
Doc 3 1
Doc 3 1Doc 3 1
Doc 3 1
 
心智圖2011.10.11
心智圖2011.10.11心智圖2011.10.11
心智圖2011.10.11
 
Hun orchin amitad
Hun orchin amitadHun orchin amitad
Hun orchin amitad
 

Ähnlich wie Bessere Data Warehouses durch Table Functions - DOAG Konferenz 2011 - OPITZ CONSULTING - Gero Knapstein

Überblick Power BI Tools
Überblick Power BI ToolsÜberblick Power BI Tools
Überblick Power BI Toolsinovex GmbH
 
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...Trivadis
 
Datenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerDatenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerMarkus Flechtner
 
Oracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesOracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesPeter Ramm
 
Performanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHPerformanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHTrivadis
 
Oracle Database Mobile Server Performance Tuning
Oracle Database Mobile Server Performance TuningOracle Database Mobile Server Performance Tuning
Oracle Database Mobile Server Performance Tuningphilipploer
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPeter Ramm
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultTrivadis
 
Reporting fachartikel
Reporting fachartikelReporting fachartikel
Reporting fachartikeloiloiloiloil
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data KonnektivitätTrivadis
 
Überblick Oracle GoldenGate
Überblick Oracle GoldenGateÜberblick Oracle GoldenGate
Überblick Oracle GoldenGateIleana Somesan
 
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till SanderMigration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till SanderOPITZ CONSULTING Deutschland
 
Excellent reporting in ms excel
Excellent reporting in ms excelExcellent reporting in ms excel
Excellent reporting in ms excelsolutiontogo
 
APEX für den Oracle DBA
APEX für den Oracle DBAAPEX für den Oracle DBA
APEX für den Oracle DBANiels de Bruijn
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOPITZ CONSULTING Deutschland
 
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in ExcelKostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excelsolutiontogo
 
Abap course chapter 4 database accesses
Abap course   chapter 4 database accessesAbap course   chapter 4 database accesses
Abap course chapter 4 database accessesMilind Patil
 
SQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschSQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschholgerschmitz2011
 

Ähnlich wie Bessere Data Warehouses durch Table Functions - DOAG Konferenz 2011 - OPITZ CONSULTING - Gero Knapstein (20)

Überblick Power BI Tools
Überblick Power BI ToolsÜberblick Power BI Tools
Überblick Power BI Tools
 
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
 
DOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best PracticeDOAG 2010: ADF Faces RC Best Practice
DOAG 2010: ADF Faces RC Best Practice
 
Datenbank-Hausputz für Einsteiger
Datenbank-Hausputz für EinsteigerDatenbank-Hausputz für Einsteiger
Datenbank-Hausputz für Einsteiger
 
Oracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based IndizesOracle-DB: Effizient Nutzung von function-based Indizes
Oracle-DB: Effizient Nutzung von function-based Indizes
 
Performanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWHPerformanceaspekte im Oracle DWH
Performanceaspekte im Oracle DWH
 
Oracle Database Mobile Server Performance Tuning
Oracle Database Mobile Server Performance TuningOracle Database Mobile Server Performance Tuning
Oracle Database Mobile Server Performance Tuning
 
Performance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit PanoramaPerformance-Analyse von Oracle-Datenbanken mit Panorama
Performance-Analyse von Oracle-Datenbanken mit Panorama
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data Vault
 
Reporting fachartikel
Reporting fachartikelReporting fachartikel
Reporting fachartikel
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Überblick Oracle GoldenGate
Überblick Oracle GoldenGateÜberblick Oracle GoldenGate
Überblick Oracle GoldenGate
 
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till SanderMigration auf die OBIEE - OPITZ CONSULTING - Till Sander
Migration auf die OBIEE - OPITZ CONSULTING - Till Sander
 
Excellent reporting in ms excel
Excellent reporting in ms excelExcellent reporting in ms excel
Excellent reporting in ms excel
 
Effiziente Historisierung großer Tabellen
Effiziente Historisierung großer TabellenEffiziente Historisierung großer Tabellen
Effiziente Historisierung großer Tabellen
 
APEX für den Oracle DBA
APEX für den Oracle DBAAPEX für den Oracle DBA
APEX für den Oracle DBA
 
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang RütterOracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
Oracle ETL Herausforderungen - OPITZ CONSULTING - Till Sander - Wolfgang Rütter
 
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in ExcelKostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
Kostenfreies Webinar : Top 5 freeware Tools für Reporting in Excel
 
Abap course chapter 4 database accesses
Abap course   chapter 4 database accessesAbap course   chapter 4 database accesses
Abap course chapter 4 database accesses
 
SQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutschSQL Server 2012 070-462 prüfung deutsch
SQL Server 2012 070-462 prüfung deutsch
 

Mehr von OPITZ CONSULTING Deutschland

Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"OPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOPITZ CONSULTING Deutschland
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OPITZ CONSULTING Deutschland
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OPITZ CONSULTING Deutschland
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OPITZ CONSULTING Deutschland
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OPITZ CONSULTING Deutschland
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungOPITZ CONSULTING Deutschland
 

Mehr von OPITZ CONSULTING Deutschland (20)

OC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle LizenzierungOC|Webcast: Grundlagen der Oracle Lizenzierung
OC|Webcast: Grundlagen der Oracle Lizenzierung
 
OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021OC|Webcast "Java heute" vom 28.09.2021
OC|Webcast "Java heute" vom 28.09.2021
 
OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021OC|Webcast "Java heute" vom 24.08.2021
OC|Webcast "Java heute" vom 24.08.2021
 
OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"OC|Webcast "Daten wirklich nutzen"
OC|Webcast "Daten wirklich nutzen"
 
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
Architecture Room Stuttgart - "Cloud-native ist nur ein Teil des Spiels!"
 
OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"OC|Webcast "Willkommen in der Cloud!"
OC|Webcast "Willkommen in der Cloud!"
 
OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"OC|Webcast "Die neue Welt der Virtualisierung"
OC|Webcast "Die neue Welt der Virtualisierung"
 
10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung10 Thesen zur professionellen Softwareentwicklung
10 Thesen zur professionellen Softwareentwicklung
 
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
OC|Webcast: Oracle Lizenzierung - Lizenznews 2021
 
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der PraxisOC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
OC|Webcast: Oracle Lizenzierung - Die größten Fallen in der Praxis
 
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und CloudOC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
OC|Webcast: Oracle Lizenzierung - Virtualisierung und Cloud
 
OC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-LizenzierungOC|Webcast: Grundlagen der Oracle-Lizenzierung
OC|Webcast: Grundlagen der Oracle-Lizenzierung
 
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
OC|Weekly Talk: Inspect’n’Adapt – Make Change come true!
 
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
OC|Webcast: Schnell und clever in die AWS Cloud – Migrationsszenarien und Han...
 
OC|Weekly Talk The Power of DevOps…
OC|Weekly Talk  The Power of DevOps…OC|Weekly Talk  The Power of DevOps…
OC|Weekly Talk The Power of DevOps…
 
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
OC|Weekly Talk: "Das müsste man mal digitalisieren" - Mit Low-Code schnell zu...
 
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
OC|Weekly Talk: Service Management – Was hat sich durch Corona geändert?
 
OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring OC|Weekly Talk - Digitales Coaching & Smart Sparring
OC|Weekly Talk - Digitales Coaching & Smart Sparring
 
OC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remoteOC|Weekly Talk - Beratung remote
OC|Weekly Talk - Beratung remote
 
Effiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud NutzungEffiziente Betriebsoptimierung durch Cloud Nutzung
Effiziente Betriebsoptimierung durch Cloud Nutzung
 

Bessere Data Warehouses durch Table Functions - DOAG Konferenz 2011 - OPITZ CONSULTING - Gero Knapstein

  • 1. Wenn das Projekt eben doch kein Standard-Fall ist … Bessere Datawarehouses durch Table Functions Gero Knapstein OPITZ CONSULTING Gummersbach GmbH DOAG Konferenz, November 2011, Nürnberg Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 1
  • 2. Wenn das Projekt eben doch kein Standard-Fall ist … Massendatenverarbeitung? Reine SQL-Statements sind da immer das Beste … Wirklich immer? Nein. Ein kleiner Teil der Anforderungen weigert sich hartnäckig gegen eine performante, wartbare SQL- Implementierung … Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 2
  • 3. Agenda 1. Wie erstelle ich eine Table-Function? 1. Table Function allgemein 2. Non-Pipelined versus Pipelined Table Functions 3. Pipelined Table Function im Datenstrom 4. Parallelisierung / Partitionierung 2. Einsatzbeispiele in Data Warehouses 1. Near-Realtime-Datawarehouse mit PLSQL 2. Kontrolle / Manipulation historisierter Stages 3. Zeitdimension 3. Einsatzvorschläge in Data Warehouses 1. Qualitätsprüfung auf Package-Collections und -Cursor 2. SCRUM-Sprints / Agile Entwicklung von ETL-Strecken 4. Fazit Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 3
  • 4. Ihr Oracle Center of Excellence Leistungs- Kunden / Tätigkeits- angebot Kollegen felder  Java  IT-Strategie Über 600 Kunden  SOA/BPM  Beratung  ORACLE Branchen- übergreifend  Implementierung  BI/DWH  Betrieb  Outtasking  Exadata Über 450 Kollegen  Training  Exalogic An 8 Standorten Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 4
  • 5. 1.1 Table Function allgemein Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 5
  • 6. Table Function allgemein  Returns Collection  Nested Table  Varray  Anydataset  Rückgabe als Ergebnismenge in SQL verwenden: select * from TABLE (my_package.my_table_function); Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 6
  • 7. Table Function Vorbereitung  Return-Collectiontyp muss im SQL-Kontext bekannt sein  Mit DDL Object Type und Collection Type anlegen create or replace type my_date_objtype is object (jahr number, tag number, datum date); create or replace type my_date_coltype is table of my_date_objtype;  In Package-Spezfikation Record-Type und Collection definieren  werden implizit als Object-Types angelegt, wenn als Table-Function genutzt  Name: „SYS_PLSQL_64703_141_1“ Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 7
  • 8. Table Functions Arten  Zwei Arten mit unterschiedlicher Wirkung  Pipelined Table Function  (nonpipelined) Table Function  in Zukunft (12.x): Bulk Pipelined Table Function Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 8
  • 9. Non-Pipelined versus 1.2 Pipelined Table Functions Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 9
  • 10. (nonpipelined) Table Function create or replace function get_date_of_year (p_year in number) return my_date_coltype is v_retcol my_date_coltype := my_date_coltype(); v_date date v_date := to_year(p_year); i number := 1; begin loop exit when v_date >= to_year(p_year+1); v_retcol.extend; v_retcol(i) := my_date_objtype(p_year, i, v_date); v_date := v_date + 1; i := i + 1; end loop; return v_retcol; end;  Erst wird komplette Collection aufbereitet, dann wird Collection zurückgegeben  Konsequenzen  Kompletter Collection-Speicherbedarf muss allokiert werden  Wenn Rückgabe nach SQL-Kontext, dann nur 1 Kontextswitch(!) Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 10
  • 11. Pipelined Table Function create or replace function get_date_of_year_pipelined (p_year in number) return my_date_coltype pipelined is v_date date := to_year(p_year); i number := 1; begin loop exit when v_date >= to_year(p_year+1); pipe row (my_date_objtype(p_year, i, v_date)); v_date := v_date + 1; i := i + 1; end loop; return; end;  Erst wird KEINE Collection aufgebaut Separate Rückgabe potentieller Collectionzeilen  Konsequenzen  KEIN Collection-Speicherbedarf  Für jede Zeile nach SQL 1 Kontextswitch (!) Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 11
  • 12. Table Functions Vergleich  Non-Pipelined Table Function  Sinnvoll bei kleinen Collections  Speicherbedarf proportional zu Collection-Größe  Performante Bereitstellung als SQL-Datenquelle  Pipelined Table Function  Sinnvoll bei großen Collections  Performance-Einbuße (Kontextswitches)  Ausstehend (Oracle 12.x?) Bulk Pipelined Table Function Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 12
  • 13. Pipelined Table Function 1.3 im Datenstrom Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 13
  • 14. Pipelined Table Function mit Cursor-Parameter  IN-Parameter vom Typ REF CURSOR create or replace function get_date_of_year (p_refcurs in t_ref_cursor) return my_date_coltype pipelined Is …  Aufruf der Funktion mit Select * from table(get_date_of_year (CURSOR (select * from …));  Funktion CURSOR () wandelt Query in einen geöffneten REF CURSOR um Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 14
  • 15. Pipelined Table Function im Datenstrom Stage 1 Stage 2 T1 T2 T3  T2 wartet mit Start, bis Stage1 komplett von T1 befüllt wurde  Schnell zwischen Stages, wenn T1, T2 und T3 reine SQL-Statements sind T1 T2 T3  Table Function T2 nimmt Datenstrom aus Table Function T1 unmittelbar auf  Optimaler „First-Rows“-Mechanismus  Gebremst durch Kontextswitches zwischen SQL- und PLSQL-Kontext  Beschleunigung durch Parallelisierung / Partitionierung Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 15
  • 16. 1.4 Parallelisierung / Partitionierung Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 16
  • 17. Pipelined Table Function parallelisiert T1 T2 T3 T1 T2 T3 T1 T2 T3 create or replace function get_date_of_year_pipelined (p_refcurs in t_ref_cursor) return my_date_coltype pipelined PARALLEL_ENABLE (PARTITION refcurs BY HASH (artikel_nr) Is … Parallel_enable Parallel_enable (partition <curs> by any) Parallel_enable (partition <curs> by range <columnlist>) Parallel_enable (partition <curs> by hash <columnlist>) Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 17
  • 18. Einsatzbeispiele 2 in Data Warehouses Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 18
  • 19. 2.1 Near-Realtime Data Warehouse Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 19
  • 20. Near-Realtime-DWH Motivation  Eine breite, denormalisierte Quelltabelle (ODS)  Komplexe Aufbereitung  Kunde wollte/will PL/SQL (will nicht OWB)  Near-Realtime-Verarbeitung < 10 Min. Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 20
  • 21. Near-Realtime-DWH Architektur ODS AQ Nacht Realtime PLSQL Merge Merge Pipelined Table Functions Mart Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 21
  • 22. 2.2 1:1-Übernahme der Historisierung? Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 22
  • 23. Übernahme Historisierung Motivation  1:1-Übernahme der Historisierung  Für DWH-Anforderungen unbrauchbar (ERP hatte geringe Ansprüche)  Nachbesserungen im ERP waren nicht ausreichend.  Fehleridentifikation mit einfachem Select notwendig  -> selbstgeschriebene Analytische Funktion  Modifikation in stundengenaue Historisierung  Fehlerbereinigung  Lückenlose, nicht überlappende Terminierung  Korrekte Statusabfolge  Reduzierung auf ältesten Satz in Stunde  Metadaten-gesteuerte Historisierungsaufbereitung  Expressions für Modifikation (stundengenau, minutengenau, …)  Historisierung (SCD1 oder SCD2)?  Welcher Status wird durchgelassen? Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 23
  • 24. Übernahme Historisierung Lösungsansatz  Metadaten-gesteuerte Generatoren  Table Function Generator  View Generator  Views und ggf. Table Functions werden mit Pre-Mapping aktualisiert  Pipelined Table Function  Übernimmt Sätze in sortierten Collections pro Schlüssel  Korrigiert / eliminiert Sätze (separate Fehlerprotokollierung möglich)  Schreibt korrigierte Sätze in indizierte Collection -> jüngster Satz bleibt übrig Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 24
  • 25. Übernahme Historisierung Lösungsansatz fachliche EM-Mapping Bedingungen Schnittstelle Stage- Data EM- Tabelle modified Mapping Tabelle Pipelined Table Function Fehlermapping Schnittstelle Data not Pre- modified Post- Fehler- Mapping Tabelle Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 25
  • 26. Übernahme Historisierung EM-Mapping-View Cast Cursor Ref-Cursor Table Multiset (select …) ist (Table-Fkt) Order by Fkt-Parameter Tabelle Collections mit UK Ref-Cursor Pipelined Table (reduzierte) View- Function Ergebnismenge Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 26
  • 27. Übernahme Historisierung EM-Mapping-View Cast Cursor Ref-Cursor Table Multiset (select …) ist (Table-Fkt) Order by Fkt-Parameter Tabelle Collections mit UK Ref-Cursor Pipelined Table (reduzierte) View- Function Ergebnismenge Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 27
  • 28. Übernahme Historisierung Lösungsansatz fachliche EM-Mapping Bedingungen Schnittstelle Stage- Data EM- Tabelle modified Mapping Tabelle Pipelined Table Function Fehlermapping Schnittstelle Data not Pre- modified Post- Fehler- Mapping Tabelle Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 28
  • 29. Übernahme Historisierung Table Function Komplette Logik Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 29
  • 30. 2.3 Aufbau Zeitdimension Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 30
  • 31. Table Function für Zeitreihen Motivation  ETL-Strecken werden durch OWB / Workflow betrieben  OWB-Mapping ist Dokumentation  Zeitreihen-Interval soll frei wählbar sein  Zeitreihen-Grenzen sollen frei wählbar sein  Prozedurale Geschäftslogiken sollen performant eingebunden werden Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 31
  • 32. Table Function für Zeitreihe OWB-Mapping  Table Function lässt sich in OWB-Mapping einbinden wie Table / View o. ä. Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 32
  • 33. 3 Weitere Einsatzvorschläge Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 33
  • 34. Qualitätsprüfung 3.1 auf Package-Collections und -Cursor Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 34
  • 35. Table Functions für Package-QS Motivation  ETL-Backends haben Packages für  „Hauskeeping“  Geschäftslogiken  Analysen, Mailing, …  Package-Collections  Sind die PLSQL „Arrays“  Werden benötigt für performante, komplexe Programmlogik  Sind schwierig zu debuggen  Unit-Tests werden gerne durchgeführt mit  Select-Statements  Utplsql o. ä. Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 35
  • 36. Table Functions für Package-QS leicht gemacht!  Select * from table(my_package.query_my_collection);  Select * from table(my_package.query_my_cursor); Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 36
  • 37. Agile DWH-Entwicklung 3.2 Sprints mit Table Functions Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 37
  • 38. Entwicklungs-Sprints mit Table Functions Vor- Table Table Table Front- system Function Function Function end Vor- Table Table Front- system Map- Function Function end Stage ping Vor- Table Front- system Map- Map- Function end Stage Core ping ping Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 38
  • 39. Table Function Online-Dokumentation Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 39
  • 40. Fazit  Table Functions muss man nicht unbedingt haben, aber sie machen komplexe Logiken wartbarer und manchmal auch schneller  Auf Table Function basierende Ergebnismengen sind langsamer als reine SQL-Statements, aber sie skalieren und bewältigen DWH-übliche Datenmengen  Transformationsstrecken aus Views, die auf Table Function basieren, eignen sich für agile DWH-Entwicklung mit schnellen Sprints  Ausblick (Oracle 12.x): Bulk-Verarbeitung wird den Durchsatz deutlich beschleunigt! Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 40
  • 41. Fragen & Antworten Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 41
  • 42. Ihr Ansprechpartner Gero Knapstein Senior Berater OPITZ CONSULTING GmbH Kirchstr. 6 | 51647 Gummersbach Tel. +49 (2261) 60 01-0 gero.knapstein@opitz-consulting.com Besuchen Sie uns auf unserer Website: www.opitz-consulting.com youtube.com/opitzconsulting @OC_WIRE slideshare.net/opitzconsulting xing.com/group-51062.460375 Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 42
  • 43. Besuchen Sie auch die anderen Vorträge von OPITZ CONSULTING und unseren Stand (Nr. 236)! Dienstag, 15. November 2011 Mittwoch, 16. November 2011 Donnerstag, 17. November 2011 MySQL in an Oracle driven datacenter Das ungleiche Paar – Koexistenz von OWB Grails – Die Suche ist vorbei 10:00 bis 10:45 Uhr, Raum Singapur und ODI 09:00 bis 09:45 Uhr, Raum Riga 09:00 bis 09:45 Uhr, Raum Kopenhagen Oracle Forms meets BI Praxis Knowhow: Skalierung von SOA Suite Enterprise Architecture Deliverables – Let‘s talk 10:00 bis 10:45 Uhr, Raum Kiew 11g Cluster about results! 09:00 bis 09:45 Uhr, Raum Budapest 09:00 bis 09:45 Uhr, Raum Prag Minimale Latenz – Bedarfsgerechte Bereitstellung RAC ONE Node 11.2.0.2. – Wo ist meine Brückentechnologie – Min. Downtime Plattform- von Daten im DWH Instanz? Migration / Upgrade von 9 nach 11.2 10:00 bis 10:45 Uhr, Raum Kopenhagen 13:00 bis 13:45 Uhr, Raum St. Petersburg 10:00 bis 10:45 Uhr, Raum St. Petersburg ESSBASE und die OBIEE 11g – Aufbruch zu Oracle BAM – Die unentdeckten Versteckte Schätze in BPM&SOA Suite 11g „echten“ OLAP-Analysen Möglichkeiten – gesammelte Projekterfahrungen 12:00 bis 12:45 Uhr, Raum Helsinki 13:00 bis 13:45 Uhr, Raum Oslo 10:00 bis 10:45 Uhr, Raum Oslo SOA Continuous Integration Neues zur Oracle Lizenzierung Unterbrechungsfreies Reporting: 12:00 bis 12:45 Uhr, Raum Riga 15:00 bis 15:45 Uhr, Raum Kopenhagen Hochverfügbarkeit von OWB bis BIEE 11g 12:00 bis 12:45 Uhr, Raum Stockholm Agile BI mit OBIEE 11g Oracle Resource Management 14:00 bis 14:45 Uhr, Raum Helsinki 13:00 bis 13:45 Uhr, Raum St. Petersburg Die Crux mit dem Delta – vom Fullload zum Forms Legacy – ein ADF Panorama Incremental Load 14:00 bis 14:45 Uhr, Konferenzraum EG 16:00 bis 16:45 Uhr, Raum Kopenhagen Automatisiertes Konfigurationsmanagement mit Deseaster Recovery bei Grid Infrastructure 11.2 Puppet mit zwei Rechenzentren 16:00 bis 16:45 Uhr, Konferenzraum EG 15:00 bis 15:45 Uhr, Raum Hongkong Effizientere ETL mit Table Function 16:00 bis 16:45 Uhr, Raum Stockholm youtube.com/opitzconsulting slideshare.net/opitzconsulting xing.com/group-51062.460375 @OC_WIRE Bessere Data Warehouses durch Table Functions © OPITZ CONSULTING GmbH 2011 Seite 43