Uso de un clúster de Amazon OpenSearch Service como objetivo para AWS Database Migration Service - 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.

Uso de un clúster de Amazon OpenSearch Service como objetivo para AWS Database Migration Service

Puede utilizar AWS DMS para migrar datos a Amazon OpenSearch Service (OpenSearch Service). OpenSearch Service es un servicio administrado que facilita la implementación, la operación y el escalado de clústeres de OpenSearch Service.

En OpenSearch Service, trabaja con índices y documentos. Un índice es una recopilación de documentos y un documento es un objeto JSON que contiene valores escalares, matrices y otros objetos. OpenSearch proporciona un lenguaje de consulta basado en JSON para que pueda consultar los datos de un índice y recuperar los documentos correspondientes.

Cuando AWS DMS crea índices para un punto de conexión de destino de OpenSearch Service, crea un índice para cada tabla desde el punto de conexión de origen. El costo de la creación de un índice de OpenSearch Service depende de varios factores. Estos factores son el número de índices creados, la cantidad total de datos en estos índices y la pequeña cantidad de metadatos que OpenSearch almacena para cada documento.

Configure el clúster de OpenSearch Service con recursos informáticos y de almacenamiento que sean adecuados para el ámbito de la migración. Le recomendamos que tenga en cuenta los factores siguientes, en función de la tarea de replicación que desee utilizar:

  • Para una carga de datos completa, considere la cantidad total de datos que va a migrar, así como la velocidad de la transferencia.

  • Para la replicación de cambios continuos, considere la frecuencia de las actualizaciones y los requisitos totales de latencia.

Asimismo, configure los ajustes del índice en el clúster de OpenSearch, prestando especial atención al número de documentos.

Configuración de tareas de carga completa con varios subprocesos

Para ayudar a aumentar la velocidad de la transferencia, AWS DMS admite una carga completa de multiprocesos a un clúster de destino de OpenSearch Service. AWS DMS admite estos multiprocesos con una configuración de tareas que incluye lo siguiente:

  • MaxFullLoadSubTasks: utilice esta opción para indicar el número máximo de tablas de origen que se pueden cargar en paralelo. DMS carga cada tabla en su índice de destino de OpenSearch Service correspondiente mediante una tarea secundaria dedicada. El valor predeterminado es 8, el valor máximo es 49.

  • ParallelLoadThreads: utilice esta opción para especificar el número de subprocesos que AWS DMS utiliza para cargar cada tabla en el índice de destino de OpenSearch Service. El valor máximo para un destino de OpenSearch Service es 32. Puede pedir que se incremente este límite máximo.

    nota

    Si no cambia ParallelLoadThreads desde su valor predeterminado (0), AWS DMS transfiere un solo registro a la vez. Este enfoque pone carga indebida en el clúster de OpenSearch Service. Asegúrese de que configura esta opción en 1 o más.

  • ParallelLoadBufferSize: utilice esta opción para especificar el número máximo de registros para almacenar en el búfer que los subprocesos de carga en paralelo utilizan para cargar datos en el destino de OpenSearch Service. El valor predeterminado es 50. El valor máximo es 1000. Utilice este parámetro con ParallelLoadThreads. ParallelLoadBufferSize es válido solo cuando hay más de un subproceso.

Para obtener más información acerca de cómo DMS carga un clúster de OpenSearch Service con múltiples subprocesos, consulte la publicación del blog de AWS Scale Amazon OpenSearch Service for AWS Database Migration Service migrations.

Configuración de tareas de carga de CDC con varios subprocesos

Puede mejorar el rendimiento de la captura de datos de cambio (CDC) para un clúster de destino de OpenSearch Service mediante la configuración de tareas para modificar el comportamiento de la llamada a la API de PutRecords. Para ello, puede especificar el número de subprocesos simultáneos, las colas por subproceso y el número de registros que se van a almacenar en un búfer mediante la configuración de tareas ParallelApply*. Suponga, por ejemplo, que desea realizar una carga de CDC y aplicar 32 subprocesos en paralelo. También desea acceder a 64 colas por subproceso, con 50 registros almacenados por búfer.

nota

La compatibilidad para el uso de la configuración de tareas ParallelApply* durante CDC en puntos de conexión de destino de Amazon OpenSearch Service está disponible en las versiones de AWS DMS 3.4.0 y superiores.

Para aumentar el rendimiento de CDC, AWS DMS admite esta configuración de las tareas:

  • ParallelApplyThreads: especifica el número de subprocesos simultáneos que utiliza AWS DMS durante una carga de CDC para insertar registros de datos en un punto de conexión de destino de OpenSearch Service. El valor predeterminado es cero (0) y el valor máximo es 32.

  • ParallelApplyBufferSize: especifica el número máximo de registros que se almacenan en cada cola del búfer para los subprocesos simultáneos que insertan datos en un punto de conexión de destino de OpenSearch Service durante una carga de CDC. El valor predeterminado es 100 y el máximo es 1000. Utilice esta opción cuando ParallelApplyThreads especifique más de un subproceso.

  • ParallelApplyQueuesPerThread: especifica el número de colas a las que accede cada subproceso para sacar registros de datos de las colas y generar una carga por lotes para un punto de conexión de OpenSearch Service durante el proceso de CDC.

Cuando se utiliza la configuración de tareas ParallelApply*, el valor predeterminado de partition-key-type es el valor de primary-key de la tabla, no el valor de schema-name.table-name.

Migración desde una tabla de base de datos relacional a un índice de OpenSearch Service

AWS DMS admite la migración de datos a tipos de datos escalares de OpenSearch Service. Al migrar desde una base de datos relacional como Oracle o MySQL a OpenSearch Service, puede reestructurar la manera de almacenar dichos datos.

AWS DMS admite los siguientes tipos de datos escalares de OpenSearch Service:

  • Booleano

  • Fecha

  • Float

  • Int

  • Cadena

AWS DMS convierte los datos de tipo Date en tipo String. Puede especificar la asignación personalizada para interpretar estas fechas.

AWS DMS no admite la migración de tipos de datos LOB.

Requisitos previos para utilizar Amazon OpenSearch Service como objetivo para AWS Database Migration Service

Antes de empezar a trabajar con una base de datos de OpenSearch Service como destino de AWS DMS, asegúrese de crear un rol de IAM (AWS Identity and Access Management). Este rol debe permitir a AWS DMS obtener acceso a los índices de OpenSearch Service en el punto de conexión de destino. El conjunto mínimo de permisos de acceso se muestra en la siguiente política de IAM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

El rol que utiliza para la migración a OpenSearch Service debe tener los siguientes permisos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "arn:aws:es:region:account-id:domain/domain-name/*" } ] }

En el ejemplo anterior, sustituya region por el Identificador de la región de AWS, account-id por el ID de cuenta de AWS y domain-name por el nombre del dominio de Amazon OpenSearch Service. Un ejemplo es arn:aws:es:us-west-2:123456789012:domain/my-es-domain.

Configuración de puntos de conexión al utilizar OpenSearch Service como destino para AWS DMS

Puede utilizar la configuración de punto de conexión para configurar la base de datos de destino de OpenSearch Service de forma similar al uso de atributos de conexión adicionales. Se especifican los ajustes cuando se crea el punto de conexión de destino mediante la consola de AWS DMS o mediante el comando create-endpoint en la AWS CLI, con la sintaxis JSON --elasticsearch-settings '{"EndpointSetting": "value", ...}'.

La siguiente tabla muestra la configuración de punto de conexión que puede utilizar con OpenSearch Service como destino.

Nombre de atributo Valores válidos Valor predeterminado y descripción

FullLoadErrorPercentage

Un número entero positivo mayor que 0, pero menor que 100.

10: para una tarea de carga completa, este atributo determina el umbral de errores permitidos antes de producirse un error en la tarea. Por ejemplo, suponga que hay 1 500 filas en el punto de enlace de origen y que este parámetro está establecido en 10. La tarea produce un error si AWS DMS encuentra más de 150 errores (10 por ciento de la fila "count") al escribir en el punto de enlace de destino.

ErrorRetryDuration

Un número entero positivo mayor que 0.

300: si se produce un error en el punto de enlace de destino, AWS DMS reintenta esta operación durante este número de segundos. De lo contrario, la tarea produce un error.

Limitaciones al utilizar Amazon OpenSearch Service como destino para AWS Database Migration Service

Al utilizar Amazon OpenSearch Service como destino se aplican las siguientes restricciones:

  • OpenSearch Service utiliza la asignación dinámica (conjetura automática) para determinar los tipos de datos que se utilizan para los datos migrados.

  • OpenSearch Service almacena cada documento con un ID único. A continuación, se muestra un ID de ejemplo.

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    Cada ID de documento tiene una longitud de 64 bytes, por lo que debe prever este requisito de almacenamiento. Por ejemplo, si migra 100 000 filas de un origen de AWS DMS, el índice de OpenSearch Service resultante requiere almacenamiento para 6 400 000 bytes adicionales.

  • Con OpenSearch Service, no puede realizar actualizaciones en los atributos de las claves principales. Esta restricción es importante cuando se utiliza la replicación continua con captura de datos de cambio (CDC), ya que puede resultar en la presencia de datos no deseados en el destino. En modo de CDC, las claves principales se asignan a valores de SHA256, que tienen 32 bytes. Estos valores se convierten en cadenas de 64 bytes legibles por el usuario y se utilizan como ID de documento de OpenSearch Service.

  • Si AWS DMS encuentra algún elemento que no se puede migrar, escribe mensajes de error en Registros de Amazon CloudWatch. Este comportamiento difiere del de otros puntos de enlace de destino de AWS DMS, que escriben los errores en una tabla de excepciones.

  • AWS DMS no admite la conexión a un clúster de Amazon ES que tenga habilitado un control de acceso detallado con un usuario maestro y una contraseña.

  • AWS DMS no es compatible con OpenSearch Service sin servidor.

  • OpenSearch Service no admite la escritura de datos en índices existentes previamente.

Tipos de datos de destino de Amazon OpenSearch Service

Cuando AWS DMS migra datos desde bases de datos heterogéneas, el servicio asigna los tipos de datos de la base de datos de origen a tipos de datos intermedios, llamados tipos de datos de AWS DMS. A continuación, el servicio asigna los tipos de datos intermedios a los tipos de datos de destino. La tabla siguiente muestra cada tipo de datos de AWS DMS y el tipo de datos al que se asigna en OpenSearch Service.

Tipos de datos de AWS DMS Tipo de datos de OpenSearch Service

Booleano

booleano

Fecha

string

Time

date

Marca de tiempo

date

INT4

entero

Real4

float

UINT4

entero

Para obtener más información sobre los tipos de datos de AWS DMS, consulte Tipos de datos de AWS Database Migration Service.