You are on page 1of 41
Change Data Capture mit OWB 11 R2 Carsten Herbe Kurzprofil Fach-, Prozess- und Technologiekompetenz aus einer Hand: metafinanz übernimmt als IT-Dienstleister End-to-End-Verantwortung und unterstützt seine Kunden als Generator effizienter Business-Prozesse in ihren Projektvorhaben Ihr Partner für: Datawarehousing (Oracle, OWB, Informatica) Business Intelligence (Cognos, SAS, Microsoft, Oracle) Schwerpunkte: Datenqualität, Sicherheit und Compliance Offene Schulungen und maßgeschneiderte Coachings Partnerships: © DOAG 2009 Seite 2 Einführung Was ist CDC? Identifizierung von neuen, geänderten oder gelöschten Daten Motivation Delta-Abgleiche aus Komplettlieferungen sind für große Datenmengen sehr zeitintensiv Aus Performance Gründen möchte man nur Änderungen aus den Quellsystemen laden Für (Near-)Realtime-Datawarehousing ist die zu übertragende Menge klein zu halten OWB und CDC Bis OWB 11R1 keine Unterstützung für CDC enthalten Neu in OWB 11R2: CDC Unterstützung ist komplett in den OWB integriert © DOAG 2009 Seite 3 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 4 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 5 Code Templates & Template Mappings Neu in 11R2: Code Templates & Template Mappings Mappings basierend auf der ODI Technologie (Knowledge Module) Template Mappings werden analog zu den klassischen Mappings erstellt. Den unterschiedlichen Teilbereichen (Extraktion von Daten, Prüfen auf Datenfehler, Schreiben von Daten) wird ein (austauschbares) Code Template zugeordnet Ein Code Template ist ein parametrisierter Ablauf von Aktionen (z.B. JDBC Datenbankzugriff) Code Templates sind keine Blackbox, es gibt einen eigenen Code Template Editor Mappings werden in einer Java-Laufzeit-Umgebung (Agent) ausgeführt SRC-Host TARGET-Host SRC-DB Agent TARGET-DB © DOAG 2009 Seite 6 Code Templates Code Templates gibt es im - Global Explorer - Nach Import im Projekt Vier Arten von Code Templates Load: Extrahieren von Daten Integration: Schreiben von Daten Control: Errorlogging Change Data Capture © DOAG 2009 Seite 7 Template Mappings Template Mappings stehen in einem eigenen Order, unabhängig von den Datenbankmodulen Template Mappings werden auf einen Agent (Java Application Server) deployt und werden auch von dem Agent ausgeführt Große Teile der Mappings laufen weiterhin direkt in der Datenbank Zur Laufzeit benötigter Code und auch Objekte werden temporär in der Datenbank erstellt © DOAG 2009 Seite 8 Aufbau von Code Templates Der Code Template Editor ähnelt stark dem Expert Editor Es gibt verschiedene Tasks: - Jacl Java Command Language (JACL) ist ein in Java geschriebener Tcl-Interpreter - JDBC Führt SQL Befehle aus. - Jython Jython (früher: JPython) ist eine reine Java-Implementierung von Python - OS Aufruf von Betriebssystem Befehlen - Runtime API Aufruf der Runtime API © DOAG 2009 Seite 9 JDBC Task Aufruf von SQL oder PL/SQL über die JDBC-Verbindung © DOAG 2009 Seite 10 Template Mapping und CDC Architektur SRC-Host TARGET-Host SRC-DB SRC_TAB Agent CDC TARGET-DB TARGET_TAB CHANGE_TAB © DOAG 2009 Seite 11 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 12 Change Data Capture Methoden Application-built-in - Die Anwendung welche die Daten verändert markiert diese (Timestamps, Version-Number, Lösch-Flag, etc.) Trigger - Per Trigger werden die geänderten Daten in eine spezielle Tabelle geschrieben - Achtung: Wenn schon Trigger in der Datenbank sind: Reihenfolge lässt sich nicht steuern Log-File Auswertung - Änderungen werden direkt aus den Archive-Log-Files der Datenbank extrahiert - Datenbank muss dazu im Archive Log Modus sein © DOAG 2009 Seite 13 Change Data Capture Process 1 2 3 4 5 6 Auswahl einer Technologie zum Erfassen der geänderten Daten Zu überwachende Tabellen werden identifiziert Änderungen an den überwachten Tabellen werden erfasst Ein oder mehrere Subscriber melden sich an, dass sie geänderte Daten haben möchten Ein Subscriber liest die geänderten Daten aus Haben alle Subscriber die geänderten Daten abgeholt, so werden sie gelöscht © DOAG 2009 Seite 14 CDC Code Templates 1 2 3 4 5 6 OWB Code Templates gibt es für verschiedene Datenbanken: Oracle DB2 Microsoft SQL Server ODI Knowledgemodule gibt es auch für Informix HSQL © DOAG 2009 Seite 15 CDC Code Template festlegen 1 2 3 4 5 6 Setzen des Journal Code Templates für das entsprechende Datenbankmodul. Dies geschieht direkt im Editor des Datenbankmodules. Konfiguration des gewählten Journal Code Templates. Je nach Code Template gibt es verschieden Konfigurationsparameter. © DOAG 2009 Seite 16 CDC Quell-Tabellen auswählen 1 2 3 4 5 6 Auswahl der zu überwachenden Tabellen. Dies geschieht direkt im Editor des Datenbankmodules oder in den Eigenschaften der Tabellen. © DOAG 2009 Seite 17 CDC Starten 1 2 3 4 5 6 Die Erfassung von geänderten Daten wird über das Kontextmenü des Datenbankmodules gestartet. Über den Agent werden die notwendigen Objekte in der Datenbank deployt. © DOAG 2009 Seite 18 Fehlersuche im Log-File des Agenten Details in Log-Files des Agenten: 1 2 3 4 5 6 - $OWB_HOME/owb/jrt/log/jrt.log - $OWB_HOME/owb/jrt/log/jobXX/log.xml wobei XX die Job Nummer ist Das Attribute TASK_NAME identifiziert den Task im Code Template © DOAG 2009 Seite 19 Fehlersuche im Code Template Editor 1 2 3 4 5 6 Mit dem TASK_NAME aus dem Log kann man im Code Template Editor den entsprechenden Task untersuchen © DOAG 2009 Seite 20 Location Working Schema 1 2 3 4 5 6 Hinweis: Bei der Verwendung von Code Templates ist darauf zu achten, dass das Working Schema der Datenbank Location gesetzt ist, dies wird beim Erstellen nicht automatisch gefüllt. © DOAG 2009 Seite 21 Hinzufügen eines Abonnenten (subscribers) 1 2 3 4 5 6 Ein Abonnent wird über den Befehl „Subscribe“ im Kontextmenü des Datenbankmodules hinzugefügt © DOAG 2009 Seite 22 Hinzufügen eines Abonnenten (subscribers) 1 2 3 4 5 6 Dieser wird über den Agenten in entsprechenden Tabellen gespeichert. © DOAG 2009 Seite 23 Weitere Aktionen 1 2 3 4 5 6 Das Überwachungsfenster erweitert werden. Ebenso muss der Subscriber gelocked werden Beides geschieht über das Change Data Capture Kontextmenü. © DOAG 2009 Seite 24 Lock Subscriber 1 2 3 4 5 6 Durch "Lock Subscriber" werden für den Subscriber Änderungen verfügbar gemacht © DOAG 2009 Seite 25 Zusätzliche Tabellen und Views Zusätzliche Tabellen für überwachte Tabellen 1 2 3 4 5 6 - J$_SRC_SIMPLE : Log Miner Tabelle (enthält Referenzen auf die Änderungen) Zusätzliche Views für überwachte Tabellen - JV$_SRC_SIMPLE: Erfasste Änderungen pro Subscriber innerhalb des Überwachungsfensters - JV$_DSRC_SIMPLE: Alle Änderungen pro Subscriber seit Start des Überwachungsfensters auch über dessen Ende hinaus - T$_SRC_SIMPLE_SRC_DATA: Änderungen unabhängig vom Subscriber © DOAG 2009 Seite 26 CDC Quell-View 1 2 3 4 5 6 CREATE OR REPLACE VIEW jv$_src_simple AS SELECT decode(targ.ROWID, NULL, 'D', 'I') jrn_flag, jrn.cdc_timestamp jrn_date, jrn.cdc_subscriber jrn_subscriber, jrn.n n, targ.d d, targ.t t FROM (SELECT j.n n, MAX(j.timestamp$) cdc_timestamp, sub.cdc_subscriber cdc_subscriber FROM src_data.j$_src_simple j, src_data.snp_cdc_subs sub WHERE sub.cdc_set_name = 'SRC_DATA.SRC_DB' AND j.cscn$ > sub.min_window_id AND j.cscn$ <= sub.max_window_id GROUP BY j.n, sub.cdc_subscriber) jrn, src_data.src_simple targ WHERE jrn.n = targ.n(+) © DOAG 2009 Seite 27 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 28 Erstellen eines Template Mappings 1 2 3 4 5 6 Template Mapping werden in dem Ordner „Template Mappings“ abgelegt und nicht unterhalb eines Datenbankmodules © DOAG 2009 Seite 29 Laden der geänderten Daten Einfügen der überwachten Quelltabelle und der Zieltabelle 1 2 3 4 5 6 Aktivierung von Change Data Capture in den Properties der Quelltabelle und auswahl des Abonnenten Dadurch enthält der Quelltabellen-Operator weitere Attribute mit Metadaten © DOAG 2009 Seite 30 Template Mapping: Logical View 1 2 3 4 5 6 Das Mapping wird wie ein normales Mapping ohne CDC entwickelt Im Logical View wird die Logik wie in den klassischen Mappings festgelegt © DOAG 2009 Seite 31 Template Mapping: Execution View 1 2 3 4 5 6 Im Execution View wird das Mapping in eine oder mehrere Execution Units aufgeteilt Den Execution Units wird nun ein Integration/Load Code Template zugeordnet © DOAG 2009 Seite 32 Deployment des Mappings Deployment von Code Template Datenbankverbindung zur Quelle Datenbankverbindung zum Ziel Template Mapping 1 2 3 4 5 6 © DOAG 2009 Seite 33 Ausführen des Template Mappings: Log 1 2 3 4 5 6 Beim Start eines Template Mappings sieht man im Log Window wie die einzelnen Tasks abgearbeitet werden © DOAG 2009 Seite 34 Ausführen des Template Mappings: Audit 1 2 3 4 5 6 Im Audit Fenster sieht man die ausgeführten Tasks und den zugrunde liegenden Code © DOAG 2009 Seite 35 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 36 Klassisches OWB Mappings 1 2 3 4 5 6 Das Laden der Änderungen funktioniert analog im klassischen OWB Mapping (In Database ETL) © DOAG 2009 Seite 37 Gliederung I. II. Einführung & Kurzprofil Code Templates III. Change Data Capture IV. Laden der geänderten Daten im Template Mapping V. Laden der geänderten Daten im klassischen Mapping VI. Fazit © DOAG 2009 Seite 38 Fazit Viele neue Möglichkeiten durch Code Templates CDC lässt sich komplett vom OWB aus verwalten - Aber manche Schritte wir Datenbank im Archive Log Modus doch lieber manuell - Knowhow über die zugrundeliegende Technologie ist sinnvoll Verwendung der Quelltabellen in den Mappings ist unabhängig von zugrundeliegender CDCTechnologie Template Mappings und klassische Mappings sind getrennte Welten - Template Mappings zum Laden der Daten aus heterogenen Quellsystemen in die Staging Area - Klassische Mappings zur Weiterverarbeitung der Daten innerhalb des Datawarehouses © DOAG 2009 Seite 39 Interesse? Fragen? Austausch? Besuchen Sie unseren Stand… Neues Training ab 2010: OWB 11R2 New Features Sie finden uns auf Ebene 2, Stand 222. Mehr Information und Downloads unter: http://owb.metafinanz.de © DOAG 2009 Seite 40 Herzlichen Dank! metafinanz Informationssysteme GmbH Leopoldstr. 146 80804 München phone: +49 89 360531-0 fax: +49 89 360531-15 kontakt@metafinanz.de www.metafinanz.de © DOAG 2009 Seite 41