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

Inkrementelle Datenmaskierung und -zuordnung:Änderungen erkennen und aktualisieren…

Inkrementelle Datenreplikation, Maskierung, Integration (ETL) und andere Datenaktualisierungsvorgänge sind in häufig aktualisierten Datenbankumgebungen üblich. Diese Jobs erfordern die Erkennung von Ergänzungen und Aktualisierungen von Tabellen. Solche dynamischen Vorgänge lassen sich in IRI Voracity-Workflows, die in IRI Workbench (WB) entworfen und ausgeführt werden, leicht automatisieren.

Dieser Artikel enthält ein Workflow-Beispiel, das Benutzer der Voracity-, FieldShield-, CoSort- oder NextForm-DBMS-Edition implementieren können, um regelmäßig nach Änderungen in einer Quelltabelle (in diesem Fall Oracle) zu suchen und zu entscheiden, wann Daten in ein neues Ziel (MySQL) verschoben werden sollen. Es zeigt auch, wie Daten im Rahmen dieses Prozesses bedingt maskiert werden können. Beachten Sie, dass IRI auch an einem protokollbasierten Ansatz arbeitet, um Daten in Echtzeit zu inkrementieren, ohne dass Delta-Spaltenwerte erforderlich sind.

Änderungen können mithilfe einer Task-geplanten Stapeldatei oder eines Shell-Skripts in verschiedene Datenbanken oder Dateien geladen werden. Dies kann mithilfe eines Zeitstempels und bestimmter Felder in der Quelltabelle erfolgen. Die Fehlerprüfung ist ebenfalls enthalten und kann ebenfalls bearbeitet werden.

Dieses Beispiel wurde auf einem Windows-Computer erstellt und ausgeführt. Es kann leicht modifiziert werden, um auf einer Linux- oder Unix-Plattform zu funktionieren.

Das Erstellen der Batch-Datei ist mit einem Voracity-Flussdiagramm in WB einfach. In diesem Beispiel enthält die Quelltabelle Spalten mit dem Namen CREATED_DATE und UPDATED_DATE die in diesem Job wichtig sind.

Das folgende Bild zeigt die Schritte, die in der Batchdatei enthalten sind. Zusammenfassend:

  • der Job wird in einem bestimmten Verzeichnis ausgeführt
  • Eine Umgebungsvariable wird unter Verwendung des Zeitstempels der letzten Jobausführung gesetzt
  • der aktuelle Zeitstempel wird aufgezeichnet
  • Aktuelle Änderungen werden erfasst
  • Die Fehlerstufe wird überprüft und bei Erfolg oder Misserfolg wird darauf reagiert
  • der aktuelle Zeitstempel überschreibt den Zeitstempel der letzten Ausführung
  • Eine Regel zum Schwärzen von E-Mails, die auf „edu“ enden, wird im Ziel verwendet
  • Im Ziel wird eine Regel zum teilweisen Schwärzen des SSN-Felds verwendet
  • die geänderten Daten werden in MySQL geladen
  • Die Fehlerebene wird überprüft, die temporäre Zeitstempeldatei wird umbenannt

Jeder Aufgabenblock im Workflow wird unten erklärt. Die beiden violetten Blöcke sind Transformationszuordnungsblöcke und stellen CoSort SortCL-Auftragsskripts dar. Die Mapping-Diagramme und Job-Skripte, die von jedem der Blöcke dargestellt werden, sind unten zur Verdeutlichung gezeigt. Eine Anleitung zum Erstellen von Voracity-Workflows aus der Palette finden Sie in diesem Artikel.

Verzeichnis wechseln

Dieser Block ändert das aktuelle Arbeitsverzeichnis in das angegebene.

LASTTIME einstellen

Dieser Befehlszeilenblock setzt eine Umgebungsvariable namens LASTTIME . Der für die Variable festgelegte Wert ist der Inhalt der Datei LastTime.txt . Der Zeitstempel in dieser Datei ist der Zeitstempel, der während der letzten Ausführung dieses Jobs aufgezeichnet wurde. Wenn dies die erste Ausführung ist, muss diese Datei manuell mit einem beliebigen Zeitstempel erstellt werden, der vor der Ausführung dieses Jobs datiert ist.

Diese Datei enthält eine Zeile:„2008-09-10 09:39:23.5“

Zeitstempel.scl

Diese Aufgabe verwendet das SortCL-Programm, um die Quelldatenbank nach der aktuellen Zeit abzufragen. Dieser Zeitstempel wird in einer Datei namens LastTimeTemp.txt gespeichert . Der Grund, warum es in einer temporären Datei gespeichert wird, ist, dass sowohl der aktuelle als auch der letzte Zeitstempel beibehalten werden können, bis eine Fehlerprüfung erfolgt.

Es ist wichtig, dass der Zeitstempel aus der Datenbank stammt und nicht vom lokalen Computer. Dadurch werden Probleme vermieden, bei denen die Datenbank und die Ausführungsumgebung nicht synchronisiert sind.

Das Zuordnungsdiagramm und das serialisierte Skript für diesen Job lauten wie folgt:

Änderungen.scl

Dieser Job erledigt die Hauptextraktion, Transformation und das Laden. Die Eingabe ist die Quelltabelle in Oracle und die Ausgabe ist eine ähnlich formatierte Tabelle in MySQL:

Im Eingabebereich , eine Abfrage wird an die Quelltabelle für alle Datensätze gesendet, die ein CREATED_DATE haben oder UPDATED_DATE größer als die Umgebungsvariable LASTTIME . Die Abfrage lautet „SELECT * FROM SCOTT.CLIENT WHERE CREATED> TO_TIMESTAMP(\'$LASTTIME\', \'YYYY-MM-DD HH24:MI:SS.FF1\') OR (UPDATED> TO_TIMESTAMP(\'$LASTTIME\ ', \'JJJJ-MM-TT HH24:MI:SS.FF1\'))“.

Zusätzlich wird eine Bedingung hinzugefügt, um die EMAIL zu prüfen Spalte für Daten, die auf „edu“ enden. Dies wird in einer bedingten Datenmaskierungsfunktion in der Ausgabe verwendet. In der Ausgabe ein If-Then-Else -Anweisung wird der EMAIL hinzugefügt Säule. Es verwendet die zuvor erstellte Bedingung, um die Daten zu testen. Wenn die Daten auf „edu“ enden, wird die E-Mail-Adresse unkenntlich gemacht. Wenn nicht, wird die E-Mail-Adresse aus input.

kopiert

Eine zweite Schwärzungsfunktion wird im SSN verwendet Säule. Es schwärzt die ersten drei Zeichen, lässt den Bindestrich, schwärzt die nächsten zwei Zeichen, lässt den Bindestrich und lässt die letzten vier Zeichen. Zum Beispiel ***-**-6789.

Nachfolgend finden Sie das oben beschriebene serialisierte SortCL-Jobskript, damit Sie die Abfrage und die bedingte Syntax untersuchen können, die an den inkrementellen Deltas beteiligt sind:

Fehler CoSortierung

Der Entscheidungsblock prüft die Variable ERRORLEVEL um sicherzustellen, dass es 0 (für Erfolg) zurückgibt, nachdem der obige SortCL-Job ausgeführt wurde. Ist dies nicht der Fall, wird der Job bis zum ENDE fortgesetzt Block, wo der Job beendet wird. Wenn es wahr zurückgibt, fährt der Job mit dem nächsten Block fort.

LastTimeTemp umbenennen

Dieser Befehlsblock kopiert den Inhalt von LastTimeTemp.txt zu LastTime.txt . Dadurch wird der zuvor erfasste aktuelle Zeitstempel in der Datei aufgezeichnet, der für die nächste Jobausführung verwendet werden soll.

Stapeldatei

Die Stapeldatei und die Transformationsskripte werden erstellt, wenn das Flussdiagramm (oben gezeigt) exportiert wird. Eine Kopie der Batch-Datei ist unten. Jeder Block fügt der Batch-Datei ausführbare Zeilen hinzu.

Aufgabenplaner

Mithilfe des Windows-Taskplaners kann diese Stapeldatei wiederholt ausgeführt werden, um die Änderungen in der Quelldatenbank zu erfassen.

Schlussfolgerung

Mit ein wenig Planung und der Verwendung von Befehlsblöcken können Änderungen an einer Datenbanktabelle mithilfe einer Stapeldatei automatisch erkannt und dann für die Ausführung in ausgewählten Intervallen geplant werden, sodass Sie geänderte Daten verschieben, abbilden, maskieren und anderweitig bearbeiten können inkrementelle Basis.

Wenden Sie sich für weitere Informationen oder Hilfe bei Ihrem Anwendungsfall an [email protected] oder Ihren IRI-Vertreter.