¿Cuáles son las prácticas recomendadas para migrar una base de datos de RDBMS a Amazon Redshift mediante AWS DMS?

Última actualización 18-08-2022

Tengo una base de datos de sistema de administración de bases de datos relacionales (Relational Database Management System, RDBMS) que quiero migrar a Amazon Redshift mediante AWS Database Migration Service (AWS DMS). ¿Cuáles son algunas de las prácticas recomendadas que puedo seguir al migrar una base de datos de RDBMS a Amazon Redshift?

Resolución

Utilice las prácticas recomendadas de este artículo para que le sea más fácil migrar las bases de datos de RDBMS a Amazon Redshift mediante AWS DMS.

  • Utilice la carga paralela con las reglas de configuración de tablas cuando migre datos a un punto de conexión de Amazon Redshift. Para obtener más información sobre el uso de la carga paralela y cómo se puede usar para acelerar la migración, consulte Using parallel load for selected tables, views, and collections (Uso de la carga paralela para tablas, vistas y colecciones seleccionadas).
  • Las versiones 3.4.5 y posteriores de AWS DMS incluyen soporte para el uso de la configuración de tareas ParallelLoad durante la carga completa en los puntos de conexión de destino de Amazon Redshift. Para obtener más información, consulte Multithreaded full load task settings for Amazon Redshift (Configuración de tareas de carga completa multiproceso para Amazon Redshift).
  • Si va a migrar una gran cantidad de datos a Amazon Redshift, aumente los valores de los atributos de punto de conexión para maxFileSize y fileTransferUploadStreams. Esto puede ayudar a mejorar el rendimiento de carga completa. Luego, aumente el valor de CommitRate para mejorar el rendimiento.
  • Dado que AWS DMS no admite el modo LOB completo cuando utiliza Amazon Redshift como destino para sus bases de datos, asegúrese de establecer un valor adecuado para LobMaxSize.
  • Asegúrese de que las tablas de Amazon Redshift tengan una clave principal. Si la tabla de destino no tiene una clave principal, las inserciones se realizan en el modo BatchApply. Sin embargo, dado que las actualizaciones y eliminaciones se aplican una por una, esto afecta al rendimiento. Por lo tanto, asegúrese de que AWS DMS migre los datos de CDC por lotes al destino de Amazon Redshift para evitar cualquier problema de rendimiento.
  • Ajuste la configuración de aplicación por lotes de acuerdo con la carga de trabajo para reducir el número de confirmaciones en el destino. La configuración de aplicación por lotes incluye BatchApplyTimeoutMin, BatchApplyTimeoutMax y BatchApplyMemoryLimit.
  • Utilice BatchSplitSize para establecer el número máximo de cambios que se aplican en un solo lote. El valor predeterminado es 0, lo que significa que no se aplica ningún límite.
  • Cree tablas de Amazon Redshift de destino con las claves de distribución y ordenación adecuadas. Cuando AWS DMS crea tablas para los destinos de Amazon Redshift, crea tablas con una clave de distribución predeterminada y sin claves de ordenación. Amazon Redshift almacena los datos en el disco siguiendo un orden, de acuerdo con la clave de ordenación. El optimizador de consultas de Amazon Redshift utiliza el orden de clasificación para determinar los planes de consulta óptimos. Por lo tanto, cuando ejecuta una consulta, el optimizador de consultas redistribuye las filas a los nodos de computación según sea necesario para realizar cualquier combinación y agregación. Para obtener más información, consulte Choose the best sort key (Elegir la mejor clave de ordenación) y Working with data distribution styles (Trabajar con estilos de distribución de datos).
  • Si tiene una carga de trabajo transaccional intensiva, utilice una configuración similar a esta. Esta configuración de ejemplo significa que un búfer de lote de 8000 MB se llena en 1800 segundos, utilizando 32 subprocesos paralelos y con un tamaño máximo de archivo de 250 MB.

    Configuración de punto de conexión de Amazon Redshift:

MaxFileSize=250000;

Configuración de tarea:

BatchApplyEnabled=true;
BatchSplitSize =8000;
BatchApplyTimeoutMax =1800;
BatchApplyTimeoutMin =1800;
ParallelApplyThreads=32;
ParallelApplyBufferSize=100;
  • Asegúrese de que no haya bloqueos ni sesiones de bloqueo presentes en Amazon Redshift. Para obtener más información, consulte How do I detect and release locks in Amazon Redshift? (¿Cómo detecto y quito los bloqueos en Amazon Redshift?)
  • Utilice la herramienta Amazon Redshift Workload Management (WLM) para gestionar la carga de trabajo. Amazon Redshift WLM se puede usar para definir varias colas de consultas y para dirigir consultas a las colas adecuadas en tiempo de ejecución. Para obtener más información, consulte Workload management (Administración de cargas de trabajo).

  • Using an Amazon Redshift database as a target for AWS Database Migration Service (Uso de una base de datos de Amazon Redshift como destino para AWS Database Migration Service)

    How can I use Amazon Redshift as the target endpoint for my AWS DMS task? (¿Cómo puedo usar Amazon Redshift como el punto de conexión de destino para mi tarea de AWS DMS?)

    ¿Le resultó útil este artículo?


    ¿Necesita asistencia técnica o con la facturación?