Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Lidar com alterações significativas no índice

Modo de foco
Lidar com alterações significativas no índice - Amazon DynamoDB

O OpenSearch pode adicionar dinamicamente novos atributos ao índice. No entanto, depois que o modelo de mapeamento for definido para uma chave específica, você precisará tomar medidas adicionais para alterá-lo. Além disso, se a alteração exigir o reprocessamento de todos os dados na tabela do DynamoDB, você precisará tomar medidas para iniciar uma nova exportação.

nota

Em todas essas opções, você ainda poderá ter problemas se sua tabela do DynamoDB tiver conflitos de tipo com o modelo de mapeamento especificado. Certifique-se de ter uma fila de mensagens não entregues (DLQ) habilitada (mesmo em desenvolvimento). Isso facilita a compreensão do que pode estar errado com o registro que causa um conflito quando ele está sendo indexado no índice no OpenSearch.

Como funciona

Tenha uma visão geral rápida das ações realizadas ao lidar com alterações significativas no índice. Veja os procedimentos passo a passo nas seções a seguir.

  • Parar e iniciar o pipeline: essa opção redefine o estado do pipeline, e o pipeline será reiniciado com uma nova exportação completa. Ela não é destrutiva e, portanto, não exclui o índice nem qualquer dado no DynamoDB. Se você não criar um índice antes de fazer isso, poderá ver um grande número de erros de conflitos de versão porque a exportação tentará inserir documentos mais antigos do que a _version atual no índice. É possível ignorar esses erros com segurança. Você não será cobrado pelo pipeline enquanto ele estiver parado.

  • Atualizar o pipeline: essa opção atualiza a configuração no pipeline com uma abordagem azul/verde, sem perder nenhum estado. Se você fizer alterações significativas no pipeline (como adicionar novas rotas, índices ou chaves aos índices existentes), talvez seja necessário fazer uma redefinição completa do pipeline e recriar o índice. Essa opção não realiza uma exportação completa.

  • Excluir e recriar o índice: essa opção remove os dados e as configurações de mapeamento do índice. Você deve fazer isso antes de fazer qualquer alteração significativa nos mapeamentos. Isso interromperá qualquer aplicação que dependa do índice até que este seja recriado e sincronizado. A exclusão do índice não inicia uma nova exportação. Você deve excluir o índice somente depois de atualizar o pipeline. Caso contrário, o índice poderá ser recriado antes de você atualizar suas configurações.

Excluir o índice e redefinir o pipeline (opção centrada no pipeline)

Esse método geralmente é a opção mais rápida se você ainda estiver no desenvolvimento. Você excluirá o índice no OpenSearch Service e, depois, interromperá e iniciará o pipeline para iniciar uma nova exportação de todos os dados. Isso garante que não haja conflitos de modelos de mapeamento com índices existentes e nenhuma perda de dados de uma tabela processada incompleta.

  1. Pare o pipeline por meio do AWS Management Console, ou usando a operação de API StopPipeline com a AWS CLI ou um SDK.

  2. Atualize a configuração do pipeline com suas novas alterações.

  3. Exclua o índice no OpenSearch Service, seja por meio de uma chamada de API REST ou do painel do OpenSearch.

  4. Pare o pipeline por meio do console ou usando a operação de API StartPipeline com a AWS CLI ou um SDK.

    nota

    Isso inicia uma nova exportação completa, o que acarretará custos adicionais.

  5. Monitore quaisquer problemas inesperados porque uma nova exportação é gerada para criar o índice.

  6. Confirme se o índice corresponde às suas expectativas no OpenSearch Service.

Depois que a exportação for concluída e ela retomar a leitura do fluxo, os dados da tabela do DynamoDB agora estarão disponíveis no índice.

Recriar o índice e redefinir o pipeline (opção centrada no pipeline)

Esse método funcionará bem se você precisar fazer várias iterações no design do índice no OpenSearch Service antes de retomar o pipeline do DynamoDB. Isso pode ser útil para o desenvolvimento quando você deseja iterar rapidamente seus padrões de pesquisa e não esperar que novas exportações sejam concluídas entre cada iteração.

  1. Pare o pipeline por meio do AWS Management Console ou chamando a operação de API StopPipeline com a AWS CLI ou um SDK.

  2. Exclua e recrie o índice no OpenSearch com o modelo de mapeamento que você deseja usar. Você pode inserir manualmente alguns dados de amostra para confirmar que suas pesquisas estão funcionando conforme o esperado. Se os dados de amostra entrarem em conflito com qualquer dado do DynamoDB, não se esqueça de excluí-los antes de passar para a próxima etapa.

  3. Se você tiver um modelo de indexação no pipeline, remova-o ou substitua-o por aquele que você já criou no OpenSearch Service. Garanta que o nome do índice corresponda ao nome no pipeline.

  4. Inicie o pipeline por meio do console ou chamando a operação de API StartPipeline com a AWS CLI ou um SDK.

    nota

    Isso iniciará uma nova exportação completa, o que acarretará custos adicionais.

  5. Monitore quaisquer problemas inesperados porque uma nova exportação é gerada para criar o índice.

Depois que a exportação for concluída e ela retomar a leitura do fluxo, os dados da tabela do DynamoDB agora estarão disponíveis no índice.

Criar um índice e um coletor (opção on-line)

Esse método funcionará bem se você precisar atualizar o modelo de mapeamento, mas estiver usando seu índice na produção. Isso cria um índice totalmente novo, para o qual você precisará mover a aplicação depois de sincronizado e validado.

nota

Isso criará outro consumidor no fluxo. Isso pode ser um problema caso você também tenha outros consumidores, como AWS Lambda ou tabelas globais. Talvez seja necessário pausar as atualizações do pipeline existente a fim de criar capacidade para carregar o novo índice.

  1. Crie um pipeline com novas configurações e um nome de índice diferente.

  2. Monitore o novo índice em busca de problemas inesperados.

  3. Troque a aplicação pelo novo índice.

  4. Pare e exclua o pipeline antigo depois de validar se tudo está funcionando corretamente.

Práticas recomendadas para evitar e depurar conflitos de tipos

  • Sempre use uma fila de mensagens não entregues (DLQ) para facilitar a depuração quando há conflitos de tipos.

  • Sempre use um modelo de índice com mapeamentos e defina include_keys. Embora o OpenSearch Service associe dinamicamente novas chaves, isso pode causar problemas com comportamentos inesperados (como esperar que algo seja um GeoPoint, mas é criado como string ou object) ou erros (como ter um number que seja uma mistura de valores long e float).

  • Se precisar manter o índice existente funcionando na produção, também poderá substituir qualquer uma das etapas anteriores de exclusão do índice simplesmente renomeando o índice no arquivo de configuração do pipeline. Isso cria um índice totalmente novo. Depois, a aplicação precisará ser atualizada para apontar para o novo índice depois de concluído.

  • Se você tiver um problema de conversão de tipo que você corrija com um processador, poderá testar isso com UpdatePipeline. Para isso, você precisará interromper e iniciar ou processar as filas de mensagens não entregues para corrigir quaisquer documentos com erros ignorados anteriormente.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.