DE102021125630A1 - Datensynchronisation in einem datenanalysesystem - Google Patents

Datensynchronisation in einem datenanalysesystem Download PDF

Info

Publication number
DE102021125630A1
DE102021125630A1 DE102021125630.5A DE102021125630A DE102021125630A1 DE 102021125630 A1 DE102021125630 A1 DE 102021125630A1 DE 102021125630 A DE102021125630 A DE 102021125630A DE 102021125630 A1 DE102021125630 A1 DE 102021125630A1
Authority
DE
Germany
Prior art keywords
database system
update
log record
type
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021125630.5A
Other languages
English (en)
Inventor
Felix Beier
Dennis Butterstein
Sabine Perathoner-Tschaffler
Einar Lueck
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021125630A1 publication Critical patent/DE102021125630A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • G06F16/2386Bulk updating operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

Ein durch einen Computer implementiertes Verfahren weist ein Empfangen von mindestens einem Protokollsatz auf. Auf der Grundlage des Protokollsatzes kann ein Typ von Vorgang ermittelt werden, der in einem Quelldatenbanksystem ausgeführt wird. Auf der Grundlage des Typs von Vorgang kann eine Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien ausgewählt werden, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um in dem mindestens einen Protokollsatz beschriebene Änderungen auf ein Zieldatenbanksystem anzuwenden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft das Gebiet digitaler Computersysteme und insbesondere ein Verfahren zur Datensynchronisation in einem Datenanalysesystem.
  • Bei einer Replikation handelt es sich um einen Prozess, bei dem ein definierter Satz von Daten an mehr als einer Speicherposition aufbewahrt wird. Er kann ein Kopieren bestimmter Änderungen von einer Quellposition in eine Zielposition und ein Synchronisieren der Daten an beiden Positionen umfassen. Die Quelle und das Ziel können sich auf logischen Servern befinden, die sich auf demselben Rechner oder auf verschiedenen Rechnern in einem verteilten Netzwerk befinden. Es gibt mehrere Systeme zum Übertragen von Daten von einem System an ein anderes. Diese Systeme müssen jedoch möglicherweise weiter verbessert werden.
  • KURZDARSTELLUNG
  • Verschiedene Ausführungsformen stellen ein Verfahren zur Datensynchronisation in einem Datenanalysesystem, ein Computersystem und ein Computerprogrammprodukt bereit, wie es durch den Gegenstand der unabhängigen Ansprüche beschrieben wird. Vorteilhafte Ausführungsformen sind in den abhängigen Ansprüchen beschrieben. Ausführungsformen der vorliegenden Offenbarung können frei miteinander kombiniert werden, wenn sie sich nicht gegenseitig ausschließen.
  • Unter einem Aspekt wird ein durch einen Computer implementiertes Verfahren zur Datensynchronisation in einem Datenanalysesystem bereitgestellt. Das Verfahren weist ein Empfangen von mindestens einem Protokollsatz auf, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird; ein Ermitteln eines Typs eines im Quelldatenbanksystem ausgeführten Vorgangs auf der Grundlage des Protokollsatzes; und ein Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um in dem mindestens einen Protokollsatz beschriebene Änderungen auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
  • Figurenliste
  • In Folgenden werden Ausführungsformen der Erfindung lediglich beispielhaft unter Bezugnahme auf die Zeichnungen ausführlicher beschrieben, in denen:
    • 1 ein Blockschaubild eines Datenverarbeitungssystems gemäß einem Beispiel des vorliegenden Gegenstands ist.
    • 2 ein Ablaufplan eines Verfahrens zum Ermöglichen eines Anwendens von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
    • 3 ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
    • 4 ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands ist.
    • 5 eine Ausführungsform eines beispielhaften Computersystems darstellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung dienen der Veranschaulichung, sollen jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt sein. Viele Modifikationen und Änderungen werden für Fachleute offensichtlich sein, ohne vom Schutzumfang und Gedanken der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erläutern oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.
  • Der vorliegende Gegenstand kann eine optimale Nutzung mehrerer Aktualisierungsstrategien ermöglichen. Dies kann ein Einsparen von Verarbeitungs-Ressourcen ermöglichen, da die Auswahl der Aktualisierungsstrategie auf der Leistungsfähigkeit einer Ressourcen-Nutzung beruhen kann. Die verschiedenen Aktualisierungsstrategien können je nach dem Kontext des Datenanalysesystems bereitgestellt werden. Beispielsweise kann eine Replikations-Software/Technologie zum inkrementellen Aktualisieren des Datenanalysesystems aus Gründen der Leistungsfähigkeit oder wegen eines Auslaufens der Code-Wartung für die Software auf eine völlig neue Technologie aufgerüstet werden. Dies kann zu mehreren Aktualisierungsstrategien führen, nämlich der ersten Replikations-Software zum inkrementellen Aktualisieren und einer zweiten Replikations-Software zum inkrementellen Aktualisieren, bei der es sich um eine Aufrüstung der ersten Software zum inkrementellen Aktualisieren handelt. Die erste Technologie kann jedoch ausgereift und erprobt sein, während die neue Technologie Unzulänglichkeiten bei unterstützten Datenänderungen aufweisen kann, die repliziert werden können. Der vorliegende Gegenstand kann Stabilität gewährleisten, wobei die Technologieumstellung in einem kontinuierlichen Liefermodell schrittweise erfolgt, indem eine der ersetzten und neuen Technologien ausgewählt wird. Außerdem können laufzeitspezifische Fehler auftreten, die kundenspezifische Systemkonfigurationen betreffen. Solche Bedingungen, die zu einem Ausfall der Replikationseinrichtung führen und manuelle Wartungsfenster zur Behebung erfordern würden, können vom Replikationssystem selbst bewältigt werden, ohne dass manuelle Eingriffe oder Kenntnisse über versionsspezifische Unzulänglichkeiten beim Einrichten des Replikationssystems erforderlich sind, indem entweder das erste oder das zweite Technologie-Paket gewählt wird.
  • Bei dem Datenanalysesystem kann es sich zum Beispiel um ein Data-Warehousing-System oder ein System zur Verwaltung von Stammdaten handeln. Das Datenanalysesystem kann Data Warehousing oder eine Stammdatenverwaltung oder eine andere Technik ermöglichen, die ein Quell- und ein Zieldatenbanksystem verwendet, wobei das Zieldatenbanksystem eine Zieldatenbank aufweist, die so konfiguriert ist, dass sie eine Kopie eines Inhalts einer entsprechenden Quelldatenbank des Quelldatenbanksystems empfängt/aufweist. Das Quelldatenbanksystem kann über eine Verbindung mit dem Zieldatenbanksystem verbunden sein. Bei der Verbindung kann es sich beispielsweise um eine TCP/IP-Verbindung oder eine andere Verbindung handeln, die den Austausch von Daten über die Verbindung zwischen dem Quelldatenbanksystem und dem Zieldatenbanksystem ermöglicht. Bei dem Quelldatenbanksystem kann es sich beispielsweise um eine Transaktionseinrichtung und bei dem Zieldatenbanksystem um eine analytische Einrichtung handeln. Beispielsweise kann es sich bei dem Quelldatenbanksystem um ein Online-Transaktionsverarbeitungssystem (online transaction processing, OLTP) und bei dem Zieldatenbanksystem um ein System zur analytischen Online-Verarbeitung (online analytical processing, OLAP) handeln. Das Quelldatenbanksystem kann einen Quelldatensatz und das Zieldatenbanksystem kann einen Zieldatensatz aufweisen. Der Quelldatensatz kann Teil einer Quelldatenbank sein, und der Zieldatensatz kann Teil einer Zieldatenbank sein. Die Quell- und Zieldatensätze können in demselben oder einem unterschiedlichen Format gespeichert werden. Die Formate können sich hinsichtlich Verschlüsselung, Komprimierung, zeilenorientierter oder spaltenorientierter Speicherung usw. unterscheiden. Beispielsweise kann der Quelldatensatz in einem zeilenorientierten Format und der Zieldatensatz in einem spaltenorientierten Format gespeichert werden. Mit anderen Worten, der Zieldatensatz kann spaltenweise und nicht zeilenweise gespeichert werden. Der Inhalt des Quelldatensatzes kann durch eine oder mehrere Datenbanktransaktionen geändert werden.
  • Eine Datenbanktransaktion kann sich auf eine Arbeitseinheit beziehen, die in einer Datenbank ausgeführt und unabhängig von anderen Transaktionen in kohärenter und zuverlässiger Weise behandelt wird. Eine Datenbanktransaktion kann im Allgemeinen jede Änderung in einer Datenbank darstellen. Beispielsweise kann eine Datenbanktransaktion in einer Sprache wie SQL, die in eine Transaktion verpackt ist, an das Datenbanksystem ausgegeben werden, wobei ein Muster ähnlich dem folgenden verwendet wird: s1) Starten der Transaktion, s2) Ausführen eines Satzes von Datenvorgängen und/oder Abfragen, s3) Wenn keine Fehler auftreten, Festschreiben und Beenden der Transaktion und s4) Wenn Fehler auftreten, Wiederholen der Transaktion und Beenden. Ein Vorgang des Festschreibens einer Transaktion übernimmt alle Datenbearbeitungen im Rahmen der Transaktion und speichert die Ergebnisse in der Datenbank. Der Verarbeitungsschritt der Datenbanktransaktion kann aus den Schritten s1) und s2) des Musters bestehen, während der Anwendungsschritt das Festschreiben der Transaktion sein kann, um diese zu beenden.
  • Eine Datenbank kann einen oder mehrere Tabellenbereiche und Tabellen mit zugehörigen Indizes haben. Bei dem Tabellenbereich kann es sich um einen Satz von Datenträgern auf Festplatten handeln, die die Datensätze zwischenspeichern, in denen Tabellen tatsächlich gespeichert sind. Jede Tabelle kann in einem Tabellenbereich gespeichert sein. Bei dem Datenvorgang kann es sich um einen Vorgang in der Datenbank handeln, d.h. um einen Vorgang in Bezug auf die Tabellen oder Tabellenbereiche oder Indizes. Die Vorgänge können verschiedenen Kategorien angehören, je nachdem, an welchem Typ von Daten der Datenvorgang ausgeführt wird, z.B. können Vorgänge, die auf der Ebene eines Tabellenbereichs ausgeführt werden, einer ersten Kategorie angehören und Vorgänge, die in an den Tabellen ausgeführt werden, einer zweiten Kategorie. Darüber hinaus kann jede Kategorie von Vorgängen eine oder mehrere Typen von Vorgängen aufweisen. Beispielsweise kann die zweite Kategorie von Vorgängen einen ersten Typ von Vorgängen wie etwa Einfüge-, Lösch- und Aktualisierungsvorgänge der Tabelle und einen zweiten Typ von Vorgängen aufweisen, die die Struktur der Tabelle verändern. Je nach Typ von Vorgängen können unterschiedliche Hilfsprogramme zum Ausführen der Vorgänge verwendet werden. Zum Beispiel können die Datenvorgänge unter Verwenden von SQL-Anweisungen oder Dienstprogrammen wie etwa DB2-Dienstprogrammen ausgeführt werden. Dienstprogramme können für die Vorgänge der ersten Kategorie und SQL-Anweisungen für die Vorgänge der zweiten Kategorie verwendet werden. Dienstprogramme können umfangreiche Vorgänge in einem oder mehreren Tabellenbereichen ausführen. Beispielsweise können Dienstprogramme Tausende oder sogar viele Millionen Zeilen in eine Datenbank laden oder Daten in einem Tabellenbereich neu organisieren. SQL-Anweisungen können zum Beispiel verwendet werden, um regelmäßige Vorgänge wie Einfüge-, Aktualisierungs- und Löschvorgänge auszuführen. Darüber hinaus können die SQL-Anweisungen dazu verwendet werden, die Struktur einer Tabelle zu ändern. Bei dem Typ von Vorgang kann es sich zum Beispiel um REGULÄR (REGULAR) handeln, was einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen anzeigt, STRUKTURELLE_ÄNDERUNG (STRUCTURAL_CHANGE), was eine strukturelle Änderung anzeigt, DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG (UTILITY_ACTION_IN_EXECUTION), was anzeigt, dass eine Dienstprogrammaktion im Gange ist, oder DIENSTPROGRAMMAKTION_ERLEDIGT (UTILITY_ACTION_DONE), was anzeigt, dass die Dienstprogrammaktion an einer Tabelle beendet ist.
  • Daher ist ein Verwenden der gleichen Aktualisierungsstrategie für die verschiedenen Typen von Vorgängen möglicherweise nicht optimal, da eine Aktualisierungsstrategie möglicherweise nur für bestimmte Typen von Vorgängen, nicht aber für andere geeignet ist. Der vorliegende Gegenstand kann dieses Problem lösen, indem die geeignete Aktualisierungsstrategie auf der Grundlage des Typs von Vorgängen ausgewählt wird. Bei der Aktualisierungsstrategie kann es sich zum Beispiel um eine von vordefinierten Aktualisierungsstrategien handeln. Die vordefinierten Aktualisierungsstrategien können zum Beispiel eine erste Aktualisierungsstrategie unter Verwenden eines Massenladevorgangs (bulk load) und eine zweite Aktualisierungsstrategie unter Verwenden inkrementeller Ladevorgänge aufweisen, so dass die erste Aktualisierungsstrategie als eine auf einem Massenladevorgang beruhende Aktualisierungsstrategie und die zweite Aktualisierungsstrategie als eine auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie bezeichnet werden kann. Die erste und die zweite Aktualisierungsstrategie können jeweils auf unterschiedliche Weise implementiert werden, was zu unterschiedlichen Aktualisierungsstrategien führt. Die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie kann ein inkrementelles Laden von Änderungen ermöglichen. Bei der auf inkrementellen Ladevorgängen beruhenden Aktualisierungsstrategie können nur Daten aktualisiert werden, die seit der letzten Aktualisierung geändert wurden. Da bei jeder Aktualisierung weniger Datenzeilen kopiert werden können, kann die inkrementelle Replikation effizienter sein als eine Massenreplikation. Bei der auf einem Massenladevorgang beruhenden Strategie können entweder ganze Tabellendaten oder ein Satz von Partitionen einer Tabelle zu einem bestimmten Zeitpunkt geladen werden. In einem Implementierungsbeispiel kann die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie protokollierte Datenänderungen von EINFÜGEN-, AKTUALISIEREN- und LÖSCHEN-Anweisungen in Bezug auf Tabellen replizieren. In einem anderen Implementierungsbeispiel kann die auf inkrementellen Ladevorgängen beruhende Aktualisierungsstrategie protokollierte Datenänderungen von EINFÜGEN-, AKTUALISIEREN-, LÖSCHEN- und ÄNDERN-Anweisungen in Bezug auf Tabellen replizieren.
  • Ein Protokollsatz bezieht sich auf Protokollinformationen, die eine Änderung beschreiben, die durch einen oder mehrere Vorgänge einer Datenbanktransaktion bewirkt wurde, die an einem oder mehreren Datensätzen einer Quelltabelle einer Datenbank ausgeführt wurden. Die Protokollinformationen werden beispielsweise so bereitgestellt, dass sie vom Zieldatenbanksystem verwendet werden können, um dieselbe Änderung auf eine Zieltabelle anzuwenden, die der Quelltabelle entspricht, z.B. wenn vor einem Anwenden der Änderung auf die Quelltabelle sowohl die Quell- als auch die Zieltabelle denselben Inhalt haben, können die Protokollinformationen so bereitgestellt werden, dass dieselbe Änderung auf die Zieltabelle angewendet werden kann und die sich ergebende Zieltabelle denselben Inhalt hat wie die durch die Änderung geänderte Quelltabelle. Die Protokollinformationen können zum Beispiel allgemeine Protokollattribute und andere Attribute aufweisen, die von dem Typ der dem Protokollsatz zugehörigen Änderung abhängen. Die allgemeinen Protokollattribute können beispielsweise eine laufende Nummer des Protokollsatzes (log record sequence number, LRSN) aufweisen, bei der es sich um eine eindeutige Kennung für einen Protokollsatz handelt, die die logische Reihenfolge der Änderung angibt, einen Zeitstempel, der die Zeit angibt, zu der der Protokollsatz erstellt wurde, und eine Transaktionskennungs-Nummer, die auf die Datenbanktransaktion verweist, die den Protokollsatz erzeugt. Die anderen Attribute können zum Beispiel für einen Änderungstyp einer Aktualisierung eine Seitenkennung, die die Seitenkennung der geänderten Seite angibt, eine Länge und einen Versatz (offset) der Seite, Vorher- und Nachher-Bilder aufweisen, die den Wert der Bytes der Seite vor und nach den Seitenänderungen umfassen. Die Seite kann einen oder mehrere Datensätze in der Datenbank umfassen. Die Vorher- und Nachher-Bilder können die Werte des einen oder der mehreren Datensätze vor bzw. nach Anwenden der Änderung aufweisen. Jeder Datensatz, auf den der Protokollsatz verweist, kann aus mehreren Attributen bestehen. Der Datensatz kann eindeutig gekennzeichnet sein, z.B. über ein Kennungsattribut, einen Satz von Schlüsselattributen in der entsprechenden Datenbanktabelle usw.
  • Gemäß einer Ausführungsform weist der mindestens eine Protokollsatz eine Folge von Protokollsätzen auf, die eine bestimmte Tabelle des Quelldatenbanksystems betreffen, wobei ein Ermitteln des Typs von Vorgang auf dieser Folge beruht. Wenn die Folge von Vorgängen beispielsweise einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen darstellt, kann der Typ von Vorgang anzeigen, dass es sich um einen normalen Änderungsvorgang handelt, der an der Tabelle ausgeführt wird.
  • Gemäß einer Ausführungsform weist das Verfahren ein Anwenden der in dem mindestens einen Protokollsatz beschriebenen Änderung gemäß der ausgewählten Aktualisierungsstrategie (primäre Aktualisierungsstrategie) auf. Der vorliegende Gegenstand kann ein hybrides System zur Replikation von Datenbankänderungen ermöglichen, das mehrere Replikationsstrategien verwendet, um Daten zwischen einem Quell- und einem Zielsystem zu synchronisieren. Dadurch können die gleichen Daten in verschiedenen Systemen verfügbar gemacht werden. Indem Daten auf mehreren Systemen verfügbar gemacht werden, kann die gemeinsame Nutzung von Daten in großem Umfang zwischen Systemen ermöglicht und die Netzlast auf mehrere Systeme verteilt werden.
  • Gemäß einer Ausführungsform weist das Verfahren ein Erkennen auf, dass ein Anwenden der Änderung fehlgeschlagen ist. Als Reaktion auf das Erkennen kann eine sekundäre Aktualisierungsstrategie ausgewählt werden, und die Änderung kann auf der Grundlage der zweiten Aktualisierungsstrategie angewandt werden. Bei der sekundären Aktualisierungsstrategie kann es sich zum Beispiel um eine Strategie unter Verwenden eines Massenladevorgangs handeln. Diese Ausführungsform kann Verarbeitungs-Ressourcen einsparen, die andernfalls erforderlich wären, um zunächst das Problem der primären Aktualisierungsstrategie zu lösen und sie nach Durchführen der Korrektur erneut zu verwenden.
  • In einem Beispiel kann eine Aktualisierungsstrategie wie etwa die primäre Aktualisierungsstrategie als Standard-Aktualisierungsstrategie des Datenanalysesystems verwendet werden. Beispielsweise kann das Verfahren nach Anwenden der Änderung gemäß der sekundären Aktualisierungsstrategie einen Wechsel zurück zu der Standard-Aktualisierungsstrategie aufweisen.
  • Gemäß einer Ausführungsform umfasst der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur der Tabelle und/oder eine Aktivitätsmeldung in Bezug auf eine Dienstprogrammaktion, die im Quelldatenbanksystem ausgeführt wird. Bei der Dienstprogrammaktion kann es sich beispielsweise um eine DB2-Dienstprogrammaktion handeln, beispielsweise die folgenden DB2-Vorgänge: LADEN (LOAD), TABELLENBEREICH NEUORGANISIEREN (REORG TABLESPACE), LÖSCHEN AUS TABELLE (DISCARD FROM TABLE) usw. Der Protokollsatz stellt ein Mittel zum Erkennen einer solchen DB2-Dienstprogrammaktion bereit.
  • Gemäß einer Ausführungsform umfasst die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen, einen Massenladevorgang des Zieldatenbanksystems mit aus dem Quelldatenbanksystem stammenden Daten und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems. Das Aussetzen der Modifikationen der bestimmten Tabelle kann zum Beispiel ausgeführt werden, wenn eine Dienstprogrammaktion ausgeführt wird. Sobald die Dienstprogrammaktion beendet ist, kann die auf einem Massenladevorgang beruhende Aktualisierungsstrategie ausgewählt und angewendet werden.
  • 1 ist ein Blockschaubild eines Datenverarbeitungssystems (oder Datenanalysesystems) 100 gemäß einem Beispiel des vorliegenden Gegenstands. Das Datenverarbeitungssystem 100 kann für eine Datensynchronisation zwischen einem Quelldatenbanksystem 101 und einem Zieldatenbanksystem 103 unter Verwenden eines Datensynchronisationssystems 102 gemäß einem Beispiel des vorliegenden Gegenstands konfiguriert sein. Beim Quelldatenbanksystem 101 kann es sich zum Beispiel um ein System zur Online-Transaktionsverarbeitung (OLTP) handeln. Bei dem Zieldatenbanksystem 103 kann es sich beispielsweise um ein System zur analytischen Online-Verarbeitung (OLAP) handeln. Der Datenaustausch zwischen dem Quelldatenbanksystem 101 und dem Zieldatenbanksystem 103 kann zum Beispiel über eine TCP/IP-Kommunikationsschicht ausgeführt werden.
  • Das Quelldatenbanksystem 101 weist eine oder mehrere Quelltabellen 105 einer Quelldatenbank 110 und ein Transaktionswiederherstellungsprotokoll (transaction recovery log) 106 auf. Bei Quelltabellen 105 kann es sich um relationale Tabellen in DB2® für z/OS®, in DB2 für Linux, UNIX und Windows sowie in Oracle handeln. Die Einträge oder Protokollsätze des Transaktionswiederherstellungsprotokolls 106 beschreiben Änderungen an Zeilen der Quelltabellen 105 im Quelldatenbanksystem 101. 1 zeigt ein Beispiel für den Inhalt eines Protokollsatzes 130. Der Protokollsatz 130 kann einen Zeitstempel, eine LRSN und Attributänderungen aufweisen. Insbesondere können die Protokollsätze im Transaktionswiederherstellungsprotokoll 106 beispielsweise Informationen enthalten, die (1) die geänderte Tabelle, (2) den Wert der Schlüsselspalte in der geänderten Zeile, (3) die alten und neuen Werte aller Spalten der geänderten Zeile und (4) die Transaktion (Arbeitseinheit), die die Änderung verursacht, definieren. Eine Einfügung ist definitionsgemäß ein neuer Datensatz und hat daher keine alten Werte. Bei Lösch-Änderungen gibt es definitionsgemäß keinen neuen Datensatz, sondern nur einen alten Datensatz. Daher können Transaktionsprotokollsätze für eingefügte Zeilen nur neue Spaltenwerte enthalten, während Transaktionsprotokollsätze für gelöschte Zeilen nur alte Spaltenwerte enthalten können. Transaktionsprotokollsätze für aktualisierte Zeilen können die neuen und alten Werte aller Zeilenspalten enthalten. Die Reihenfolge von Protokollsätzen im Transaktionswiederherstellungsprotokoll kann die Reihenfolge von Änderungsvorgängen der Transaktionen widerspiegeln, und die Reihenfolge von Transaktionsfestschreibungseinträgen kann die Reihenfolge widerspiegeln, in der die Transaktionen ausgeführt werden. Bei dem Typ von Zeilenvorgängen in Transaktionsprotokollsätzen kann es sich zum Beispiel um Löschen, Einfügen oder Aktualisieren handeln.
  • Das Datensynchronisationssystem 102 weist eine Protokollleseeinheit (log reader) 104 auf. Die Protokollleseeinheit 104 kann Protokollsätze des Transaktionswiederherstellungsprotokolls 106 lesen und sie an einen Klassifikator 120 für Änderungen an Datensätzen (change record classifier) übermitteln. Der Klassifikator 120 für Änderungen an Datensätzen kann die Protokollsätze auf der Grundlage ihrer Änderungen klassifizieren, so dass ein Auswahlmodul 121 auf der Grundlage der Klassifizierung der Protokollsätze eine Aktualisierungsstrategie auswählen kann und die Aktualisierung auf der Grundlage der ausgewählten Aktualisierungsstrategie ausgeführt werden kann. Die Auswahl der Aktualisierungsstrategie und die Anwendung der Änderung unter Verwenden der gewählten Strategie kann beispielsweise in regelmäßigen Abständen, z.B. stündlich, oder automatisch ausgeführt werden, sobald eine vordefinierte Menge von Protokollsätzen (z.B. 1000 Protokollsätze) im Transaktionswiederherstellungsprotokoll 106 gespeichert ist. Bei jeder Wiederholung können nur die neu hinzugefügten Protokollsätze in Bezug auf die zuvor bereitgestellten Protokollsätze verarbeitet werden. Die ausgewählte Aktualisierungsstrategie kann zum Beispiel eine auf einem Massenladevorgang beruhende Aktualisierungsstrategie oder eine oder mehrere inkrementelle Aktualisierungsstrategien aufweisen. Die Synchronisation kann bei der auf einem Massenladevorgang beruhenden Aktualisierungsstrategie und bei der inkrementellen Aktualisierungsstrategie auf unterschiedliche Weise ausgeführt werden.
  • Die Aktualisierung unter Verwenden einer der ausgewählten inkrementellen Aktualisierungsstrategien kann unter Verwenden eines entsprechenden Anwendungsalgorithmus wie folgt ausgeführt werden. Die Protokollleseeinheit 104 kann so konfiguriert sein, dass sie eine Protokollübertragung des Transaktionswiederherstellungsprotokolls 106 an das Zieldatenbanksystem 103 auf der Grundlage einer inkrementellen Aktualisierungsstrategie ausführt, die von dem Auswahlmodul 121 ausgewählt wird. Die Übertragung kann beispielsweise durch Übertragen eines Stroms (stream) von Protokollsätzen erfolgen, die aus Protokollsätzen des Transaktionswiederherstellungsprotokolls 106 gebildet werden. Dem übertragenen Protokollstrom kann zum Beispiel eine Stromkennung zugehörig sein. Der Strom von Protokollsätzen kann zum Beispiel ein Strom von zusammengeführten Protokollsätzen sein. Dies kann ein leistungsfähiges Verarbeiten der Protokollsätze im Zieldatenbanksystem ermöglichen. Das Zieldatenbanksystem 103 weist mehrere Anwendungsprogramme 108.1 und 108.2 auf, die jeweils einer entsprechenden inkrementellen Aktualisierungsstrategie zugehörig sind. 1 zeigt zur Veranschaulichung lediglich zwei Anwendungsalgorithmen, ist jedoch nicht auf nur zwei Anwendungsalgorithmen beschränkt. Das Zieldatenbanksystem 103 weist außerdem eine oder mehrere Kopien der Zieltabelle 113 der Zieldatenbank 111 auf. Das Zieldatenbanksystem weist eine Protokolldatenstrom-Schnittstelle zum Empfangen der Protokollströme aus dem Quelldatenbanksystem 101 auf. Jedes der Anwendungsprogramme 108.1 und 108.2 kann so konfiguriert sein, dass es Ströme von Protokollsätzen über die Protokolldatenstrom-Schnittstelle empfängt. Jedes der Anwendungsprogramme 108.1 und 108.2 kann die empfangenen Protokollsätze zwischenspeichern und die Änderungen zu Stapeln zusammenfassen, um die Leistungsfähigkeit beim Anwenden der Änderungen auf die Tabellen 113 der Zieldatenbank 111 zu verbessern, z.B. über eine Massenlade-Schnittstelle.
  • In einem anderen Beispiel kann ein Masseladevorgang (Aktualisierungen von Momentaufnahmen) zwischen dem Quelldatenbanksystem 101 und dem Zieldatenbanksystem 103 auf der Grundlage einer ausgewählten auf einem Massenladevorgang beruhenden Aktualisierungsstrategie ausgeführt werden. Bei dem Ladevorgang kann es sich um ein Laden ganzer Tabellendaten oder eines Satzes von Partitionen einer Tabelle zu einem bestimmten Zeitpunkt handeln, und er kann direkt vom Quelldatenbanksystem zum Zieldatenbanksystem ausgeführt werden. Daten im Zieldatenbanksystem können den Zustand des Quelldatenbanksystems zum Zeitpunkt des Ausführens des Ladevorgangs widerspiegeln.
  • Zwar wird das Datensynchronisationssystem 102 in Form von separaten Komponenten gezeigt, in einem anderen Beispiel kann es jedoch Teil des Quelldatenbanksystems 101 sein. In einem Beispiel können sich die Quell- und Zieldatenbanksysteme 101 und 103 auf demselben System oder auf verschiedenen Systemen in einem verteilten Netzwerk befinden. Darüber hinaus können das Datensynchronisationssystem 102, das Quelldatenbanksystem 101 und/oder das Zieldatenbanksystem 103 als ein Computersystem implementiert werden, beispielsweise das im Folgenden in Bezug auf 5 beschriebene System 600.
  • 2 ist ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 2 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, ohne jedoch auf eine solche Implementierung beschränkt zu sein. Das Verfahren von 2 kann beispielsweise durch das Datensynchronisationssystem 102 ausgeführt werden.
  • Im Block 201 kann mindestens ein Protokollsatz empfangen werden. Der Protokollsatz beschreibt mindestens einen Vorgang, der in einer oder mehreren Quelltabellen des Quelldatenbanksystems 101 ausgeführt wurde. Bei dem mindestens einen Protokollsatz kann es sich um einen Datensatz des Transaktionswiederherstellungsprotokolls 106 handeln. Beispielsweise kann die Protokollleseeinheit 104 den mindestens einen Protokollsatz aus dem Quelldatenbanksystem 101 lesen oder empfangen. In einem Beispiel weist der mindestens eine Protokollsatz eine Folge von Protokollsätzen auf, die zu einer bestimmten Tabelle 105 des Quelldatenbanksystems 101 gehören. Der mindestens eine Protokollsatz kann automatisch empfangen werden, z.B. wenn er im Transaktionswiederherstellungsprotokoll 106 erstellt wird. In einem anderen Beispiel kann der mindestens eine Protokollsatz als Reaktion auf ein Übertragen einer Anforderung an das Quelldatenbanksystem 101 empfangen werden.
  • Ein Typ von im Quelldatenbanksystem 101 ausgeführtem Vorgang kann im Block 203 auf der Grundlage des mindestens einen Protokollsatzes ermittelt werden. Der Typ von Vorgang kann beispielsweise unter Verwenden des Klassifikators 120 für Änderungen an Datensätzen ermittelt werden. Beispielsweise kann nach Lesen oder Empfangen des mindestens einen Protokollsatzes aus dem Transaktionswiederherstellungsprotokoll 106 des Quelldatenbanksystems der Änderungstyp unter Verwenden des Klassifikators 120 für Änderungen an Datensätzen decodiert und klassifiziert werden. Die Klassifizierung des Änderungstyps ist ein Anzeichen für den Typ von Vorgang. Der Typ von Vorgang kann beispielsweise eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur der Tabelle oder eine Aktivitätsmeldung umfassen, die eine Dienstprogrammaktion betrifft, die im Quelldatenbanksystem ausgeführt wird. Der Klassifikator 120 für Änderungen an Datensätzen kann beispielsweise mehrere Typen von Vorgängen ausgeben, beispielsweise eine reguläre Attributwertänderung in Quelltabellen 105, eine strukturelle Änderung der replizierten Quelltabellen oder Dienstprogrammaufrufe, die Quelltabellen 105 modifizieren.
  • Je nach dem Typ von Vorgang kann im Block 205 eine Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien ausgewählt werden. Die Aktualisierungsstrategie legt eine Folge von Replikationsvorgängen fest, die auszuführen sind, um in dem mindestens einen Protokollsatz beschriebene Änderungen auf das Zieldatenbanksystem 103 anzuwenden. Beispielsweise kann ein Abgleichen zwischen den Typen von Vorgängen und den Aktualisierungsstrategien bereitgestellt werden. Das Abgleichen kann zum automatischen Auswählen der Aktualisierungsstrategie verwendet werden.
  • 3 ist ein Ablaufplan eines Verfahrens zum Anwenden von in einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 3 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, jedoch ohne auf eine solche Implementierung beschränkt zu sein.
  • Die in dem mindestens einen Protokollsatz beschriebene (z.B. im Verfahren von 2 verarbeitete) Änderung kann im Block 301 gemäß der im Schritt 205 ausgewählten Aktualisierungsstrategie angewendet werden. Ein Fehler bei der Anwendung der Änderung kann im Block 303 erkannt werden. Beispielsweise kann das Datensynchronisationssystem 102 die Anwendung von Datenänderungen auf das Zieldatenbanksystem durch eine der implementierten Aktualisierungsstrategien beobachten und unerwartete Fehlerbedingungen erkennen, die ein Anwenden der replizierten Datenänderungen durch die ausgewählte Datenaktualisierungsstrategie verhindern. Als Reaktion auf das Erkennen kann im Block 305 eine sekundäre Aktualisierungsstrategie ausgewählt werden, und die Änderung kann im Block 307 auf der Grundlage der sekundären Aktualisierungsstrategie angewendet werden. Das Auswählen einer anderen Aktualisierungsstrategie als Fallback-Implementierung kann eine automatische Wiederherstellung nach diesen Laufzeitfehlern ohne Ausfallzeiten oder Benutzerinteraktion ermöglichen. Wenn beispielsweise eine inkrementelle Aktualisierungsstrategie beim Anwenden von Protokollsätzen fehlschlägt, die als REGULÄRER Vorgang klassifiziert wurden, wird das Auswahlmodul 121 mit einem Verweis auf die fehlgeschlagenen Protokollsätze ausgelöst. Das Auswahlmodul 121 wählt dann eine andere Implementierungstechnologie (und z.B. einen entsprechenden Anwendungsalgorithmus 108.1 oder 108.2), lädt die Implementierung und leitet Protokollsätze an die entsprechende Implementierung weiter. Das Auswahlmodul 121 kann so konfiguriert werden, dass es die Protokollsätze an einer Transaktionsgrenze, z.B. zu Beginn der Transaktion, weiterleitet. Auf diese Weise kann durch ein Zurücksetzen der fehlgeschlagenen Transaktion und ein Wiederholen mit einer anderen Technologie die Gesamtkonsistenz gewährleistet werden. Wenn das Abwickeln einer Transaktion über eine erste Strategie fehlschlägt, müssen die bisher ausgeführten Vorgänge möglicherweise rückgängig gemacht werden, und eine zweite Strategie kann verwendet werden, um alle Vorgänge erneut zu versuchen.
  • 4 ist ein Ablaufplan eines Verfahrens zum Anwenden von an einem Quelldatenbanksystem vorgenommenen Änderungen auf ein Zieldatenbanksystem gemäß einem Beispiel des vorliegenden Gegenstands. Zur Erläuterung kann das in 4 beschriebene Verfahren in dem in 1 veranschaulichten System implementiert werden, jedoch ohne auf diese Implementierung beschränkt zu sein. Das Verfahren von 4 kann zum Beispiel durch das Datensynchronisationssystem 102 ausgeführt werden.
  • Der Klassifikator 120 für Änderungen an Datensätzen kann im Block 401 auf der Grundlage einer Folge von einem oder mehreren Protokollsätzen für eine Tabelle entscheiden, zu welcher Klasse von vordefinierten Klassen die eingehenden Änderungen gehören. Zum Beispiel können die folgenden Klassen definiert werden: eine Klasse REGULÄR, die einen normalen Ablauf von Einfüge-, Aktualisierungs- und Löschvorgängen anzeigt, eine Klasse STRUKTURELLE_ÄNDERUNG, die eine strukturelle Änderung anzeigt (die strukturelle Änderung kann beispielsweise sichtbar sein, wenn Änderungen durch die Anweisung TABELLE ÄNDERN (ALTER TABLE) verursacht werden und die Änderungen festgeschrieben werden müssen), eine Klasse DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG, die anzeigt, dass eine Dienstprogrammaktion im Gange ist, und eine Klasse DIENSTPROGRAMMAKTION_BEENDET, die anzeigt, dass die Dienstprogrammaktion an der Tabelle beendet ist. Die Klassifizierung kann auf der Grundlage des Analyseergebnisses/der Zerlegung des jeweiligen Protokollsatzes vorgenommen werden.
  • Die Änderungskategorien werden im Block 403 vom Auswahlmodul 121 verwendet, um dynamisch zwischen den verfügbaren Datenreplikationsstrategien zu wechseln. Beispielsweise kann das Auswahlmodul 121 für jede Tabelle die Aktualisierungsstrategie auf der Grundlage der im Block 401 ermittelten Klasse auswählen. Wenn es sich um die Klasse REGULÄR handelt, kann die tatsächliche Auswahl auf der Grundlage von Leistungskennzahlen erfolgen. Wenn beispielsweise die Anzahl von regulären Vorgängen über einem Schwellenwert liegt, kann ein Massenladevorgang gewählt werden; andernfalls kann ein inkrementeller Ladevorgang verwendet werden. Im Falle einer Klassifizierung STRUKTURELLE_ÄNDERUNG wird sofort ein Massenladevorgang ausgelöst. Wenn DIENSTPROGRAMMAKTION_IN_AUSFÜHRUNG angezeigt wird, wird die Tabelle vorübergehend vom Synchronisierungsprozess ausgeschlossen. Folglich werden Änderungen nicht mehr aktiv übernommen. Wenn DIENSTPROGRAMMAKTlON_BEENDET angezeigt wird, wird ein Massenladevorgang ausgelöst. So kann das Auswahlmodul 121 eine Masselade-Strategie auswählen, wenn der Änderungsdatensatz eine Änderung codiert, die nicht inkrementell von Quelltabellen 105 auf Zieltabellen 113 angewendet werden kann, um die Momentaufnahme der Quelltabellen zu synchronisieren. Nach einem Synchronisieren der Tabellen mit einer Massenlade-Strategie kann das System wieder zu einer auf inkrementellen Ladevorgängen beruhenden Aktualisierungsstrategie wechseln, wobei der Zeitstempel der letzten festgeschriebenen Transaktion in der zuvor synchronisierten Momentaufnahme der Tabellen verwendet wird, um eine Verarbeitung wieder aufzunehmen.
  • 5 stellt ein Computersystem 600 dar, das zum Implementieren von mindestens einer oder mehreren Funktionen der oben in Bezug auf 1, 2, 3 und/oder 4 beschriebenen Verfahren geeignet ist.
  • Es ist klar, dass die hierin beschriebenen Verfahren zumindest teilweise nicht interaktiv sind und durch computergestützte Systeme wie etwa Server oder eingebettete Systeme automatisiert werden. In beispielhaften Ausführungsformen können die hierin beschriebenen Verfahren jedoch in einem (teilweise) interaktiven System implementiert werden. Diese Verfahren können außerdem in Software 612, 622 (einschließlich Firmware 622), Hardware (Prozessor) 605 oder einer Kombination aus diesen implementiert werden. In beispielhaften Ausführungsformen werden die hierin beschriebenen Verfahren in Software, als ein ausführbares Programm, implementiert und durch einen digitalen Spezial- oder Universal-Computer wie etwa einen Personal Computer, eine Arbeitsstation, einen Minicomputer oder einen Großrechner ausgeführt. Das System 600 umfasst einen Universal-Computer 601.
  • Wie in 5 gezeigt wird, umfasst der Computer 601 in beispielhaften Ausführungsformen in Bezug auf die Hardware-Architektur einen Prozessor 605, einen Speicher (Hauptspeicher) 610, der mit einer Speichersteuereinheit 615 verbunden ist, und ein oder mehrere Eingabe- und/oder Ausgabe- (E/A-) Einheiten (oder periphere Einheiten) 10, 645, die zum Datenaustausch über eine lokale Ein/Ausgabe-Steuereinheit 635 verbunden sind. Bei der Ein/Ausgabe-Steuereinheit 635 kann es sich um eine oder mehrere Busse oder andere verdrahtete oder drahtlose Verbindungen handeln, wie sie in der Technik bekannt sind, jedoch ohne auf diese beschränkt zu sein. Die Eingabe/Ausgabe-Steuereinheit 635 kann zusätzliche Elemente enthalten, der der Einfachheit halber hier weggelassen wurden, z.B. Steuereinheiten, Puffer (Caches), Treiber, Verstärker und Empfänger, um einen Austausch von Daten zu ermöglichen. Die lokale Schnittstelle kann darüber hinaus Adress-, Steuerungs- und/oder Datenverbindungen umfassen, um einen geeigneten Austausch von Daten zwischen den zuvor genannten Komponenten zu ermöglichen. Wie hierin beschrieben, können die E/A-Einheiten 10, 645 im Allgemeinen jedwede generalisierte Verschlüsselungskarte oder Chipkarte enthalten, wie sie in der Technik bekannt sind.
  • Der Prozessor 605 ist eine Hardware-Einheit zum Ausführen von Software, insbesondere der im Speicher 610 gespeicherten Software. Bei dem Prozessor 605 kann es sich um einen beliebigen kundenspezifischen oder handelsüblichen Prozessor, eine Zentraleinheit (CPU), einen Zusatzprozessor unter mehreren dem Computer 601 zugehörigen Prozessoren, einen Mikroprozessor auf Halbleiterbasis (in Form eines Mikrochips oder Chipsatzes) oder allgemein eine Einheit zum Ausführen von Software-Befehlen handeln.
  • Der Speicher 610 kann beliebige oder eine Kombination von flüchtigen Speicherelementen (z B. Direktzugriffsspeicher (RAM) beispielsweise DRAM, SRAM, SDRAM usw.)) und nichtflüchtigen Speicherelementen (z.B. ROM, löschbarer programmierbarer Festspeicher (EPROM), elektronisch löschbarer programmierbarer Festspeicher (EEPROM), programmierbarer Festspeicher (PROM)) umfassen. Es sei darauf hingewiesen, dass der Speicher 610 eine verteilte Architektur haben kann, bei der verschiedene Komponenten voneinander entfernt angeordnet sind, auf die der Prozessor 605 jedoch zugreifen kann.
  • Die Software im Speicher 610 kann ein oder mehrere separate Programme umfassen, von denen jedes eine geordnete Auflistung von ausführbaren Anweisungen zum Implementieren logischer Funktionen aufweist, insbesondere von Funktionen, die in hierin beschriebenen Ausführungsformen enthalten sind. Im Beispiel von 5 umfasst die Software im Speicher 610 Anweisungen 612, z.B. Anweisungen zum Verwalten von Datenbanken, beispielsweise ein Datenbankverwaltungssystem.
  • Die Software im Speicher 610 umfasst in der Regel auch ein geeignetes Betriebssystem (BS) 611. Das Betriebssystem 611 steuert im Wesentlichen die Ausführung anderer Computerprogramme, wie möglicherweise die Software 612 zum Implementieren der hierin beschriebenen Verfahren.
  • Die hierin beschriebenen Verfahren können in Form eines Quellprogramms 612, eines ausführbaren Programms 612 (Objektcode), eines Skripts oder einer anderen Einheit vorliegen, die einen Satz von auszuführenden Anweisungen 612 aufweist. Wenn es sich um ein Quellprogramm handelt, muss das Programm mit Hilfe eines Compilers, Assemblers, Interpreters oder dergleichen übersetzt werden, der im Speicher 610 enthalten sein kann, damit es in Verbindung mit dem Betriebssystem 611 ordnungsgemäß funktioniert. Darüber hinaus können die Verfahren in einer objektorientierten Programmiersprache mit Daten- und Verfahrensklassen oder in einer prozeduralen Programmiersprache mit Routinen, Subroutinen und/oder Funktionen geschrieben sein.
  • In beispielhaften Ausführungsformen können eine herkömmliche Tastatur 650 und eine Maus 655 mit der Ein/Ausgabe-Steuereinheit 635 verbunden sein. Zu anderen Ausgabeeinheiten wie etwa die E/A-Einheiten 645 können Eingabeeinheiten gehören, beispielsweise ein Drucker, ein Scanner, ein Mikrofon und dergleichen, jedoch ohne auf diese beschränkt zu sein. Schließlich können die E/A-Einheiten 10, 645 außerdem Einheiten umfassen, die sowohl Eingaben als auch Ausgaben übertragen, zum Beispiel eine Netzwerkschnittstellenkarte (NIC) oder ein Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), ein Hochfrequenz- (HF-) oder sonstiger Sender-Empfänger, eine Telefonschnittstelle, eine Brücke, ein Router und dergleichen. Bei den E/A-Einheiten 10, 645 kann es sich um eine beliebige allgemeine Verschlüsselungskarte oder Chipkarte handeln, die in der Technik bekannt ist. Das System 600 kann außerdem eine Anzeigesteuereinheit 625 umfassen, die mit einer Anzeige 630 verbunden ist. In beispielhaften Ausführungsformen kann das System 600 außerdem eine Netzwerkschnittstelle zum Verbinden mit einem Netzwerk 665 umfassen. Das Netzwerk 665 kann ein auf IP beruhendes Netzwerk zum Datenaustausch zwischen dem Computer 601 und einem beliebigen externen Server, Client und dergleichen über eine Breitbandverbindung sein. Das Netzwerk 665 überträgt und empfängt Daten zwischen dem Computer 601 und externen Systemen 30, die am Ausführen eines Teils oder aller Funktionen der hierin beschriebenen Verfahren beteiligt sein können. In beispielhaften Ausführungsformen kann das Netzwerk 665 ein verwaltetes IP-Netzwerk sein, das von einem Diensteanbieter verwaltet wird. Das Netzwerk 665 kann drahtlos implementiert werden, z.B. unter Verwenden von drahtlosen Protokollen und Technologien wie etwa WLAN, WiMax, usw. Beim Netzwerk 665 kann es sich auch ein paketvermitteltes Netzwerk handeln, beispielsweise ein lokales Netz, ein Weitverkehrsnetz, ein Großraumnetz, ein Internet-Netz oder eine andere ähnliche Art von Netzwerkumgebung. Das Netzwerk 665 kann ein festes drahtloses Netzwerk, ein drahtloses lokales Netz (WLAN), ein drahtloses Weitverkehrsnetz (WWAN), ein Kurzstreckennetzwerk (PAN), ein virtuelles privates Netzwerk (VPN), ein Intranet oder ein anderes geeignetes Netzwerksystem sein und umfasst Geräte zum Empfangen und Übertragen von Signalen.
  • Wenn es sich bei dem Computer 601 um einen PC, eine Arbeitsstation, eine intelligente Einheit oder dergleichen handelt, kann die Software im Speicher 610 außerdem ein Basic Input/Output System (BIOS) 622 umfassen. Das BIOS ist ein Satz wesentlicher Software-Routinen, die die Hardware beim Start initialisieren und testen, das Betriebssystem 611 starten und die Datenübertragung zwischen den Hardware-Einheiten unterstützen. Das BIOS ist im ROM gespeichert, so dass das BIOS ausgeführt werden kann, wenn der Computer 601 aktiviert wird.
  • Wenn der Computer 601 in Betrieb ist, ist der Prozessor 605 so konfiguriert, dass er die im Speicher 610 gespeicherte Software 612 ausführt, um Daten in den und aus dem Speicher 610 zu übertragen und allgemein Verarbeitungsvorgänge des Computers 601 gemäß der Software zu steuern. Die hierin beschriebenen Verfahren und das Betriebssystem 611 werden ganz oder teilweise vom Prozessor 605 gelesen, möglicherweise im Prozessor 605 zwischengespeichert und dann ausgeführt.
  • Wenn die hierin beschriebenen Systeme und Verfahren in Software 612 implementiert werden, wie in 5 gezeigt wird, können die Verfahren zum Verwenden durch ein oder in Verbindung mit einem computergestützten System oder Verfahren auf einem beliebigen durch einen Computer lesbaren Medium wie etwa dem Speicher 620 gespeichert werden. Der Speicher 620 kann einen Plattenspeicher wie etwa einen HDD-Speicher aufweisen.
  • Der vorliegende Gegenstand kann die folgenden Klauseln aufweisen
  • Klausel 1: Durch einen Computer implementiertes Verfahren zur Datensynchronisation in einem Datenanalysesystem, wobei das Verfahren aufweist
    Empfangen von mindestens einem Protokollsatz, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird;
    Ermitteln eines Typs von Vorgang, der im Quelldatenbanksystem ausgeführt wird, auf der Grundlage des Protokollsatzes; und
    Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um Änderungen, die in dem mindestens einen Protokollsatz beschrieben werden, auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
  • Klausel 2: Verfahren nach Klausel 1, wobei der mindestens eine Protokollsatz eine Folge von Protokollsätzen aufweist, die zu einer bestimmten Tabelle des Quelldatenbanksystems gehören, wobei ein Ermitteln des Typs von Vorgang auf der Folge beruht.
  • Klausel 3: Verfahren nach Klausel 1 oder 2, wobei das Ermitteln des Typs von Vorgang ein Vergleichen der Anzahl von in dem mindestens einen Protokollsatz angezeigten Vorgängen mit einem vordefinierten Schwellenwert und ein Ermitteln des Typs von Vorgang auf der Grundlage des Ergebnisses des Vergleichs aufweist.
  • Klausel 4: Verfahren nach einer der vorhergehenden Klauseln 1 bis 3, wobei das Verfahren ein Anwenden der in dem mindestens einen Protokollsatz beschriebenen Änderung gemäß der ausgewählten Aktualisierungsstrategie aufweist.
  • Klausel 5: Verfahren nach Klausel 4, wobei das Verfahren ein Erkennen aufweist, dass das Anwenden der Änderung fehlgeschlagen ist; als Reaktion auf das Erkennen Auswählen einer sekundären Aktualisierungsstrategie; und Anwenden der Änderung auf der Grundlage der sekundären Aktualisierungsstrategie.
  • Klausel 6: Verfahren nach einer der vorhergehenden Klauseln 1 bis 5, wobei der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur einer Tabelle und/oder eine im Quelldatenbanksystem ausgeführte Dienstprogrammaktion umfasst.
  • Klausel 7: Verfahren nach einer der vorhergehenden Klauseln 1 bis 6, wobei die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren eines Datensatzes, einen Massenladevorgang des Zieldatenbanksystems mit Daten, die aus dem Quelldatenbanksystem stammen, und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems verwendet.
  • The Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt mit jedem möglichen technischen Integrationsgrad handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zum Verwenden durch ein System zum Ausführen von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zum Speichern in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Ausführen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit in einem einzigen Schritt ausgeführt werden, der gleichzeitig, im Wesentlichen gleichzeitig, teilweise oder vollständig zeitlich überlappend erfolgt, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (15)

  1. Durch einen Computer implementiertes Verfahren zur Datensynchronisation in einem Datenanalysesystem, wobei das Verfahren aufweist: Empfangen von mindestens einem Protokollsatz, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird; Ermitteln eines Typs von Vorgang, der im Quelldatenbanksystem ausgeführt wird, auf der Grundlage des Protokollsatzes; und Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um Änderungen, die in dem mindestens einen Protokollsatz beschrieben werden, auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
  2. Verfahren nach Anspruch 1, wobei der mindestens eine Protokollsatz eine Folge von Protokollsätzen aufweist, die zu einer bestimmten Tabelle des Quelldatenbanksystems gehören, wobei ein Ermitteln des Typs von Vorgang auf der Folge beruht.
  3. Verfahren nach Anspruch 1, wobei das Ermitteln des Typs von Vorgang ein Vergleichen der Anzahl von in dem mindestens einen Protokollsatz angezeigten Vorgängen mit einem vordefinierten Schwellenwert und ein Ermitteln des Typs von Vorgang auf der Grundlage des Ergebnisses des Vergleichs aufweist.
  4. Verfahren nach Anspruch 1, wobei das Verfahren ein Anwenden der in dem mindestens einen Protokollsatz beschriebenen Änderung gemäß der ausgewählten Aktualisierungsstrategie aufweist.
  5. Verfahren nach Anspruch 4, wobei das Verfahren aufweist: Erkennen, dass das Anwenden der Änderung fehlgeschlagen ist; als Reaktion auf das Erkennen Auswählen einer sekundären Aktualisierungsstrategie; und Anwenden der Änderung auf der Grundlage der sekundären Aktualisierungsstrategie.
  6. Verfahren nach Anspruch 1, wobei der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur einer Tabelle und/oder eine im Quelldatenbanksystem ausgeführte Dienstprogrammaktion umfasst.
  7. Verfahren nach Anspruch 1, wobei die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren eines Datensatzes, einen Massenladevorgang des Zieldatenbanksystems mit Daten, die aus dem Quelldatenbanksystem stammen, und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems verwendet.
  8. Computerprogrammprodukt, das ein durch einen Computer lesbares Speichermedium mit einem darin enthaltenen durch einen Computer lesbaren Programmcode aufweist, wobei der durch einen Computer lesbare Programmcode so konfiguriert ist, dass er einen Prozessor veranlasst zum: Empfangen von mindestens einem Protokollsatz, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird; Ermitteln eines Typs von Vorgang, der im Quelldatenbanksystem ausgeführt wird, auf der Grundlage des Protokollsatzes; und Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um Änderungen, die in dem mindestens einen Protokollsatz beschrieben werden, auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
  9. Computerprogrammprodukt nach Anspruch 8, wobei der mindestens eine Protokollsatz eine Folge von Protokollsätzen aufweist, die zu einer bestimmten Tabelle des Quelldatenbanksystems gehören, wobei ein Ermitteln des Typs von Vorgang auf der Folge beruht.
  10. Computerprogrammprodukt nach Anspruch 8, wobei der durch einen Computer lesbare Programmcode so konfiguriert ist, dass er einen Prozessor veranlasst, den Typ des Vorgangs zu ermitteln, indem er die Anzahl von in dem mindestens einen Protokollsatz angezeigten Vorgängen mit einem vordefinierten Schwellenwert vergleicht und wobei auf der Grundlage des Ergebnisses des Vergleichs der Typ von Vorgang ermittelt wird.
  11. Computerprogrammprodukt nach Anspruch 8, wobei der durch einen Computer lesbare Programmcode außerdem so konfiguriert ist, dass er den Prozessor veranlasst, die in dem mindestens einen Protokollsatz beschriebene Änderung gemäß der ausgewählten Aktualisierungsstrategie anzuwenden.
  12. Computerprogrammprodukt nach Anspruch 11, wobei der durch einen Computer lesbare Programmcode außerdem so konfiguriert ist, dass er den Prozessor veranlasst zum: Erkennen, dass das Anwenden der Änderung fehlgeschlagen ist; als Reaktion auf das Erkennen Auswählen einer sekundären Aktualisierungsstrategie; und Anwenden der Änderung auf der Grundlage der sekundären Aktualisierungsstrategie.
  13. Computerprogrammprodukt nach Anspruch 8, wobei der Typ von Vorgang eine reguläre Änderung zum Hinzufügen, Löschen oder Aktualisieren von Datensätzen einer Tabelle, eine strukturelle Änderung zum Ändern der Struktur einer Tabelle und/oder eine im Quelldatenbanksystem ausgeführte Dienstprogrammaktion umfasst.
  14. Computerprogrammprodukt nach Anspruch 8, wobei die Aktualisierungsstrategie einen regulären Vorgang zum Hinzufügen, Löschen oder Aktualisieren eines Datensatzes, einen Massenladevorgang des Zieldatenbanksystems mit Daten, die aus dem Quelldatenbanksystem stammen, und/oder einen Aussetzungsvorgang zum Aussetzen von Modifikationen einer bestimmten Tabelle des Zieldatenbanksystems verwendet.
  15. Computersystem, das aufweist: einen Speicher, der zum Speichern von ausführbaren Anweisungen konfiguriert ist; und einen Prozessor, der zum Datenaustausch mit dem Speicher verbunden ist und so konfiguriert ist, dass er die ausführbaren Anweisungen ausführt zum: Empfangen von mindestens einem Protokollsatz, wobei der Protokollsatz einen Vorgang beschreibt, der in einem Quelldatenbanksystem des Datenanalysesystems ausgeführt wird; Ermitteln eines Typs von Vorgang, der im Quelldatenbanksystem ausgeführt wird, auf der Grundlage des Protokollsatzes; und Auswählen einer Aktualisierungsstrategie aus einem Satz von vordefinierten Aktualisierungsstrategien auf der Grundlage des Typs von Vorgang, wobei die Aktualisierungsstrategie eine Folge von Replikationsvorgängen angibt, die auszuführen sind, um Änderungen, die in dem mindestens einen Protokollsatz beschrieben werden, auf ein Zieldatenbanksystem des Datenanalysesystems anzuwenden.
DE102021125630.5A 2020-11-13 2021-10-04 Datensynchronisation in einem datenanalysesystem Pending DE102021125630A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/097,848 2020-11-13
US17/097,848 US11704335B2 (en) 2020-11-13 2020-11-13 Data synchronization in a data analysis system

Publications (1)

Publication Number Publication Date
DE102021125630A1 true DE102021125630A1 (de) 2022-05-19

Family

ID=78806170

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021125630.5A Pending DE102021125630A1 (de) 2020-11-13 2021-10-04 Datensynchronisation in einem datenanalysesystem

Country Status (5)

Country Link
US (1) US11704335B2 (de)
JP (1) JP2022078978A (de)
CN (1) CN114490677A (de)
DE (1) DE102021125630A1 (de)
GB (1) GB2602544A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704335B2 (en) 2020-11-13 2023-07-18 International Business Machines Corporation Data synchronization in a data analysis system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11675809B2 (en) * 2021-03-02 2023-06-13 International Business Machines Corporation Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices
CN116233871B (zh) * 2023-01-17 2023-12-15 广州爱浦路网络技术有限公司 一种xr服务增强方法、计算机装置和存储介质
CN117093597B (zh) * 2023-10-16 2024-01-23 恒生电子股份有限公司 数据处理方法及装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029178A (en) 1998-03-18 2000-02-22 Bmc Software Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data
US8688634B2 (en) 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7613739B2 (en) * 2005-11-17 2009-11-03 Research In Motion Limited Method and apparatus for synchronizing databases connected by wireless interface
US7895151B2 (en) 2008-06-23 2011-02-22 Teradata Us, Inc. Fast bulk loading and incremental loading of data into a database
US8996458B2 (en) * 2009-12-23 2015-03-31 Sybase, Inc. High volume, high speed adaptive data replication
US8510270B2 (en) 2010-07-27 2013-08-13 Oracle International Corporation MYSQL database heterogeneous log based replication
US8527478B1 (en) 2010-12-20 2013-09-03 Google Inc. Handling bulk and incremental updates while maintaining consistency
US9158803B2 (en) 2010-12-20 2015-10-13 Google Inc. Incremental schema consistency validation on geographic features
US9672126B2 (en) 2011-12-15 2017-06-06 Sybase, Inc. Hybrid data replication
US9659077B2 (en) 2012-06-18 2017-05-23 Actifio, Inc. System and method for efficient database record replication using different replication strategies based on the database records
US10114849B2 (en) 2013-02-20 2018-10-30 Quick Eye Technologies Inc. Managing changes to information
US9819636B2 (en) 2013-06-10 2017-11-14 NextPlane, Inc. User directory system for a hub-based system federating disparate unified communications systems
GB2524540A (en) 2014-03-26 2015-09-30 Ibm Replication of a relational database
US10706073B1 (en) 2014-12-03 2020-07-07 Amazon Technologies, Inc. Partitioned batch processing for a usage analysis system
US10078556B2 (en) * 2015-08-31 2018-09-18 Paypal, Inc. Data replication between databases with heterogenious data platforms
CN106294713A (zh) 2016-08-09 2017-01-04 深圳中兴网信科技有限公司 基于增量日志解析的数据同步方法和数据同步装置
US10540346B2 (en) 2017-08-31 2020-01-21 International Business Machines Corporation Offloading constraint enforcement in a hybrid DBMS
US10754844B1 (en) 2017-09-27 2020-08-25 Amazon Technologies, Inc. Efficient database snapshot generation
US10698883B2 (en) 2017-10-25 2020-06-30 International Business Machines Corporation Data coherency between trusted DBMS and untrusted DBMS
US10540356B2 (en) 2017-10-25 2020-01-21 International Business Machines Corporation Transparent analytical query accelerator over encrypted data
US10929428B1 (en) * 2017-11-22 2021-02-23 Amazon Technologies, Inc. Adaptive database replication for database copies
GB201812375D0 (en) 2018-07-30 2018-09-12 Ibm Updating a table using incremental and batch updates
US11397718B2 (en) 2020-09-09 2022-07-26 International Business Machines Corporation Dynamic selection of synchronization update path
US11704335B2 (en) 2020-11-13 2023-07-18 International Business Machines Corporation Data synchronization in a data analysis system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704335B2 (en) 2020-11-13 2023-07-18 International Business Machines Corporation Data synchronization in a data analysis system

Also Published As

Publication number Publication date
GB202115084D0 (en) 2021-12-08
GB2602544A (en) 2022-07-06
CN114490677A (zh) 2022-05-13
GB2602544A8 (en) 2022-07-20
US11704335B2 (en) 2023-07-18
US20220156277A1 (en) 2022-05-19
JP2022078978A (ja) 2022-05-25

Similar Documents

Publication Publication Date Title
DE102021125630A1 (de) Datensynchronisation in einem datenanalysesystem
DE69119222T2 (de) Datensicherung und Beseitigung in einem Datenverarbeitungssystem
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE112020000749T5 (de) Indexerstellung für sich entwickelnde umfangreiche Datensätze in Hybriden Transaktions- und Analysenverarbeitungssystemen mit mehreren Mastern
DE69126066T2 (de) Verfahren und Gerät zur Optimierung des Logbuchaufhebungsgebrauchs
DE112010004947B4 (de) Wiederherstellung einer vollständigen Systemsicherung und inkrementeller Sicherungen unter Verwendung von mehreren gleichzeitigen Datenströmen von Einheiten
DE68927142T2 (de) Verriegelungs- und Lese-Minimierung in einem segmentierten Speicherraum
DE202019005484U1 (de) Inkrementale Merkmalsentwicklung und Arbeitsbelastungserfassung in Datenbanksystemen
DE602005004166T2 (de) Vorrichtung, system und verfahren zur reinitialisierung einer serialisierung von dateisystemen
DE69932465T2 (de) Dateidistributionssystem und dessen Verfahren
DE112012000693B4 (de) Ausführen einer Vielzahl von Instanzen einer Anwendung
DE102013215009A1 (de) Verfahren und System zur Optimierung der Datenübertragung
DE202009019149U1 (de) Asynchron verteilte Speicherbereinigung für replizierte Speichercluster
DE202013012496U1 (de) Systeme für asynchrone Schemaänderungen
DE202010018481U1 (de) Asynchroner verteilter Objekt-Upload für replizierte Assoziativspeichercluster
DE102016103769A1 (de) Inkrementelle Replikation eines Quellen-Datasets
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
DE202014010953U1 (de) Gruppierung von Objekten in einem verteilten Datenspeichersystem basierend auf Protokollen und Platzierungsrichtlinien
DE112011101793T5 (de) Gemeinsame Datennutzung bei Dateiklonen
DE112019000143T5 (de) Versionierungsvalidierung für die datenübertragung zwischen heterogenen datenspeichern
DE102014116369A1 (de) Verwaltung von sprachmarkern bei internationaler datenspeicherung
DE602004007925T2 (de) Verwalten einer beziehung zwischen einem zielvolumen und einem quellenvolumen
DE102016204710A1 (de) Sichern und Wiederherstellen von Klondaten
DE112015000222T5 (de) Zusammenführen von mehreren Zeitpunktkopien zu einer zusammengeführten Zeitpunktkopie
DE112005003668T5 (de) HSM-Steuerprogramm, HSM-Steuervorrichtung und HSM-Steuerverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence