Datenbankabbildung mit Fehlerbehandlung für Datenbankoperationen
Wichtige Geschäftsprozesse sind von zuverlässigen Daten abhängig, und Datenbankadministratoren sowie andere Datenanalysten möchten sicherstellen, dass die Integrität der in Datenbanktabellen gespeicherten Informationen gewährleistet ist. Während automatisierter ETL-Prozessen (Extrahieren, Transformieren, Laden) oder anderen Datenbank-Importaufgaben können ungültige Daten auftreten, die den Erfolg des Vorgangs gefährden. Altova MapForce bietet eine Fehlerbehandlung für Datenbanken, um bei einem Fehler die betroffenen Daten rückgängig zu machen und optional mit dem Rest der Datenbankzuordnung fortzufahren.
Beispielsweise muss ein Fehler in einem einzelnen Datensatz nicht die Fortsetzung einer Datenübertragung verhindern. Dies kann beispielsweise der Fall sein, wenn bestimmte Datenbankbeschränkungen die Übertragung ungültiger Daten verhindern.

Die Aktivierung der Fehlerbehandlung für Datenbankoperationen umfasst alle Änderungen an den Datenbankkomponenten innerhalb von Transaktionen, die im Fehlerfall rückgängig gemacht werden können. Benutzer können wählen, ob sie mit dem Rest der Verarbeitung fortfahren oder die weitere Ausführung stoppen möchten. Transaktionen können auf der Ebene der Datenbankkomponente, auf Tabellenebene oder für gespeicherte Prozeduren aktiviert werden.
Die Fehlerbehandlung kann sogar mit der Protokollierung der Datenbankausgabe (Tracing) kombiniert werden, um eine Aufzeichnung der während der automatisierten Verarbeitung auftretenden Fehler zu erstellen.
Schauen wir uns an, wie es funktioniert.
Der Ordner "MapForce Beispiele" enthält eine Datenbankzuordnung und eine SQLite-Datenbank, die die Transaktionsverarbeitung und das Rollback veranschaulichen. Diese Funktionen werden selbstverständlich für alle gängigen relationalen Datenbanken unterstützt, und zwar für typische Aufgaben wie die Konvertierung von PostgreSQL nach SQLite, die Zuordnung von XML zu Microsoft SQL Server, die Umwandlung von JSON nach Access und ähnliches.

Diese Zuordnung kopiert Daten von zwei Datenbanktabellen in neue Tabellen mit einer ähnlichen Struktur, mit einer wichtigen Ausnahme. In der Tabelle "new_addresses" der Zieldatenbank dürfen die Felder "is_shipping" und "is_billing" keine Null-Werte enthalten, während sie in der Tabelle "addresses" der Quelldatenbank Null-Werte zulassen. Das bedeutet, dass während der Ausführung der Zuordnung Fehler auftreten, wenn fehlende Werte gefunden werden.
Wir werden drei Szenarien betrachten, in denen wir verschiedene Optionen zur Fehlerbehandlung in Datenbanken nutzen, um Fehler auf unterschiedliche Weise zu verarbeiten
Bei einem ersten Fehler alle Änderungen rückgängig machen und die Ausführung des Mapping-Prozesses stoppen
Rollen Sie nur die Transaktion mit dem Fehler zurück und setzen Sie fort
Die letzte Transaktion rückgängig machen und fortfahren
Alle Änderungen rückgängig machen
In der ersten Situation möchten wir die Fehlerbehandlung der Datenbank nutzen, um sicherzustellen, dass die Zieldatenbank vollständig unverändert bleibt, falls während der Ausführung der Zuordnung ein Fehler auftritt. Um diese Option zu implementieren, können wir den Eigenschaften-Dialog für das Ziel-Datenbank-Komponente öffnen und die Transaktionsverarbeitung aktivieren:

Wir können nun die Zuordnung durchführen, indem wir auf die Schaltfläche "Ausgabe" am unteren Rand des Zuordnungsbereichs klicken, um das SQL-Ausführungsskript zu generieren. Anschließend wählen wir im Ausgabemenü oberhalb des Skriptfensters die Option "SQL-Skript ausführen"

Wenn während der Ausführung der erste Fehler auftritt, wird ein Dialogfenster angezeigt, das es uns ermöglicht, die zuvor ausgewählten Transaktionseinstellungen zu bestätigen oder zu überschreiben

Wir klicken einfach auf "OK", um unsere ursprünglichen Einstellungen zu bestätigen. Die Ausführung der Zuordnung wird gestoppt, und das Nachrichtenfenster beschreibt den Fehler:

Wir können das integrierte MapForce DB Query-Fenster verwenden, um die Tabellen "new_users" und "new_addresses" anzuzeigen und zu überprüfen. Wir erwarten, dass beide Tabellen leer sind:

Dies bestätigt, dass alle Daten, die vor dem Auftreten des Fehlers eingegeben wurden, rückgängig gemacht wurden, d.h. aus der Datenbank entfernt wurden.
Während der automatisierten Ausführung unter der Steuerung von MapForce Server werden die Einstellungen für die Komponenten-Transaktionen ohne Unterbrechung verwendet.
Eine Transaktion rückgängig machen und fortfahren
Stellen Sie sich einen Fall vor, in dem eine sehr große Datei mit externen Daten in eine Datenbank importiert werden muss, beispielsweise zehntausende Datensätze oder mehr. Wir gehen davon aus, dass die externe Datei korrekt ist, aber falls einige Datensätze fehlerhafte Daten enthalten, möchten wir alle korrekten Datensätze importieren und die Fehler dokumentieren. Dies ist eine Situation der Fehlerbehandlung in der Datenbank (Situation 2 aus der obigen Liste), kombiniert mit der Datenbankprotokollierung, die in einem früheren Beitrag beschrieben wurde.
Um diese Option zur Fehlerbehandlung für die Datenbank für die Tabelle "new_addresses" zu aktivieren, klicken wir auf die Schaltfläche "Tabellenaktionen" und wählen folgende Eigenschaften aus:

Jetzt können wir ein neues SQL-Skript generieren und es mit dem gleichen Befehl "SQL-Skript ausführen" ausführen, wie oben gezeigt. Das Nachrichtenfenster wird mehrere Fehler protokollieren. Wir können die SQL-Abfrage im Fenster "Datenbankabfrage" erneut ausführen, um die Daten anzuzeigen, die erfolgreich zugeordnet wurden:

Zusätzlich haben wir eine XML-Protokolldatei erstellt. Das Bild unten zeigt eine Teilansicht dieser Datei in XMLSpy XML-Editor Fenster für einen Fehler, hervorgehoben in Zeile 54:

Eine Protokolldatei wie diese erleichtert es, selbst unter zehntausenden Datensätzen einige fehlerhafte Einträge zu finden und zu korrigieren!
Transaktion rückgängig machen und fortfahren
Die Datenbank-Fehlerbehandlungssituation 3 erfüllt diese geschäftliche Anforderung: Wenn das Einfügen einer Adresse fehlschlägt, darf auch der zugehörige Benutzereintrag nicht eingefügt werden, aber der Rest der Zuordnung soll weiterhin verarbeitet werden.
Dieses Beispiel wird detailliert in der Online-Hilfe von MapForce beschrieben, die automatisch mit MapForce installiert wird. Alle hier gezeigten Demo-Dateien sind ebenfalls enthalten. Wir überlassen es Ihnen, dies selbst zu erkunden Laden Sie eine kostenlose Testversion herunter und arbeiten Sie diesen Szenario durch, oder beginnen Sie direkt mit der Implementierung der Fehlerbehandlung für Ihre Datenbanken in Ihren eigenen Datenbankzuordnungen!