Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Verificación de datos

La verificación de datos comprueba que una tarea de migración haya migrado sus datos con precisión. El motor de verificación se conecta a las bases de datos de origen y de destino y compara los documentos migrados con los datos de origen. El motor de verificación valida lo siguiente:

  • Nombres de campos

  • Tipos de datos

  • Rutas de campos

  • Values

La verificación de datos se ejecuta por defecto para las tareas de migración única. Para aprender a habilitar o deshabilitar la verificación de una tarea, consulte Utilizar la verificación de datos.

Nota

Esta página describe el motor de verificación en Relational Migrator 1.18 o posterior. Las versiones anteriores solo comprueban los valores de la llave primaria, verifican un rango más estrecho de esquemas y se ejecutan más lentamente. Para usar estas funcionalidades de verificación, actualice a 1.18 o posterior.

Para cada colección de una tarea de migración, el motor de verificación completa los siguientes pasos:

  1. Compara el número de documentos de la colección de destino con el número de filas de la tabla de origen. Para obtener más información, consulte Comparación del recuento de documentos.

  2. Recupera filas de la base de datos de origen en grupos, utilizando las llaves primarias de la tabla de origen, y asigna cada columna de origen a su ruta de campo correspondiente en la colección.

  3. Recupera los documentos que tienen las mismas llaves primarias de la colección de destino. El motor de verificación desenrolla y aplana estos documentos para poder comparar cada valor de campo con el valor de columna de origen correspondiente.

  4. Compara las filas de origen con los documentos de destino. Para obtener más información, consulte Comparación a nivel de campo.

Si el motor de verificación completa estos pasos para cada colección sin encontrar ninguna discrepancia, el proceso de verificación de datos informa un estado de VERIFIED. Para obtener más información sobre los estados de verificación, consulte Estados de verificación de datos.

Si el número de documentos de la colección de destino no coincide con el número de filas de la tabla de origen de la nueva asignación de documentos, el motor de verificación informa de la falta de coincidencia. Una falta de coincidencia en el recuento no detiene la verificación de la colección.

El motor de verificación hace coincidir las filas de origen con los documentos de destino según los valores de su llave primaria. Dado que los valores de la llave primaria son únicos, suelen identificar exactamente una fila de origen y un documento de destino. El motor de verificación compara cada par coincidente campo por campo. Si el par no coincide, el motor de verificación informa cada diferencia.

En algunos casos, varias filas o documentos comparten los mismos valores de llave primaria. Por ejemplo, cuando el motor de verificación desenrolla un arreglo incrustado, cada elemento del arreglo comparte los valores de llave primaria de su documento principal. Si varias filas o documentos no coincidentes comparten los mismos valores de llave primaria, el motor de verificación no intenta emparejarlos. En su lugar, informa el número de filas y documentos no coincidentes y muestra la diferencia calculada para una fila de origen representativa y un documento de destino.

En ambos casos, el motor de verificación registra el conjunto completo de valores de la llave primaria para que pueda localizar los datos afectados.

La verificación de datos asume que los datos de origen no cambian después de que se inicia la tarea de migración y que la colección de destino contiene solo datos migrados. Si alguna de las suposiciones no es cierta, el motor de verificación puede informar discrepancias que no son errores de migración:

  • Si la colección de destino contenía datos antes de que comenzara la tarea de migración, el motor de verificación informa los documentos preexistentes como documentos inesperados.

  • Si los datos de origen cambian después de que se inicia la tarea de migración, el motor de verificación informa las discrepancias entre las filas cambiadas y los documentos migrados.

La verificación de datos puede agregar un tiempo de cómputo significativo a una tarea de migración. El motor de verificación también tiene limitaciones en los niveles de base de datos, tarea, colección y campo.

La verificación de datos admite las siguientes bases de datos de origen:

  • PostgreSQL

  • Oracle

  • MySQL

  • SQL Server

La verificación de datos no se puede ejecutar cuando la propiedad de usuario migrator.job.allow.null.join está establecida en true. Los valores nulos no coinciden en las comparaciones de SQL, por lo que el motor de verificación se detiene e informa un error en el panel Job Update Log.

El motor de verificación omite una colección en los siguientes casos:

  • La tabla de origen no tiene una llave primaria, o uno o más campos de llave primaria no están asignados. El motor de verificación utiliza valores de llave primaria para recuperar filas en lotes.

  • La colección utiliza un filtro de reglas de asignación. Para filtrar datos migrados, utilice un filtro de tabla en su lugar. Para aprender más, consulte Filtro de reglas de asignación y Filtro de tabla.

  • La colección utiliza una condición de arreglo. Para obtener más información, consulta Arreglo incrustado.

  • La colección utiliza un filtro de tabla con un límite de filas. Sin una cláusula ORDER BY, las filas que selecciona el filtro no son deterministas. Para aplicar un límite de filas que se pueda verificar, agregue una cláusula ORDER BY y una cláusula LIMIT a la instrucción SQL del filtro.

El motor de verificación omite un campo en los siguientes casos:

  • El campo es un campo calculado. Para obtener más información, consulte Campos calculados.

  • El tipo de columna de origen del campo es INTERVAL.

  • El tipo de destino del campo no es BOOL, DATE, DECIMAL, INTEGER, LONG o STRING. Por ejemplo, el motor de verificación omite los campos ObjectId.