Estamos migrando nosso banco de dados para um novo esquema, mas queremos validar se os dados foram movidos corretamente.
As ferramentas tradicionais de comparação de dados podem comparar dois bancos de dados quanto a diferenças se os esquemas forem iguais. No nosso caso, houve alterações nos designs das tabelas, mas todos os dados do esquema antigo estão no novo, apenas foram movidos um pouco, e preciso garantir que eles estejam corretos. Como temos dezenas de milhões de linhas, a inspeção manual não é uma opção.
Existem ferramentas que poderiam ajudar nesse tipo de comparação?
Caso contrário, existem bibliotecas / estruturas que poderiam ajudar a iniciar o desenvolvimento de uma solução personalizada?
É um prazer usar uma solução específica de banco de dados, se necessário, neste caso para o SQL Server 2008.
Minha solução: estou comparando os dois conjuntos de dados criando uma VIEW
de cada tabela no banco de dados antigo com os mesmos campos da nova tabela de banco de dados.
Em seguida, comparo os dados usando a técnica descrita aqui: A maneira mais curta, rápida e fácil de comparar duas tabelas no SQL Server: UNION!
Tenho sorte nesta migração, pois a estrutura geral da tabela é semelhante ao banco de dados antigo, com campos movidos de uma tabela para outra, eliminados ou adicionados. No caso de descarte e adição, não há nada para comparar; para os campos que foram movidos ou agregados, faço cálculos na exibição para fornecer as informações corretas para comparação.
A UNION
comparação mostra apenas as linhas com diferenças. Assim que os dados estiverem corretos, recebo um conjunto de resultados vazio.