Testen einer Datenmigration

Bei einer Migration leitet sich das erwartete Ergebnis implizit aus den Daten des Quellsystems ab. Das gilt unabhängig davon, ob Quell- und Zielsystem strukturell gleich oder unterschiedlich aufgebaut sind. Eine Migration darf niemals zu einem Verlust von Information führen! Mit RapidRep wurden schon viele Datenmigrationen erfolgreich überprüft. RapidRep unterstützt die gängigen Datenbanken und kommt auch mit sehr hohem Datenvolumen problemlos zurecht.

Operative und dispositive Geschäftsdaten sind typischerweise in relationalen Datenbanken abgelegt. In diesem Marktsegement stehen sich häufig Oracle, IBM DB2 und der Microsoft SQL Server gegenüber. Abgesehen von objektorientierten Features erfolgt die Datenhaltung in flachen Tabellen mit standardisierten Datentypen. Auch Dateien beherbergen oft beträchtliche Mengen an Daten und können an Migrationen beteiligt sein.

Eine Datenmigration ist ein dreistufiger Prozess bestehend aus:

  1. Extraktion: die zu migrierenden Daten werden gefiltert und aus dem Quellsystem extrahiert
  2. Transformation: die Daten werden so angepasst, wie es das Zielsystem vorgibt
  3. Laden: die transformierten Daten aus dem Altsystem werden in das Zielsystem eingespielt

Im Gegensatz zu den ETL-Prozessen, sollen die Daten nach Ablauf der drei Schritte im Quell- und im Zielsystem den gleichen Informationsgehalt aufweisen.

Testen einer Datenmigration

Der Test einer Datenmigration ist ein Spezialfall des Vergleichstests.

Technische Attribute wie z.B. Zeitstempel oder technische Schlüssel können systematisch voneinander abweichen und werden daher vom Soll-Ist-Vergleich ausgeschlossen.

Wenn der Transformationsschritt (Schritt 2) keine oder nur sehr wenig Business-Logik enthält, lässt sich der Migrationstest mühelos auf den Vergleich der Daten reduzieren. Falls jedoch umfangreiche Regeln und Konvertierungen stattfinden, kann die Transformation analog zum Vorgehen bei der regelbasierten Datenverarbeitung getestet werden. Dazu ermittelt RapidRep das Soll-Ergebnis ("Testorakel") und stellt dieses dem aktuellen Ist-Ergebnis gegenüber.

Sind sehr viele Datensätze zu vergleichen, kann die Performanz über Indizes und Cashing-Strategien gesteigert werden. Alternativ sollte bei riesigen Datenbeständen über eine sinnvolle Aufteilung durch geeignete Filter oder Partitionierungskriterien nachgedacht werden.

Moderne Datenbanken verfügen oft über eingebaute Stored Procedures. Beim Wechsel auf eine andere Plattform müssen die Programme ebenfalls migriert oder portiert werden.

Ein Test muss sicherstellen, dass die Ergebnisse, die von den alten Programme auf dem Quellsystem erzeugt werden, mit den Ergebnissen übereinstimmen, die die migrierten bzw. portierten Programme auf dem Zielsystem erzeugen. Dies ist im unteren Bereich der obigen Abbildung angedeutet.