Database
 sql >> Datenbank >  >> RDS >> Database

Inkrementelle Datenreplikation in IRI Workbench

Unser erster Artikel zur Datenreplikation in der IRI Workbench-GUI für NextForm (DB-Edition) oder Voracity zeigte, wie Daten kopiert und transformiert werden, wenn sie von Oracle auf zwei Ziele verschoben werden. Dieser Artikel zeigt, wie Sie eine Produktions- und Sicherungstabelle in separaten Datenbanken inkrementell synchronisieren.

In diesem Fall ist die Produktionsdatenbank Oracle, die Backup-Datenbank MySQL und die Tabelle heißt in beiden Fällen SG_TRANSACTIONS. Es gibt Transaktionszeilen, die die Kontonummer, die Art der Transaktion, das Transaktionsdatum und den Transaktionsbetrag mit den Spaltennamen ACCT_NUM, TRANSTYPE, TRANS_DATE und TRANS_AMOUNT enthalten.

Beachten Sie, dass Sie Tabellen auch erstellen können, indem Sie Anweisungen in SQL-Dateien innerhalb von IRI Workbench definieren und ausführen.

Führen Sie den Assistenten aus

Es gibt Assistenten in IRI Workbench, die verwendet werden können, um ein Migrationsjobskript zu erstellen, das die Zeilen von einer Tabelle in eine andere kopiert. In diesem Fall replizieren wir die Daten aus der ORACLE-Tabelle SG_TRANSACTIONS in die MySQL-Tabelle SG_TRANSACTIONS.

Ich habe zuvor das Projekt Replikation erstellt. Wir sollten auf diesen Ordner im Projekt-Explorer klicken , um das Projekt zu markieren, bevor der Assistent ausgeführt wird. Dadurch wird sichergestellt, dass der Assistent mein Auftragsskript in diesem Ordner speichert. Unser Replikationsjob wird über einen Assistenten erstellt, der im NextForm-Menü verfügbar ist in der Symbolleiste.

Um den Assistenten auszuführen, klicken Sie auf den Pfeil neben dem NextForm-Symbol. Beachten Sie, dass wir im vorherigen Artikel den Neuen Reformat-Job verwendet haben Wizard, da eines der Ziele gefiltert, maskiert und neu formatiert wurde. Da es sich in diesem Fall um eine direkte Replikation handelt, verwenden wir den Neuen Einzelquellen-Migrationsjob stattdessen Assistent.

Auf dem ersten Bildschirm des Assistenten namens Auftragsspezifikationsdatei , vergewissern Sie sich, dass der Ordner Feld hat Replikation als Wert (Projektname). Im Dateinamen Geben Sie in das Feld den Namen des Jobskripts ein, das wir erstellen; Ich habe es SG_Transaction_Transfer. genannt Wählen Sie Skript erstellen aus Optionsfeld und wählen Sie dann Weiter um zur Single-Source-Migration zu gelangen Fenster.

Unter Quelleninformationen , wählen Sie Durchsuchen neben der Quelle Feld. Wählen Sie nun ODBC aus Optionsfeld in der Datenquelle Fenster und klicken Sie auf Durchsuchen Schaltfläche.

In der ODBC-Tabellenauswahl Wählen Sie im Fenster DSN aus aus der Dropdown-Liste; Wählen Sie dann den Tabellennamen aus und klicken Sie auf OK . ODBC wird verwendet, um eine Verbindung zu unseren Quell- und Zieldatenbanktabellen herzustellen, wenn Daten mithilfe unserer Jobskripts verschoben werden. Klicken Sie auf OK erneut, um zur Single Source Migration zurückzukehren Fenster.


Durchsuchen oder entdecken Sie Ihre Quellmetadaten

Alle IRI-Programme erfordern Metadaten-Layouts für Ihre Datenquellen und -ziele in einem Standard-Datendefinitionsdateiformat (DDF). Diese Layouts werden normalerweise einmal erstellt, zentral gespeichert und als Referenz für Ihre Mappings und Modelle verwendet.

Wenn bereits eine Metadatendatei erstellt wurde, dann unter Quelleninformationen , klicken Sie auf Durchsuchen neben den Metadaten Feld. In den Metadaten öffnen Wählen Sie im Fenster Übereinstimmende Elemente die Metadatendatei aus Feld, das die Spalten in SG_TRANSACTIONS definiert Tisch. Klicken Sie dann auf OK um zur Single-Source-Migration zurückzukehren Fenster.

Wenn Sie die Metadatendatei jetzt erstellen müssen, wählen Sie Entdecken Taste. Sie gelangen zum Setup Optionen Fenster. Vergewissern Sie sich, dass der Ordner /Ihr Projektname ist /Metadaten. Im Dateinamen geben Sie den Namen für die Metadatendatei ein und klicken Sie auf Weiter . In der Datenquellenidentifikation Überprüfen Sie, ob die Felder korrekt ausgefüllt sind, und klicken Sie auf Weiter , um zum Felddaten-Viewer und -Editor zu wechseln Fenster.

Die obere Hälfte des Fensters enthält die Spaltennamen und ein Beispiel der Datensätze in der Tabelle, falls vorhanden. Die untere Hälfte enthält das Feld Name im Jobskript zu verwenden, die entsprechenden Daten von IRI Type für den Quelltyp der ursprünglichen Datenbank , und die ordinale Position des Feldes (Spalte). Klicken Sie auf Fertig stellen .


Sie befinden sich jetzt wieder in der Single-Source-Migration Fenster.

Ziel definieren

Unter Zielinformationen , wählen Sie Durchsuchen Schaltfläche neben dem Feld für Ziel . Jetzt im Datenziel Wählen Sie im Fenster ODBC aus Optionsfeld und klicken Sie auf Durchsuchen Schaltfläche neben ODBC Feld. Wählen Sie dann den Ausgang DSN aus und Tabellenname (Twister MYSQL und SG_Transactions) in der ODBC-Tabellenauswahl Fenster. Aktivieren Sie unbedingt das Kontrollkästchen Metadaten aus Quelle kopieren . Klicken Sie auf OK und klicken Sie auf OK nochmal.

Alle notwendigen Informationen befinden sich nun in der Single Source Migration Fenster. Klicken Sie auf Fertig stellen .


Das NextForm-Steuersprachenskript SG_Transaction_Transfer.ncl erstellt und kann im farbcodierten, syntaxbewussten Texteditor der IRI Workbench angezeigt werden.

Replizieren Sie die neuen Datensätze

Dieses Skript kopiert alle Zeilen, die in SG_TRANSACTIONS vorhanden sind Tabelle in Oracle in die gleichnamige Tabelle in MySQL. Aber nach der ersten Ausführung wollen wir nur neue Zeilen in die Sicherungstabelle kopieren. Dazu müssen wir dem Eingabeabschnitt des Jobskripts eine /QUERY-Anweisung hinzufügen, damit nur die neuesten Zeilen verarbeitet werden, wenn Sie den Job ausführen (ad hoc oder geplant).

Um das Skript vom IRI Workbench-Editor aus zu ändern, klicken Sie mit der rechten Maustaste in den Hauptteil des Skripts. Wählen Sie IRI aus , dann Quellen bearbeiten . In den Datenquellen Dialogfenster wählen Sie Quelloptionen bearbeiten .

Unten in den Quellenoptionen Fenster ist eine Abfrage Feld. Hier fügen wir die SQL-Abfrageanweisung hinzu, die nur die neuesten Zeilen aus der Oracle-Tabelle auswählt. Wir gehen davon aus, dass es sich um einen Monatsendprozess handelt. Die folgende QUERY-Anweisung filtert Zeilen für ein einmonatiges Intervall, aber wir könnten ein beliebiges Intervall auswählen. Anstatt bestimmte Daten im Skript zu verwenden, könnten wir auch Umgebungsvariablen verwenden, um das Intervall anzugeben.

select * from NIGHTLY.SG_TRANSACTIONS where to_char(TRANS_DATE, 'YYYY-MM-DD') > 
'2016-11-30' AND  (to_char(TRANS_DATE, 'YYYY-MM-DD') < '2017-01-01')"

Klicken Sie nun auf OK , dann Fertig stellen um unser ursprüngliches vom Assistenten erstelltes Jobskript mit der neuen /QUERY-Anweisung darin zu aktualisieren und zu speichern:

Wenn das Skript zum ersten Mal ausgeführt wird, sollte die /QUERY-Anweisung auskommentiert werden, da alle Datensätze kopiert werden sollen. Danach wollen wir mit der /QUERY-Anweisung Zeilen aus einem Datumsintervall replizieren, das noch nicht in die Sicherungstabelle kopiert wurde.

Dieser Job kann über die GUI oder die Befehlszeile ausgeführt werden, wenn eine ausführbare Datei von NextForm DB Edition, Voracity oder CoSort (sortcl) lizenziert ist.

Hier ist ein Beispiel für Zeilen in der Produktionstabelle:

Und hier ist ein Beispiel für Zeilen in der Sicherungstabelle vor der Ausführung der Sicherung zum Monatsende im Dezember. Die Zeilen in dieser Tabelle gehen also derzeit nur bis Ende November.

Nachdem Sie unseren Replikationsjob mit der darin enthaltenen /QUERY-Anweisung ausgeführt haben, werden nur die Dezember-Datensätze zur Sicherungstabelle hinzugefügt. Beachten Sie, dass es einen Januar-Datensatz in der Produktionstabelle gibt, aber dieser Datensatz wurde nicht in die Sicherungstabelle kopiert, da der Datumswert für diese Zeile außerhalb unseres angegebenen Bereichs liegt.

Es ist auch möglich, jedem Ziel Maskierungsfunktionen auf Spaltenebene hinzuzufügen, wie der folgende Job zeigt:

Sehen Sie sich dieses Beispiel für die Replikation zwischen Oracle und MongoDB an. Wenn Sie Hilfe beim einmaligen oder wiederkehrenden Replizieren von Daten benötigen, senden Sie eine E-Mail an [email protected].