Estamos migrando nuestra base de datos a un nuevo esquema, pero queremos validar que los datos se hayan movido correctamente.
Las herramientas tradicionales de comparación de datos pueden comparar dos bases de datos por diferencias si los esquemas son los mismos. En nuestro caso, ha habido cambios en los diseños de la tabla, pero todos los datos del esquema anterior están en el nuevo, simplemente se han movido un poco y necesito asegurarme de que sean correctos. Tenemos decenas de millones de filas, por lo que la inspección manual no es una opción.
¿Hay alguna herramienta que pueda ayudar en este tipo de comparación?
Si no, ¿hay alguna biblioteca / marco que pueda ayudar a iniciar el desarrollo de una solución personalizada?
Me complace utilizar una solución específica de la base de datos si es necesario, en este caso para SQL Server 2008.
Mi solución: estoy comparando los dos conjuntos de datos creando uno VIEW
de cada tabla en la base de datos anterior con los mismos campos que la nueva tabla de base de datos.
Luego comparo los datos usando la técnica descrita aquí: La forma más corta, rápida y fácil de comparar dos tablas en SQL Server: ¡UNION!
Tengo suerte en esta migración, ya que la estructura general de la tabla es similar a la base de datos anterior, con campos movidos de una tabla a otra, eliminados o agregados. En el caso de los descartados y agregados no hay nada que comparar, para los campos que se han movido o agregado, hago cálculos en la vista para proporcionar la información correcta para la comparación.
La UNION
comparación me muestra solo las filas con diferencias, por lo que en cuanto los datos son correctos, obtengo un conjunto de resultados vacío.