Przeprowadzamy migrację naszej bazy danych do nowego schematu, ale chcemy zweryfikować poprawność przeniesienia danych.
Tradycyjne narzędzia do porównywania danych mogą porównywać dwie bazy danych pod kątem różnic, jeśli schematy są takie same. W naszym przypadku nastąpiły zmiany w projektach tabel, ale wszystkie dane ze starego schematu znajdują się w nowym, po prostu zostały nieco przeniesione i muszę się upewnić, że są poprawne. Mamy dziesiątki milionów rzędów, więc ręczna kontrola nie jest opcją.
Czy są jakieś narzędzia, które mogłyby pomóc w tego rodzaju porównaniu?
Jeśli nie, czy są jakieś biblioteki / frameworki, które mogłyby pomóc w rozpoczęciu tworzenia niestandardowego rozwiązania?
W razie potrzeby chętnie skorzystam z rozwiązania specyficznego dla bazy danych, w tym przypadku dla SQL Server 2008.
Moje rozwiązanie: porównuję dwa zestawy danych, tworząc VIEW
każdą tabelę w starej bazie danych z tymi samymi polami, co nowa tabela bazy danych.
Następnie porównuję dane przy użyciu opisanej tutaj techniki: Najkrótszy, najszybszy i najłatwiejszy sposób porównania dwóch tabel w SQL Server: UNION!
Mam szczęście w tej migracji, ponieważ ogólna struktura tabeli jest podobna do starej bazy danych, a pola są przenoszone z jednej tabeli do drugiej, upuszczane lub dodawane. W przypadku upuszczonych i dodanych nie ma nic do porównania, dla pól, które zostały przeniesione lub zostały zagregowane, wykonuję obliczenia w celu zapewnienia poprawnych informacji do porównania.
Do UNION
porównania pokazuje mi tylko wiersze z różnic, tak szybko, jak dane są poprawne dostaję pusty zestaw wyników.