View a markdown version of this page

Utilizar un clúster OpenSearch de Amazon 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.

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

Puedes usarlo AWS DMS para migrar datos a Amazon OpenSearch Service (OpenSearch Service). OpenSearch El servicio es un servicio gestionado que facilita la implementación, el funcionamiento y el escalado de un clúster OpenSearch de servicios.

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

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

Configure su clúster de OpenSearch servicios con los recursos de procesamiento y almacenamiento que sean adecuados para el alcance 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.

Además, configura los ajustes de índice de tu OpenSearch clúster, prestando especial atención al recuento de documentos.

Configuración de tareas de carga completa con varios subprocesos

Para ayudar a aumentar la velocidad de la transferencia, AWS DMS admite la carga completa de subprocesos múltiples en un clúster de destino del OpenSearch servicio. AWS DMS admite este subprocesamiento múltiple con configuraciones de tareas que incluyen 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 objetivos de OpenSearch servicio correspondiente mediante una subtarea 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 se AWS DMS utilizan para cargar cada tabla en su índice de objetivos OpenSearch de servicio. El valor máximo para un objetivo OpenSearch de servicio 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 supone una carga excesiva para su clúster OpenSearch de servicios. 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 que se almacenarán en el búfer y que los subprocesos de carga paralela utilizan para cargar datos en el destino del OpenSearch servicio. 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 sobre cómo DMS carga un clúster de OpenSearch servicios mediante subprocesos múltiples, consulte la entrada del AWS blog Scale Amazon OpenSearch Service for migrations. AWS Database Migration Service

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

Puede mejorar el rendimiento de la captura de datos de cambios (CDC) para un clúster objetivo de OpenSearch servicio mediante la configuración de las tareas para modificar el comportamiento de la llamada a la API. 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 con el uso de la configuración de las ParallelApply* tareas durante los CDC para los puntos finales de Amazon OpenSearch Service está disponible en AWS DMS las versiones 3.4.0 y superiores.

Para promover el desempeño de los CDC, AWS DMS admite la siguiente configuración de tareas:

  • ParallelApplyThreads— Especifica la cantidad de subprocesos simultáneos que se AWS DMS utilizan durante una carga de los CDC para enviar los registros de datos a un punto final del OpenSearch servicio. El valor predeterminado es cero (0) y el valor máximo es 32.

  • ParallelApplyBufferSize— Especifica la cantidad máxima de registros que se deben almacenar en cada cola de búfer para que los subprocesos simultáneos se envíen a un punto final del OpenSearch servicio durante una carga de los 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 eliminar los registros de datos de las colas y generar una carga por lotes para un punto final del servicio durante el CDC. OpenSearch

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 de una tabla de base de datos relacional a un índice de servicio OpenSearch

AWS DMS admite la migración de datos a los tipos de datos escalares de OpenSearch Service. Al migrar de una base de datos relacional como Oracle o MySQL a OpenSearch Service, es posible que desee reestructurar la forma en que almacena estos datos.

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

  • Booleano

  • Date

  • Flotante

  • Int

  • Cadena

AWS DMS convierte datos de tipo Date en datos de 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 usar Amazon OpenSearch Service como objetivo para AWS Database Migration Service

Antes de empezar a trabajar con una base de datos del OpenSearch Servicio como objetivo AWS DMS, asegúrate de crear un rol AWS Identity and Access Management (IAM). Este rol debería permitir AWS DMS acceder a los índices del OpenSearch servicio en el punto final de destino. El conjunto mínimo de permisos de acceso se muestra en la siguiente política de IAM.

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

El rol que utilice para la migración al OpenSearch Servicio debe tener los siguientes permisos.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttpDelete", "es:ESHttpGet", "es:ESHttpHead", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": "*" } ] }

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

Configuración del punto final al usar el OpenSearch Servicio como destino para AWS DMS

Puede usar la configuración del punto final para configurar la base de datos de destino del OpenSearch servicio de forma similar a usar atributos de conexión adicionales. La configuración se especifica al crear el punto final de destino mediante la AWS DMS consola o mediante el create-endpoint comando de AWS CLI, con la sintaxis --elasticsearch-settings '{"EndpointSetting": "value", ...}' JSON.

La siguiente tabla muestra la configuración del punto final que puede usar con el OpenSearch servicio 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. Luego, la tarea falla si AWS DMS detecta más de 150 errores (el 10 por ciento del número de filas) al escribir en el punto final de destino.

ErrorRetryDuration

Un número entero positivo mayor que 0.

300 — Si se produce un error en el punto final de destino, AWS DMS vuelve a intentarlo durante este número de segundos. De lo contrario, la tarea produce un error.

UseNewMappingType

true o false

false, pero para trabajar con opensearch v2.x, debe configurarse en true.

Limitaciones a la hora de utilizar Amazon OpenSearch Service como objetivo para AWS Database Migration Service

Cuando se utiliza Amazon OpenSearch Service como destino, se aplican las siguientes limitaciones:

  • OpenSearch El servicio utiliza un mapeo dinámico (estimación automática) para determinar los tipos de datos que se van a utilizar para los datos migrados.

  • OpenSearch El servicio almacena cada documento con un identificador ú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 migras 100 000 filas desde una AWS DMS fuente, el índice de OpenSearch servicio resultante necesitará almacenar 6 400 000 bytes adicionales.

  • Con OpenSearch Service, no puedes actualizar los atributos de la clave principal. 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. Se convierten en cadenas de 64 bytes legibles por humanos y se utilizan como identificadores de documentos OpenSearch de servicio.

  • Si AWS DMS encuentra algún elemento que no se pueda migrar, escribe los mensajes de error en Amazon CloudWatch Logs. Este comportamiento difiere del de otros puntos finales de AWS DMS destino, 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 activado el control de Fine-grained acceso con un usuario y una contraseña maestros.

  • AWS DMS no es compatible con OpenSearch Service Serverless.

  • A partir de AWS DMS la versión 3.1, el OpenSearch servicio admite la escritura de datos en índices preexistentes.

  • La configuración de la tarea de replicación no TargetTablePrepMode:TRUNCATE_BEFORE_LOAD se admite para su uso con un punto final de OpenSearch destino.

  • Al migrar datos a Amazon Elasticsearch utilizando AWS DMS, los datos de origen deben tener una clave principal o una columna de identificación única. Si los datos de origen no tienen una clave principal o un identificador único, debe definir uno mediante la regla de transformación define-primary-key.

Tipos de datos de destino para Amazon Service OpenSearch

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

AWS DMS tipo de datos OpenSearch Tipo de datos de servicio

Booleano

booleano

Fecha

cadena

Tiempo

date

Marca temporal

date

INT4

entero

Real4

float

UINT4

entero

Para obtener información adicional sobre AWS DMS los tipos de datos, consulteTipos de datos de AWS Database Migration Service.