Validación de datos de destino de Amazon S3 - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Validación de datos de destino de Amazon S3

AWS DMS admite la validación de datos replicados en los destinos de Amazon S3. Dado que AWS DMS almacena los datos replicados como archivos planos en Amazon S3, utilizamos las consultas de Amazon Athena CREATE TABLE AS SELECT (CTAS) para validar los datos.

Las consultas de los datos almacenados en Amazon S3 son intensas desde el punto de vista computacional. Por lo tanto, AWS DMS ejecuta la validación de los datos de Amazon S3 durante la captura de datos de cambios (CDC) solo una vez al día, a medianoche (00:00) UTC. Cada validación diaria que AWS DMS ejecuta se denomina validación de intervalo. Durante una validación de intervalo, AWS DMS valida todos los registros de cambios que se migraron al bucket de Amazon S3 de destino durante las últimas 24 horas. Para obtener más información sobre las limitaciones de la validación de intervalo, consulte Limitaciones para utilizar la validación de destinos de S3.

La validación de destinos de Amazon S3 utiliza Amazon Athena, por lo que se aplican costos adicionales. Para obtener más información, consulte Precios de Amazon Athena.

nota

La validación de destino de S3 requiere AWS DMS versión 3.5.0 o posterior.

Requisitos previos de validación de destino de S3

Antes de usar la validación de destino de S3, compruebe la siguiente configuración y permisos:

  • Establezca el valor DataFormat para S3Settings en parquet. Para obtener más información, consulte Configuración de Parquet para S3.

  • Asegúrese de que el rol asignado a la cuenta de usuario utilizada para crear la tarea de migración tenga el conjunto de permisos correcto. Consulte Permisos a continuación.

Para las tareas que utilizan la replicación continua (CDC), compruebe la siguiente configuración:

Permisos para usar la validación de destinos de S3

Para configurar el acceso para usar la validación de destino de S3, asegúrese de que el rol asignado a la cuenta de usuario que se usó para crear la tarea de migración tenga el siguiente conjunto de permisos. Sustituya los valores de ejemplo por sus valores.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:CreateWorkGroup" ], "Resource": "arn:aws:athena:<endpoint_region_code>:<account_id>:workgroup/dms_validation_workgroup_for_task_*" }, { "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetTables", "glue:CreateTable", "glue:DeleteTable", "glue:GetTable" ], "Resource": [ "arn:aws:glue:<endpoint_region_code>:<account_id>:catalog", "arn:aws:glue:<endpoint_region_code>:<account_id>:database/aws_dms_s3_validation_*", "arn:aws:glue:<endpoint_region_code>:<account_id>:table/aws_dms_s3_validation_*/*", "arn:aws:glue:<endpoint_region_code>:<account_id>:userDefinedFunction/aws_dms_s3_validation_*/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket_name>", "arn:aws:s3:::<bucket_name>/*" ] } ] }

Limitaciones para utilizar la validación de destinos de S3

Consulte las siguientes limitaciones adicionales que se aplican al utilizar la validación de destinos de S3. Para conocer las limitaciones que se aplican a todas las validaciones, consulte Limitaciones.

  • El valor DatePartitionSequence necesita un componente de día. La validación de destinos de S3 no admite el formato YYYYMM.

  • Cuando la validación de intervalo se ejecuta durante CDC, es posible que vea errores de validación falsos en la tabla awsdms_validation_failures_v1. Estos errores se producen porque AWS DMS migra los cambios que llegaron durante la validación de intervalo a la carpeta de particiones del día siguiente. Normalmente, estos cambios se escriben en la carpeta de particiones del día actual. Estos errores falsos son una limitación a la hora de validar la replicación desde una base de datos de origen dinámica a un destino estático, como Amazon S3. Para investigar estos errores falsos, compruebe si hay registros cerca del final del periodo de validación (00:00 UTC), que es cuando suelen aparecer estos errores.

    Para minimizar el número de errores falsos, asegúrese de que CDCLatencySource para la tarea sea bajo. Para obtener información sobre el monitoreo de latencia, consulte Métricas de tareas de replicación.

  • Las tareas en el estado failed o stopped no validan los cambios del día anterior. Para minimizar los errores de validación debidos a errores inesperados, cree tareas exclusivas de validación independientes con las mismas asignaciones de tablas y los mismos puntos de conexión de origen y destino. Para obtener más información sobre las tareas exclusivas de validación, consulte Uso de tareas exclusivas de validación con validación de destino de S3.

  • La columna Estado de validación de las estadísticas de la tabla refleja el estado de la validación de intervalo más reciente. Como resultado, una tabla que tenga discrepancias podría aparecer como validada tras la validación de intervalo del día siguiente. Compruebe s3_validation_failures folder en el bucket de Amazon S3 de destino por si hay discrepancias que se hayan producido hace más de un día.

  • La validación de S3 utiliza la función de tabla agrupada de Amazon Athena. Esto permite que la validación de S3 haga una copia agrupada de los datos de la tabla de destino. Esto significa que la copia de los datos de la tabla se divide en subconjuntos que coinciden con la partición interna de la validación del DMS. Las mesas con cubos Athena tienen un límite de 100 000 cubos. Cualquier tabla que la validación de S3 intente validar y que supere este límite no será validada. La cantidad de cubos que S3 Validation intenta crear es igual a la siguiente:

    (#records in the table) / (validation partition size setting)

    Para evitar esta limitación, aumente la configuración del tamaño de la partición de validación para que el número de cubos creados por S3 Validation sea inferior a 100 000. Para obtener más información sobre el agrupamiento, consulte Particionamiento y agrupamiento en Athena en la Guía del usuario de Amazon Athena.

Uso de tareas exclusivas de validación con validación de destino de S3

Una tarea exclusiva de validación ejecuta la validación de los datos que se van a migrar sin ejecutar la migración.

Las tareas exclusivas de validación se siguen ejecutando, aunque la tarea de migración se detiene, lo que garantiza que AWS DMS no se pierda la validación de intervalo de las 00:00 UTC.

El uso de tareas exclusivas de validación con puntos de conexión de destino de Amazon S3 tiene las siguientes limitaciones:

  • Se admite la validación de Amazon S3 para tareas de carga completa con la configuración exclusiva de validación habilitada, pero funciona de manera diferente a las tareas de carga completa y exclusivas de validación para otros puntos de conexión. En el caso de S3 como destino, una tarea de este tipo se valida solo con los datos de carga completa del destino de S3 y no se valida con ningún dato migrado como parte de una migración de CDC. Utilice esta característica solo para validar los datos creados por una tarea exclusiva de carga completa. El uso de este modo para validar los datos de un destino en el que se esté ejecutando una tarea de CDC no producirá una validación eficaz.

  • Las tareas exclusivas de validación solo validan los cambios realizados desde la última validación de intervalo (00:00 UTC). Las tareas exclusivas de validación no validan los datos de carga completa ni los datos de CDC de días anteriores.