Quiero mejorar el rendimiento de la replicación de la captura de datos de cambios (CDC) en mi tarea de AWS Database Migration Service (AWS DMS) de carga completa y de la CDC. La latencia de origen no es alta, pero la latencia de destino es alta o está aumentando.
Descripción breve
De forma predeterminada, AWS DMS utiliza la aplicación transaccional para replicar los datos en la fase de CDC. Si la tarea captura una gran cantidad de transacciones del origen y provoca una latencia en el destino, puedes activar la configuración de aplicación por lotes.
Nota: El destino de Amazon Redshift utiliza la aplicación por lotes de forma predeterminada. El destino de Amazon Simple Storage Service (Amazon S3) debe utilizar la aplicación transaccional.
La aplicación por lotes solo funciona en tablas con una clave principal o un índice único. En el caso de las tablas sin una clave principal o un índice único, la aplicación masiva solo aplica la inserción en modo masivo y, a continuación, realiza las actualizaciones y eliminaciones una por una. Si la tabla tiene una clave principal o un índice único, pero cambia al modo uno por uno, consulta ¿Cómo puedo solucionar el motivo por el que Amazon Redshift cambió al modo uno por uno?
Cuando incluyes columnas de objetos binarios (LOB) de gran tamaño en la replicación, solo puedes usar BatchApplyEnabled en modo LOB limitado. Para obtener más información, consulte Target metadata task settings (Configuración de las tareas de metadatos del destino).
Nota: Si estableces BatchApplyEnabled en true y el destino tiene una restricción única, AWS DMS generará un mensaje de error.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
BatchApplySetting está desactivado de forma predeterminada. Puede activar esta configuración, usa la AWS CLI o la consola de AWS DMS. Antes de activar la aplicación por lotes, crea un usuario de IAM con acceso mediante programación.
Uso de la AWS CLI para activar la aplicación por lotes
Sigue estos pasos:
- Abre el sistema en el que usas la AWS CLI.
- Ejecuta el comando configure para abrir la línea de comandos de la AWS CLI.
- Introduce tu ID de clave de acceso a AWS.
- Introduce tu ID de clave secreta de AWS.
- Introduce la región de AWS de tus recursos de AWS DMS.
- Introduce el formato de salida.
- Confirma que la tarea está en estado stopped.
- Ejecuta el comando modify-replication-task con la siguiente configuración por lotes:
aws dms modify-replication-task --replication-task-arn arn:aws:dms:region:123456789123:task:4VUCZ6ROH4ZYRIA25M3SE6NXCM --replication-task-settings "{\"TargetMetadata\":{\"BatchApplyEnabled\":true}}"
Nota: Sustituye replication-task-arn por el nombre de recurso de Amazon (ARN) y region por tu región.
- Abre la consola de AWS DMS.
- En el panel de navegación, en Migrar o replicar, elige Tareas.
- Selecciona tu tarea y, a continuación, elige Task settings (JSON) (Configuración de tareas [JSON]).
- Confirma que BatchApplyEnabled esté configurado como enabled.
Uso de la consola de AWS DMS para activar la aplicación por lotes
Sigue estos pasos:
- Abre la consola de AWS DMS.
- En el panel de navegación, en Migrar o replicar, elige Tareas.
- Selecciona la tarea y, a continuación, elige Modificar.
- En la sección Configuración de la tarea, selecciona Editor de JSON.
- En TargetMetadata, cambia BatchApplyEnabled a true.
- Selecciona Guardar.
Solución de problemas de un CDCLatencyTarget alto después de ejecutar una tarea en el modo por lotes
Si el CDCLatencyTarget es alto después de ejecutar la tarea en el modo por lotes, es posible que experimentes latencia por los siguientes motivos:
- Tienes una transacción de larga duración en el destino porque no hay ningún índice principal ni secundario.
- No tienes disponibilidad de recursos suficiente para procesar la carga de trabajo en el destino.
- Tienes una gran contención de recursos en la instancia de replicación de AWS DMS.
Para solucionar problemas de latencia alta, consulta Troubleshooting latency issues in AWS Database Migration Service (Solución de problemas de latencia en AWS Database Migration Service).
Información relacionada
Monitoring AWS DMS tasks (Supervisión de tareas de AWS DMS)
Change processing tuning settings (Configuración de ajuste del procesamiento de cambios)