Wir migrieren unsere Datenbank in ein neues Schema, möchten jedoch überprüfen, ob die Daten korrekt verschoben wurden.
Herkömmliche Datenvergleichstools können zwei Datenbanken auf Unterschiede vergleichen, wenn die Schemas identisch sind. In unserem Fall wurden Änderungen an den Tabellenentwürfen vorgenommen, aber alle Daten aus dem alten Schema befinden sich im neuen, sie wurden nur ein wenig verschoben, und ich muss sicherstellen, dass sie korrekt sind. Wir haben zig Millionen Zeilen, daher ist eine manuelle Inspektion keine Option.
Gibt es Werkzeuge, die bei dieser Art von Vergleich hilfreich sein könnten?
Wenn nicht, gibt es Bibliotheken / Frameworks, die dazu beitragen könnten, die Entwicklung einer benutzerdefinierten Lösung voranzutreiben?
Gerne verwende ich bei Bedarf eine datenbankspezifische Lösung, in diesem Fall für SQL Server 2008.
Meine Lösung: Ich vergleiche die beiden Datensätze, indem ich VIEW
für jede Tabelle in der alten Datenbank eine mit denselben Feldern wie in der neuen Datenbanktabelle erstelle .
Ich vergleiche dann die Daten mit der hier beschriebenen Technik: Der kürzeste, schnellste und einfachste Weg, zwei Tabellen in SQL Server zu vergleichen: UNION!
Ich habe Glück bei dieser Migration, da die gesamte Tabellenstruktur der alten Datenbank ähnelt und Felder von einer Tabelle in eine andere verschoben, gelöscht oder hinzugefügt werden. Im Fall des Löschens und Hinzufügens gibt es nichts zu vergleichen. Für die Felder, die verschoben oder aggregiert wurden, führe ich Berechnungen in der Ansicht durch, um die richtigen Informationen zum Vergleich bereitzustellen.
Der UNION
Vergleich zeigt mir nur die Zeilen mit Unterschieden. Sobald die Daten korrekt sind, erhalte ich eine leere Ergebnismenge.