Мы переносим нашу базу данных в новую схему, но хотим убедиться, что данные были перемещены правильно.
Традиционные инструменты сравнения данных могут сравнивать две базы данных на предмет различий, если схемы совпадают. В нашем случае произошли изменения в дизайне таблиц, но все данные из старой схемы были в новой, их просто немного переместили, и мне нужно убедиться, что это правильно. У нас десятки миллионов строк, поэтому ручная проверка невозможна.
Есть ли инструменты, которые могли бы помочь в этом типе сравнения?
Если нет, то есть ли какие-нибудь библиотеки / фреймворки, которые могли бы помочь начать разработку собственного решения?
Я рад использовать решение для конкретной базы данных, если это необходимо, в данном случае для SQL Server 2008.
Мой солутон: я сравниваю два набора данных, создавая VIEW
каждую таблицу в старой базе данных с теми же полями, что и в новой таблице базы данных.
Затем я сравниваю данные, используя методику, описанную здесь: Самый короткий, быстрый и простой способ сравнения двух таблиц в SQL Server: UNION!
Мне повезло в этой миграции, так как общая структура таблицы похожа на старую базу данных, поля перемещены из одной таблицы в другую, удалены или добавлены. В случае отброшенных и добавленных сравнивать нечего, для полей, которые были перемещены или объединены, я делаю вычисления в представлении, чтобы предоставить правильную информацию для сравнения.
В UNION
сравнении показывает мне только строки с различиями, так как только данные верны , я получаю пустой результирующий набор.