Processing

Konnektoren

XDM kann eine Vielzahl unterschiedlicher Systeme anbinden und daraus Daten lesen und schreiben. Dazu zählen relationale Datenbanken, NoSQL-Datenbanken, Legacy-Datenbanken sowie Systeme, die per REST API angebunden werden können. Zusätzlich lassen sich auch Messaging-Systeme wie Kafka integrieren.

Für den Datentransfer stellt XDM konfigurierte Konnektoren zur Verfügung, die sowohl als Quelle als auch als Ziel ausgewählt werden können. Bei der Übertragung von Daten wählt XDM automatisch die jeweils performanteste Methode, um eine effiziente und zuverlässige Datenübertragung sicherzustellen. Insbesondere relationale Datenbanksysteme bieten oft spezialisierte Utilities, die von XDM genutzt werden, um große Datenvolumina besonders schnell zu transportieren. Bei Cross-Database-Kopien – also wenn Quelle und Ziel unterschiedliche Datenbanksysteme sind – übernimmt XDM alle erforderlichen Umwandlungen der Datenformate automatisch.

Datenbanksysteme

XDM unterstützt die native Anbindung folgender relationaler Datenbanksysteme:

  • Db2 for iSeries: Access IBM Db2 for i (formerly AS/400) databases via JDBC.

  • Db2 LUW: Access IBM Db2 for Linux, Unix, and Windows databases via JDBC and via IBM’s data transfer utilities.

  • Db2 z/OS: Access IBM Db2 for z/OS databases via JDBC and via IBM’s data transfer utilities.

  • Google BigQuery: Access Google BigQuery as a data source via JDBC and bulk data API.

  • Oracle: Access Oracle databases via JDBC and via Oracle’s data transfer utilities.

  • PostgreSQL: Access PostgreSQL databases via JDBC and via PostgreSQL’s data transfer utilities.

  • Snowflake: Access Snowflake as a data source via JDBC and bulk data API.

  • SQL Server: Access Microsoft SQL Server and Azure SQL databases via JDBC and via Microsoft’s bulk data utilities.

  • IBM IMS: Access IBM IMS databases via JDBC over IMS connect.

Jede weitere JDBC-fähige Datenbank oder jedes Speichersystem kann über den generischen JDBC-Konnektor angebunden werden. Dadurch ist auch die Anbindung an No-SQL Datenbanken wie Mongo-DB möglich.

Dateibasierte Systeme

  • CSV-Dateien (Anbindung über FileBridge Server)

  • VSAM- und sequentielle Dateien auf z/OS (Zugriff über FileBridge Server)

Messaging-Systeme

  • Kafka (native Anbindung zum Lesen und Schreiben von Nachrichten aus einem Topic in beliebige andere Topics)

API-basierte Systeme

  • Anbindung von Systemen über REST-API

Vorteile

  • Eine vom Datenbanksystem unabhängige Konfiguration wird während der Laufzeit auf das zugrunde liegende Datenbanksystem angepasst

  • Für den Modellierer sind Spezialkenntnisse des Datenbanksystems nicht notwendig

  • Optimierung des Datentransports auf die jeweiligen JDBC Treiber, Schnittstellen und Utilities

  • Abbildung aller Datenbank-Datentypen auf generische Darstellung innerhalb der Skripte erlaubt allgemeine Formulierung

Tasktypen

Um die tatsächliche Bewegung von Testdaten aus oder in die jeweiligen Datenbanken der Applikationsumgebung umzusetzen, werden vordefinierte Tasktypen zur Verfügung gestellt.

Um eine Datenbank komplett mit allen Daten, Strukturen, Zugangsberechtigungen und allen weiteren Datenbankeinstellungen zu klonen gibt es die Tasks der Database Cloning Gruppe. Ein Klon ist eine unabhängige, konsistente 1:1-Kopie einer Datenbank zu einem fixen Zeitpunkt. Zum Erstellen eines Klons kann die Quellumgebung während des laufenden Betriebes kopiert werden. Dazu muss die Quelldatenbank nicht angehalten werden.

Die Tasks der Table Copy Gruppe kopieren den vollständigen Inhalt einer Menge von Tabellen. Die Tabellen lassen sich über einfache Namensregeln mit Pattern definieren, so das auch bei einer sich ändernden Menge an Tabellen der Task funktionsfähig bleibt. Es können über zusätzliche Regeln auch die Inhalte einzelner Tabellen unabhängig reduziert werden. Alle Tasktypen der TC Gruppe gibt es in zwei Varianten. Einer Native Copy, die sich direkt auf die Datenbankserver verbinden und die Performance der Datenbank-Utilities nutzen kann. Sowie eine Compatibility Copy, die mit weniger administrativen Berechtigungen eine vollständige Kopie der Daten ermöglicht.

Für die Tasks des Row Level Processing werden Zeilen aus einer Starttabelle selektiert und anschließend automatisch alle Zeilen der abhängigen Tabellen, auch über Datenbankgrenzen hinweg. Über definierte Beziehungen können künstliche Fremdschlüsselbeziehungen erstellt werden, welche ausschließlich für XDM aktiv werden. Somit können Relationen befolgt werden, die nicht in der Datenbank definiert sind und über die Möglichkeiten formaler Foreign Key Constraints hinaus gehen.

Alle Funktionen des Table Copy und de Row Level Processing lassen sich mit der IceBox (Sichern von Testdaten) verbinden.

Ebenfalls ist es möglich die Datenmodifikation in allen Tasktypen des Table Copy und des Row Level Processing zu nutzen. Damit lassen sich dann sowohl Maskierungsprozesse für Massendaten umsetzen, als auch die Modifikation von einzelnen Testfalldaten direkt beim Transport der Daten.

Der PII Finder macht es einfach schützenswerte Daten – wie Namen, Wohnorte, oder Kontonummern – in sämtlichen Datenbanken zu identifizieren. Sämtliche Ergebnisse können direkt mit einer passenden Modifikationsmethode versehen werden, die dann automatisch bei jedem Kopiervorgang der ausgewählten Daten angewendet wird. Suchkriterien und -methoden werden in der Standardinstallation mitgeliefert und sind erweiterbar.

Die Tasks der Structure Compare Gruppe dienen zum Vergleich von Datenbankstrukturen zwischen Datenbanken oder zur Überwachung von Datenbankstrukturänderungen auf einer Datenbank. Dies dient zur Planung und Vorbeugung von Konfigurationsanpassung der XDM Tasks. Zusätzlich bietet der Structure Compare Task die Möglichkeit die Strukturen von Datenbanken zu kopieren und passende DDL für das jeweilige Datenbanksystem zu generieren.

Vorteile

  • Definierte Abläufe für die Kopie von Daten auf verschiedenen Ebenen und für verschiedenste Einsatzkonzepte

  • Adaptive Regelwerke um den automatischen Ablauf der Tasks bei sich ändernden Bedingungen durchführen zu können

Features

  • Row Level Processing Tasks

    • Row Level Processor Task

    • Row Level to Icebox Task

    • Row Level from Icebox Task

    • Row Level Delete Task

  • Table Copy Tasks

    • Native Table Copy Task

    • Compatibility Table Copy Task

    • Native to Icebox Copy Task

    • Native from Icebox Copy Task

    • Compatibility to Icebox Copy Task

    • Compatibility from Icebox Copy Task

  • Database Clone Tasks

    • Db2 LUW Clone Task

    • Sql Server Clone Task

    • PostgreSQL Clone Task

  • Analyse Tasks

    • Structure Compare Task

    • Structure to Icebox Task

    • Structure Compare from Icebox Task

    • PII Finder Task

Daten lesen und schreiben

Das Anwenden der zu transportierenden Daten auf die Zielumgebung kann sehr unterschiedliche Anforderungen haben. Vom einfachen Ersetzen der kompletten Daten bis zur Aktualisierung nur der bereits vorhandenen Daten können viele Varianten bestehen.

In den Tasktypen des Row Level Processing und der Compatibility Table Copy bestehen daher Optionen um zu bestimmen wie die Daten in das Ziel geschrieben werden sollen.

Dabei ist auch die Bearbeitungsreihenfolge für Lösch- oder Schreiboperationen auf der Zieldatenbank entscheidend. Dazu werden über die Datenbank die Foreign Key Beziehungen der Tabellen ausgelesen und die Arbeitsreihenfolge bestimmt. Auch das abarbeiten von Tabellen mit Zyklen ist möglich.

Darüber hinaus ist es auch möglich in der XDM Konfiguration zwischen zwei Tabellen zusätzliche Regeln zur Reihenfolge zu definieren um etwa versteckte Abhängigkeiten zwischen den Tabellen etwas durch Trigger oder Check Constraints anzuzeigen. Diese werden dann in der Bestimmung der Reihenfolge ebenfalls beachtet.

Bei ausreichenden Rechten auf der Datenbank ist es auch möglich die Fremdschlüssel vor dem Einfügen der Daten zu deaktivieren und anschließend wieder zu aktivieren.

Um Daten zu Aktualisieren, zu Mergen oder zu Löschen wird in Standard der Primärschlüssel oder ein eindeutiger Schlüssel auf der Tabelle herangezogen. Um den fachlich korrekten Schlüssel zu nutzen, falls dieser vom technischen Schlüssel abweicht, ist es aber auch möglich, diesen in der Konfiguration zu definieren.

Vorteile

  • Durch automatisierte Bestimmung der Einfügereihenfolge auch für Zyklen muss keine manuelle Konfiguration erfolgen

  • Frei definierbare Handhabung der Anwendung der Daten im Ziel

Features

  • Optionales ausblenden von automatisch generierten Spalten

  • Verschiedene Verfahren zum Anwenden der Daten auf die Zieltabellen

    • Insert, um die Daten zu Schreiben, Schlüsselkonflikte werden nicht aufgelöst

    • Insert Replace, um alle Daten im Ziel zu löschen und die neuen Daten zu schreiben

    • Merge, um die Daten zu schreiben, Zeilen mit Schlüsselkonflikten werden aktualisiert

    • Update, um nur die im Ziel vorhandenen Zeilen zu aktualisieren

    • Delete, um die zu den Daten passenden Zeilen im Ziel zu löschen

  • Benutzerdefinierte Tabellenschlüssel um fachlich definieren zu können, was die Gleichheit einer Datenzeile definiert

  • Automatisierte Handhabung von Tabellenabhängigkeiten

Anpassung an Strukturunterschiede in Datenbank

Die meisten Datenbanken die bei der Testdatenbereitstellung als Quelle oder Ziel genutzt werden, ändern die Datenbankstrukturen mit der Zeit und in unterschiedlichen Zeitpunkten. Neue Tabellen und Spalten werden ergänzt, in manchen Fällen auch entfernt, um einen den Aufwand der Pflege für alle Testdatenbereitstellungsprozesse klein zu halten, soll daher in der XDM Konfiguration so wenig Information wie möglich zu den Datenbankstrukturen abgelegt werden.

Zu jedem Lauf eines Tasks werden daher die aktuellen Informationen zu den Datenbankstrukturen ausgelesen und die XDM Regeln ausgewertet um die Menge der zu kopierenden Objekte zu bestimmen. Alle weiteren Regeln zur Modifikation, Reduzierung usw. werden auf den gefundenen Objekten ausgewertet.

Die Strukturen zwischen Quelle und Ziel werden verglichen und die gefunden Unterschiede passend zur gewählten Datentransportmethode ausgewertet. So kann dynamisch entschieden werden, ob ein Datentransport möglich ist oder nicht. Für diese Entscheidungen können im Voraus entsprechende Optionen ausgewählt werden.

Durch diesen dynamischen Aufbau ist es auch möglich zwischen Tabellen unterschiedlicher Datenbankmanagementsysteme zu kopieren, auch wenn nicht alle Spalten die exakt gleichen Datentypen verwenden. Diese Umwandlungen erfolgen falls immer möglich automatisch.

Durch die Einstellung von passenden Mappingregeln sind Namensunterschiede zwischen Quell- und Zieltabellen ausgleichbar. Dies gilt für Schema-, Tabellen- und Spaltennamen.

Bei gravierenden Strukturunterschieden ist es optional auch möglich die Datenbankstrukturen durch den Tasklauf anpassen zu lassen, um eine kompatible Struktur in der Zielumgebung zu erstellen. Dabei kann für das Zieldatenbanksystem passende DDL generiert werden, die vor dem Datentransport ausgeführt wird.

Vorteile

  • Aufwand zur Konfiguration eines Tasks und der Pflegeaufwand für Strukturänderungen der Datenbank sind minimiert

  • Automatisierter, auf den Kopiervorgang angepasster Vergleichsvorgang der Strukturen

  • Einfache Kopie auch zwischen unterschiedlich benannten Datenbankobjekten

Features

  • Analyse der Datenbankstrukturen von Quelle und Ziel in jedem Tasklauf

  • Adaption an vorgefunden Konfiguration zur Ermöglichung einer Testdatenbereitstellung auch bei strukturellen Unterschieden

  • Bei Bedarf Erstellung von DDL zur Erzeugung neuer Datenbankobjekte im Ziel. Dabei wird immer eine datenbanknative DDL erstellt.