Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Por qué AWS DMS no migró los datos de mi punto de enlace de origen de Amazon S3 aunque mi tarea de AWS DMS se realizó correctamente?
Mi tarea de AWS Database Migration Service (AWS DMS) se ha realizado correctamente, pero no migra los datos de mi punto de enlace de origen de Amazon Simple Storage Service (Amazon S3). Quiero solucionar este problema.
Resolución
Hay varios motivos por los que una tarea de AWS DMS se realiza correctamente pero no migra los datos. Complete la resolución de su caso de uso.
El estado de la tarea es «Carga completa, replicación en curso», pero la tarea de AWS DMS no carga datos en el objetivo
Confirme que la ruta de S3 que definió para el punto de enlace de origen es correcta. En el registro de replicación, identifique las entradas que muestran que AWS DMS no puede encontrar los archivos de datos en la ruta de S3.
Ejemplo de entrada de registro de replicación:
[SOURCE_UNLOAD ]I: Unload finished for table 'dms_schema'.'dms_table' (Id = 1). 0 rows sent. (streamcomponent.c:3396) [TARGET_LOAD ]I: Load finished for table 'dms_schema'.'dms_table' (Id = 1). 0 rows received. 0 rows skipped. Volume transferred 0. (streamcomponent.c:3667)
Amazon S3 almacena el archivo de datos para la fase de carga completa (data.csv) y el archivo de datos para los cambios en curso (change_data.csv) en el siguiente formato:
- S3-bucket/dms-folder/sub-folder/dms_schema/dms_table/data.csv
- S3-bucket/dms-folder/sub-folder/dms-cdc-path/dms-cdc-sub-path/change_data.csv
Para encontrar los archivos de datos, el punto de enlace de origen de S3 utiliza los campos de la carpeta del bucket, la ruta de captura de datos de cambios (CDC) y la estructura de la tabla.
En las rutas de archivo del ejemplo anterior, dms-folder/sub-folder es la carpeta del bucket. La ruta de CDC que introduce al crear el punto de enlace de origen de S3 es dms-cdc-path/dms-cdc-sub-path.
Ejemplo de estructura de tabla que usa la ruta de archivo de ejemplo:
{ "TableCount": 1, "Tables": [ { "TableColumns": […], "TableColumnsTotal": "1", "TableName": "dms_table", "TableOwner": "dms_schema", "TablePath": "dms_schema/dms_table/" } ] }
Importante: No incluya la ruta de la carpeta del bucket dms-folder/sub-folder en la TablePath de la estructura de la tabla.
Al especificar la configuración del punto de enlace, la carpeta del bucket es opcional. Si especifica una carpeta del bucket, la ruta CDC y TablePath deben estar en la misma carpeta en Amazon S3. Si no especifica la carpeta del bucket, la ruta de TablePath y CDC se encuentran directamente debajo del bucket de S3.
La carpeta del bucket para el punto de enlace de origen de S3 puede ser cualquier directorio de carpetas entre el nombre del bucket y el nombre del esquema de la estructura de la tabla. En la estructura de la tabla del ejemplo anterior, el directorio de carpetas es dms-schema. Si no tiene una jerarquía de carpetas en el bucket, deje el campo en blanco.
Nota: Las carpetas del bucket y las rutas de CDC pueden ser carpetas individuales o pueden incluir subcarpetas, como dms-folder o dms-folder/sub-folder.
Si la configuración de tareas de DMS usa un punto de enlace de origen de S3, debe incluir el esquema y la tabla en la asignación de tablas. El esquema y la tabla son necesarios para migrar correctamente los datos al objetivo. Para obtener más información, consulte Definición de tablas externas para Amazon S3 como origen de AWS DMS.
Si usa Eliminar tablas en el objetivo como modo de preparación de tablas para la tarea, DMS crea la tabla objetivo dms_schema.dms_table.
Ejemplo de comando de creación de tablas objetivo:
CREATE TABLE 'dms_schema'.'dms_table' (...);
Nota: Los nombres de carpetas y objetos en Amazon S3 distinguen mayúsculas de minúsculas. Utilice las mayúsculas y minúsculas correctas al especificar los nombres de carpetas y objetos en el punto de enlace de S3.
El estado de la tarea es «Carga completa, replicación en curso», pero no hay ninguna tabla en la sección de estadísticas de la tabla
Cuando utiliza el modo Eliminar tablas en el objetivo, es posible que AWS DMS no cree una tabla en el punto de enlace objetivo. Este problema puede deberse a una ruta de S3 incorrecta o a un tipo de datos no compatible.
Confirme que la ruta de S3 para el punto de enlace de origen es correcta. A continuación, compruebe que el punto de enlace de S3 admite el tipo de datos.
Compruebe si el filtro que definió la asignación de tablas de su tarea de DMS está causando la falta de tablas. Asegúrese de haber definido la tabla requerida en la asignación de tablas de tareas en la estructura de tablas del punto de enlace de origen de S3.
El estado de la tarea es «En ejecución» y la tarea de DMS creó la tabla en el punto de enlace objetivo, pero no cargó los datos
Si AWS DMS no puede obtener los datos de la ruta de S3, utilice el registro de replicación para encontrar los errores. Para obtener registros detallados, cambie el nivel de registro de SOURCE_CAPTURE de Predeterminado a Depuración detallada.
Ejemplo de registro:
[SOURCE_CAPTURE ]E: No response body. Response code: 403 [1001730] (transfer_client.cpp:589) [SOURCE_CAPTURE ]E: failed to download file </dms-folder/sub-folder/dms_schema/dms_table/data.csv> from bucket <dms-test> as </rdsdbdata/data/tasks/NKMBA237MEB4UFSRDF5ZAF3EZQ/bucketFolder/dms-folder/sub-folder/dms_schema/dms_table/data.csv>, status = 4 (FAILED) [1001730] (transfer_client.cpp:592)
Recibe el error «No hay cuerpo de respuesta» en el registro de replicación
El error No hay cuerpo de respuesta se produce cuando el rol de AWS Identity and Access Management (IAM) para el punto de enlace de origen de S3 no tiene los permisos correctos. Para resolver este problema, confirme que el archivo de datos existe en la ruta de S3 que aparece en el mensaje de error. A continuación, confirme que el usuario de IAM tiene permisos para s3:GetObject.
Nota: Si ha activado el control de versiones en el bucket de origen, también debe conceder el permiso s3:GetObjectVersion.
Información relacionada
Vídeos relacionados


Contenido relevante
- preguntada hace 3 meseslg...
- preguntada hace un meslg...
- Respuesta aceptadapreguntada hace 18 díaslg...
- preguntada hace 2 meseslg...
- preguntada hace 2 meseslg...
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 3 meses
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 3 años