Utilizar um cluster do Amazon OpenSearch Service como destino do AWS Database Migration Service - AWS Database Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Utilizar um cluster do Amazon OpenSearch Service como destino do AWS Database Migration Service

É possível utilizar o AWS DMS para migrar dados para o Amazon OpenSearch Service (OpenSearch Service). O OpenSearch Service é um serviço gerenciado que facilita a implantação, a operação e a escala de clusters do OpenSearch Service.

No OpenSearch Service, você trabalha com índices e documentos. Um índice é uma coleção de documentos e um documento é um objeto JSON que contém valores escalares, matrizes e outros objetos. O OpenSearch fornece uma linguagem de consulta baseada em JSON, para que você possa consultar dados em um índice e recuperar os documentos correspondentes.

Quando o AWS DMS cria índices para um endpoint de destino do OpenSearch Service, ele cria um índice para cada tabela do endpoint de origem. O custo da criação um índice do OpenSearch Service depende de vários fatores: Do número de índices criados, da quantidade total de dados nesses índices e da pequena quantidade de metadados armazenados que o OpenSearch armazena de cada um deles.

Configure o cluster do OpenSearch Service com recursos de computação e de armazenamento apropriados para o escopo da migração. É recomendável considerar os seguintes fatores, dependendo da tarefa de replicação a ser utilizada:

  • Para uma carga máxima de dados, considere a quantidade total de dados a ser migrada e a velocidade da transferência.

  • Para replicar alterações contínuas, considere a frequência das atualizações e os requisitos de latência para todo o processo.

Configure também as configurações de índice no cluster do OpenSearch, prestando atenção à contagem de documentos.

Configurações da tarefa de carga completa multithreaded

Para ajudar a aumentar a velocidade da transferência, o AWS DMS é compatível com uma carga máxima multithreaded para um cluster de destino do OpenSearch Service. O AWS DMS é compatível com esse multithreading com configurações de tarefas que incluem o seguinte:

  • MaxFullLoadSubTasks: utilize esta opção para indicar o número máximo de tabelas de origem a serem carregadas em paralelo. O DMS carrega cada tabela no índice de destino do OpenSearch Service correspondente utilizando uma subtarefa dedicada. O padrão é 8; o valor máximo é 49.

  • ParallelLoadThreads: utilize esta opção para especificar o número de threads que AWS DMS utiliza para carregar cada tabela no índice de destino do OpenSearch Service. O valor máximo de um destino do OpenSearch Service é 32. É possível solicitar o aumento desse limite máximo.

    nota

    Se você não alterar ParallelLoadThreads de seu padrão (0), o AWS DMS transferirá um único registro por vez. Essa abordagem coloca uma carga indevida no cluster do OpenSearch Service. Defina essa opção como 1 ou mais.

  • ParallelLoadBufferSize: utilize esta opção para especificar o número máximo de registros a ser armazenado no buffer utilizado pelos threads de carga paralela para o destino do OpenSearch Service. O valor padrão é 50. O valor máximo é 1.000. Utilize essa configuração com ParallelLoadThreads. ParallelLoadBufferSize é válido somente quando há mais de um thread.

Para obter mais informações sobre como o DMS carrega um cluster do OpenSearch Service utilizando multithreading, consulte a publicação do blog da AWS Escalar o Amazon OpenSearch Service para migrações do AWS Database Migration Service.

Configurações da tarefa de carga de CDC multithreaded

É possível melhorar o desempenho da captura de dados de alteração (CDC) para um cluster de destino do OpenSearch Service utilizando as configurações da tarefa para modificar o comportamento da chamada da API PutRecords. Para fazer isso, especifique o número de threads simultâneos, as filas por thread e o número de registros a serem armazenados em um buffer utilizando as configurações da tarefa ParallelApply*. Por exemplo, suponha que você queira executar uma carga de CDC e aplicar 32 threads em paralelo. Você também quer acessar 64 filas por thread, com 50 registros armazenados por buffer.

nota

Compatibilidade com a utilização de configurações da tarefa ParallelApply* durante a CDC para endpoints de destino do Amazon OpenSearch Service está disponível nas versões 3.4.0 e posteriores do AWS DMS.

Para promover o desempenho da CDC, o AWS DMS é compatível com estas configurações de tarefa:

  • ParallelApplyThreads: especifica o número de threads simultâneos que AWS DMS utiliza durante uma carga de CDC para enviar registros de dados para um endpoint de destino do OpenSearch Service. O valor padrão é zero (0) e o valor máximo é 32.

  • ParallelApplyBufferSize: especifica o número máximo de registros a serem armazenados em cada fila de buffer para que os threads simultâneos enviem para um endpoint de destino do OpenSearch Service durante uma carga de CDC. O valor padrão é 100 e o valor máximo é 1.000. Utilize essa opção quando ParallelApplyThreads especificar mais de um thread.

  • ParallelApplyQueuesPerThread: especifica o número de filas que cada thread acessa para extrair registros de dados das filas e gerar uma carga em lote para um endpoint do OpenSearch Service durante a CDC.

Ao utilizar configurações da tarefa ParallelApply*, partition-key-type padrão é a primary-key da tabela, não schema-name.table-name.

Migrar de uma tabela de banco de dados relacional para um índice do OpenSearch Service

O AWS DMS é compatível com a migração de dados para tipos de dados escalares do OpenSearch Service. Ao migrar de um banco de dados relacional, como o Oracle ou o MySQL, para o OpenSearch Service, convém reestruturar a forma como você armazena esses dados.

O AWS DMS é compatível com os seguintes tipos de dados escalares do OpenSearch Service:

  • Booleano

  • Data

  • Float

  • Int

  • String

O AWS DMS converte dados do tipo Date no tipo String. É possível especificar o mapeamento personalizado para interpretar essas datas.

O AWS DMS não é compatível com a migração de tipos de dados de LOB.

Pré-requisitos para utilizar o Amazon OpenSearch Service como destino do AWS Database Migration Service

Antes de começar a trabalhar com um banco de dados OpenSearch Service como destino do AWS DMS, crie um perfil do AWS Identity and Access Management (IAM). Esse perfil deve permitir que o AWS DMS acesse os índices do OpenSearch Service no endpoint de destino. O conjunto mínimo de permissões de acesso é mostrado na seguinte política do IAM.

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

O perfil utilizado para a migração para o OpenSearch Service deve ter as seguintes permissões.

{ "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/*" } ] }

No exemplo anterior, substitua region pelo identificador da região da AWS, account-id pelo seu ID de conta da AWS, e domain-name pelo nome do domínio do Amazon OpenSearch Service. Um exemplo é arn:aws:es:us-west-2:123456789012:domain/my-es-domain

Configurações de endpoint ao utilizar o OpenSearch Service como um destino do AWS DMS

É possível utilizar as configurações de endpoint para configurar o destino do OpenSearch Service de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de destino utilizando o console do AWS DMS ou o comando create-endpoint na AWS CLI, com a sintaxe --elasticsearch-settings '{"EndpointSetting": "value", ...}' do JSON.

A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o OpenSearch Service como destino.

Nome do atributo Valores válidos Valor padrão e descrição

FullLoadErrorPercentage

Um inteiro positivo maior que 0, mas não maior que 100.

10: para uma tarefa de carga máxima, esse atributo determina o limite de erros permitidos antes que ocorra uma falha na tarefa. Por exemplo, suponha que haja 1.500 linhas no endpoint de origem e o parâmetro foi definido como 10. A tarefa vai falhar se o AWS DMS encontrar mais de 150 erros (10% do total de linhas) ao gravar no endpoint de destino.

ErrorRetryDuration

Um inteiro positivo maior do que 0.

300 – Se ocorrer um erro no endpoint de destino, o AWS DMS tentará novamente ao longo deste número de segundos. Caso contrário, a tarefa apresentará falha.

Limitações ao utilizar o Amazon OpenSearch Service como destino do AWS Database Migration Service

Aplicam-se as seguintes limitações ao utilizar o Amazon OpenSearch Service como destino:

  • O OpenSearch Service utiliza mapeamento dinâmico (previsão automática) para determinar os tipos de dados a serem utilizados para os dados da migração.

  • O OpenSearch Service armazena cada documento com um ID exclusivo. Veja um exemplo a seguir:

    "_id": "D359F8B537F1888BC71FE20B3D79EAE6674BE7ACA9B645B0279C7015F6FF19FD"

    Cada ID de documento tem 64 bytes de comprimento; lembre-se de que você precisará desse espaço para armazenamento. Por exemplo, se você migrar 100.000 linhas de uma origem do AWS DMS, o índice do OpenSearch Service resultante precisará de armazenamento para 6.400.000 bytes adicionais.

  • Com o OpenSearch Service, não é possível atualizar os atributos da chave primária. Essa restrição é importante quando se utiliza a replicação contínua com a captura de dados de alteração (CDC), pois ela pode gerar dados indesejados no destino. No modo CDC, as chaves primárias são mapeadas para os valores de SHA256, que têm 32 bytes de comprimento. Esses são convertidos em strings de 64 bytes legíveis por seres humanos e utilizados como IDs de documento do OpenSearch Service.

  • Se encontrar itens que não podem ser migrados, o AWS DMS gravará as mensagens de erro no Amazon CloudWatch Logs. Esse comportamento é diferente do de outros endpoints de destino do AWS DMS, que gravam os erros em uma tabela de exceções.

  • O AWS DMS não é compatível com a conexão a um cluster do Amazon ES que tenha o controle de acesso refinado ativado com usuário mestre e senha.

  • O AWS DMS não é compatível com o OpenSearch Service com tecnologia sem servidor.

  • O OpenSearch Service não é compatível com a gravação de dados em índices preexistentes.

Tipos de dados de destino do Amazon OpenSearch Service.

Quando o AWS DMS migra os dados de bancos de dados heterogêneos, o serviço mapeia os tipos de dados do banco de dados de origem para tipos de dados intermediários, chamados de tipos de dados do AWS DMS. Em seguida, o serviço mapeia os tipos de dados intermediários para os tipos de dados de destino. A tabela a seguir mostra cada tipo de dados do AWS DMS e o tipo para o qual ele mapeia no OpenSearch Service.

Tipo de dados do AWS DMS Tipo de dados do OpenSearch Service

Booleano

booleano

Data

string

Time

date

Timestamp

date

INT4

integer

Real4

float

UINT4

integer

Para obter mais informações sobre os tipos de dados do AWS DMS, consulte Tipos de dados do AWS Database Migration Service.