Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Object Relational Mapping
Object Relational Mapping
Projektmeeting Stufe I Kick-Off Stufe II
Support.ebsco.com Lernprogramm zum Erstellen einer lokalen Sammlung.
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
ER-Datenmodell und Abfragen in SQL
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Phasen und ihre Workflows
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
1-1 Schlank und schnell zum Datawarehouse Marc Bastien Oracle Deutschland GmbH BTW Leipzig,
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
SendEplanung Datenbank
SQL als Abfragesprache
CIDOC-CRM Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung AM 2 Dozent: Prof. Dr. Manfred Thaller Referent: Nelson Marambio.
Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme
Otto-von-Guericke-Universität Magdeburg Gamal Kassem 1 Tabellenzeile mit READ lesen READ TABLE itab INDEX idx READ TABLE itab WITH KEY comp1 = f1.... Compn.
HERA und Changemanagement Scenario. HERA und Changemanagement2 Ausgangssituation Bob erstellt während der Anforderungserhebung mit HERA ein Use Case Projekt.
Erhard Künzel für Info 9. Klasse: Digitale Schule Bayern© Erhard Künzel.
Datenbanken 10: Einfügen, Ändern, Löschen
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Buch S70ff (Informatik I, Oldenbourg-Verlag)
Recovery AIFB SS (1/8) Sicherungspunkte (Checkpoints) (1/8) (1) Transaktions-Orientierte Sicherungspunkte Transaction-Oriented Checkpoint.
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
Anomalien Nichtreflexive MVDs (und somit speziell auch nichtreflexive FDs) sind unerwünscht, da sie bei Schreibzugriffen sogenannte Anomalien verursachen.
Arbeiten mit SQL in Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 Roadshow SQL.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Agenda Vereinfachte Grundeinrichtung und Dateneingabe
Working With Persistent Objects
Relationale Datenbanken III
P060 - IFI-Pflegedialogsystem - Termine und Nachrichten Ingenieurbüro für Informationssysteme Konzepte und Marketing Gerade Straße Buchholz i.d.N.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein Datenmanipulation Lehrbuch, Kapitel 4.
Effiziente Algorithmen
WS 2012/13 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #11 Transaktionsverwaltung.
1 Nutzen Sie diese Powerpoint-Präsentation beim Selbstlernen oder in Veranstaltungen zur Einführung in das jeweilige Thema. Einführung Lernmodul Nutzungsbedingungen:
IWOfurn erklärt Das Nachrichten-Archiv im Messaging.
Data Warehouse: ETL-Praktikum
Einführung in Datenbankmodellierung und SQL
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Allgemeine Funktionalitätsbeschreibung
ADAT©2004,2006 Dipl. - Ing. Walter SabinSeite: 48 Version 1.0a Recovery Wiederherstellung eines konsistenten Datenbankzustandes nach Fehlersituationen.
Transaktionen Dr. Heidrun Bethge Datenbanken II.
Structured Query Language
Transaktionsverwaltung
Semantische Integritätsbedingungen  AIFB SS trigger-Klausel (2/5) Beispiel 3-5: Angestellter: (Ang-Nr, Ang-Name, Gehalt,Familienstand, Abt-Bez).
7 Verändern von Daten. 9-2 Ziele Beschreibe jeden DML Befehl Einfügen von Zeilen in eine Tabelle Ändern von Zeilen in einer Tabelle Löschen von Zeilen.
Nachtrag Abgrenzung OLAP / OLTP
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Transaktionsverwaltung Beispiel einer typischen Transaktion in einer Bankanwendung: 1.Lese den Kontostand von A in die Variable a: read(A,a); 2.Reduziere.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
Eine Zeitreise mit Oracle 10g: Praktisches mit Flashback DOAG Regionaltreffen/Gütersloh Petra Flach Ventara AG.
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
15 Tabellen erstellen und Tabellenstruktur bearbeiten Grundlagen zu Tabellen l Tabelle l Enthält Daten zu einem bestimmten Thema l Beispiele:  Mitarbeiterdaten.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Was ist eigentlich… Big Data?
GUI lokaler Speicher Datenbank
DOAG SID Data Warehouse
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Checkliste für den Referenten
Es ist noch kein Datensatz vorhanden
Beispiele zur Datenänderung
Die erste Form der INSERT-Anweisung dient der Neueingabe von Daten:
(Structured Query Language)
 Präsentation transkript:

Effektives Delta Laden DOAG SID Data Warehouse

Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele

Möglichkeiten des CDCs CDC Full replacement Incremental CDC Source-based Target-based Timestamps Log Data EAI based

Timestamp Beispiel Letzter Ladelauf war: Um 2:00 Uhr Letzter Datensatz geladen war von 1:10 Zwei Sätze wurden nach 2:00 Uhr hinzugefügt KeyNameDatumUhrzeit 1Meier :10 2Müller :12 3Schmidt :39 Target Status table Source KeyNameDatumUhrzeit 1Meier : :10

Timestamp Beispiel… nächster Ladelauf ist um 3:00 Uhr Select * from source where datum > ‘ :10’ Update status table set datum = ‘ :39’ KeyNameDatumUhrzeit 1Meier :10 2Müller :12 3Schmidt :39 Target Status table Source :10 KeyNameDatumUhrzeit 1Meier :10 2Müller :12 3Schmidt :39

Lücken beim Laden Es können Daten verloren gehen wenn: man von einer statischen Timestamp abhängt und Daten in der Quelle geändert werden - gleichzeitig zum Extrahieren Problem ist das man zum Extrahieren der Daten Zeit benötigt…

Wo soll das Extrahieren beginnen? 1:00 2:00 3:00 Lauf 2 Lauf 1 Welche Daten sind bereits geladen? Lauf 3 Ladelauf dauert von 01:00 to 01:15

Presampling 1:00 2:00 3:00 Lauf 2 Lauf 1 Der Ladelauf lädt nie Daten aus der Grauzone Lauf 3 Ladelauf dauert von 01:00 to 01:15

Quelltabelle sperren 1:00 2:00 3:00 Lauf 2 Lauf 1 Es gibt keine Änderungen in der Quelltabelle Lauf 3 Ladelauf dauert von 01:00 to 01:15

Pre-Delete 1:00 2:00 3:00 Lauf 2 Lauf 1 Lösche alle eventuell bereits vorhandenen Daten und lade alles neu Lauf 3 Ladelauf dauert von 01:00 to 01:15

Offene Transaktionen Transaktionen die noch nicht commited sind unsichtbar Timestamp ist vom Einfügezeitpunkt und nicht von commit Zeitpunkt!

Pre-Delete 1:00 2:00 3:00 Lauf 2 Lauf 1 Lösche alle eventuell bereits vorhandenen Daten und lade alles neu Lauf 3 Ladelauf dauert von 01:00 to 01:15

Pre Delete, Version 2

Change Logs Änderungen stehen nicht in der Quelltabelle, aber vielleicht in einer anderen Tabelle Gleiches Vorgehen, gleiche Probleme wie bei Timestamps KeyVornameNachname 1WalterMüller 2ChristianMeier 3NorbertSchmidt KeyGeändert am : : :32

Change Logs

EAI Daten Änderungen werden in einem Message Bus an alle Interessierten in Echtzeit verteilt, hoffentlich kann das ETL Tool diese empfangen

Problem No 1 Viele Tabellen zusammengenommen ergeben eine Data Warehouse Tabelle Jede einzelne der Quelltabellen kann sich ändern

Jede Quelle kann sich ändern!

Jede Quelle kann sich verändern...

Wirklich jede Quelle? Wie erkennt man Änderungen in jeder einzelnen Quelltabelle? Wie erkennt man neue Orders? Kann sich der Auftraggeber wirklich nachträglich ändern? Bewirkt eine Statusänderung das Setzen des Änderungsdatums im Orderheader?

Wirklich jede Quelle? Kann sich jedes Order ändern? oder nur solche die noch nicht den Status „Abgeschlossen“ haben? Wie wäre es dann alle offenen Orders jeden Tag zu laden?

Target Based CDC Es gibt keinen Indikator im Quellsystem? Dann lese alles aber lade nur Änderungen! Speziell wenn komplexe Transformation notwendig wären...

Full Refresh Die Tabelle einfach zu leeren und völlig neu aufzubauen ist ebenfalls sehr schnell Nur inserts – daher höchste Anzahl Sätze pro Sekunde, aber lädt eben alle Sätze, nicht nur das Delta und alte Sätze dürfen niemals aus der Quelle gelöscht worden sein, sonst hat man Buchungen zu Stammdaten die es nicht mehr gibt...

Und was wenn alles nicht hilft? Kreativ sein Datenmodell überdenken Und erst als allerletzten Ausweg das Quellsystem anpassen Ist die Quelle eine RDBMS kann ein Trigger hinzugefügt werden: Verhältnismäßig billig und vor allem sicher Bei anderen Systemen, wie etwa SAP schnell mal eine IDOC hinzuzufügen bedeutet großen Aufwand

Verhalten im Fehlerfall Was muss im Fehlerfall getan werden? Bei Full Refresh, Target Based CDC und Pre-Delete gar nichts – einfach den Datenfluss neu starten! Gutmütiges Verhalten gehört zu den Designforderungen.

Summary: Anforderung an Datenflüsse von/bis Datum parametrisierbar extrem hohe Ladeperformance Jede in dem Projekt (und in Zukunft) anzutreffende Quelle soll unterstützt sein (z.B. EAI)