Solução de problemas da pesquisa de texto completo do Neptune - Amazon Neptune

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á.

Solução de problemas da pesquisa de texto completo do Neptune

nota

Se você habilitou o controle de acesso refinado no cluster do OpenSearch, também precisará habilitar a autenticação do IAM no banco de dados Neptune.

Para diagnosticar problemas com a replicação do Neptune para o OpenSearch, consulte o CloudWatch Logs para a função do Lambda do instrumento de sondagem. Esses logs fornecem detalhes sobre o número de registros lidos no fluxo e o número de registros replicados com êxito no OpenSearch.

Também é possível alterar o nível de LOGGING para a função do Lambda ao alterar a variável de ambiente LoggingLevel.

nota

Com LoggingLevel definido como DEBUG, é possível visualizar detalhes adicionais, como registros de fluxo descartados e o motivo pelo qual cada um foi descartado, enquanto replica dados pelo StreamPoller do Neptune para o OpenSearch. Isso poderá ser útil se você descobrir que faltam registros.

A aplicação de consumidor de fluxos do Neptune publica duas métricas no CloudWatch que também podem ajudar a diagnosticar problemas:

  • StreamRecordsProcessed: o número de registros processados pela aplicação por unidade de tempo. Útil no monitoramento da taxa de execução do aplicativo.

  • StreamLagTime: a diferença de tempo em milissegundos entre a hora atual e a hora de confirmação de um registro de fluxo que está sendo processado. Esta métrica mostra o atraso do aplicativo de consumidor.

Além disso, todas as métricas relacionadas ao processo de replicação são expostas em um painel no CloudWatch com o mesmo nome ApplicationName fornecido ao instanciar a aplicação usando o modelo do CloudWatch.

Também é possível criar um alarme do CloudWatch que seja acionado sempre que a sondagem falhar mais de duas vezes seguidas. Faça isso ao definir o campo CreateCloudWatchAlarm como true ao instanciar o aplicativo. Depois especifique os endereços de e-mail que deseja notificar quando o alarme for acionado.

Solução de problemas de um processo que falha ao ler registros do fluxo

Se um processo falhar ao ler registros do fluxo, certifique-se de que:

  • O fluxo esteja habilitado no cluster.

  • O endpoint do fluxo do Neptune esteja no formato correto:

    • Para Gremlin ou openCypher: https://your cluster endpoint:your cluster port/propertygraph/stream ou o alias, https://your cluster endpoint:your cluster port/pg/stream.

    • Para o SPARQL: https://your cluster endpoint:your cluster port/sparql/stream.

  • O endpoint do DynamoDB esteja configurado para a VPC.

  • O monitoramento do endpoint está configurado para as sub-redes da VPC.

Solução de problemas de um processo que falha ao gravar dados no OpenSearch

Se um processo falhar ao gravar registros no OpenSearch, certifique-se de que:

  • Sua versão do Elasticsearch seja 7.1 ou posterior, ou Opensearch 2.3 e posterior.

  • O OpenSearch possa ser acessado pela função do Lambda do instrumento de sondagem na VPC.

  • A política de segurança vinculada ao OpenSearch permita a entrada de solicitações HTTP/HTTPS de entrada.

Corrigir problemas fora de sincronia entre o Neptune e o OpenSearch em uma configuração de replicação existente

É possível usar as etapas abaixo para sincronizar o banco de dados Neptune e o domínio do OpenSearch com os dados mais recentes em caso de problemas de falta de sincronia entre eles resultantes de uma corrupção de dados ou ExpiredStreamException.

Observe que essa abordagem exclui todos os dados no domínio do OpenSearch e os sincroniza novamente do estado atual do banco de dados Neptune, portanto, nenhum dado precisa ser recarregado no banco de dados Neptune.

  1. Desabilite o processo de replicação conforme descrito em Disabling (pausing) the stream poller process.

  2. Exclua o índice do Neptune no domínio do OpenSearch usando o seguinte comando:

    curl -X DELETE "(your OpenSearch endpoint)/amazon_neptune"
  3. Criar um clone do banco de dados (consulte Database Cloning in Neptune).

  4. Obtenha o eventID mais recente dos fluxos no banco de dados clonado executando um comando desse tipo no endpoint da API de fluxos (consulte Calling the Neptune Streams REST API para obter mais informações):

    curl "https://(your neptune endpoint):(port)/(propertygraph or sparql)/stream?iteratorType=LATEST"

    Anote os valores nos campos commitNum e opNum no objeto lastEventId na resposta.

  5. Use a ferramenta export-neptune-to-elasticsearch no github para realizar uma sincronização única do banco de dados clonado para o domínio do OpenSearch.

  6. Acesse a tabela do DynamoDB para ver a pilha de replicação. O nome da tabela será o Nome da aplicação que você especificou no modelo do CloudFormation (o padrão é NeptuneStream) com um sufixo -LeaseTable. Em outras palavras, o nome padrão da tabela é NeptuneStream-LeaseTable.

    É possível examinar as linhas da tabela com a verificação porque só deve haver uma linha na tabela. Faça as seguintes alterações usando os valores commitNum e opNum que você registrou acima:

    • Altere o valor do campo checkpoint na tabela para o valor que você anotou para commitNum.

    • Altere o valor do campo checkpointSubSequenceNumber na tabela para o valor que você anotou para opNum.

  7. Reabilite o processo de replicação conforme descrito em Re-enabling the stream poller process.

  8. Exclua o banco de dados clonado e a pilha CloudFormation criada para a ferramenta export-neptune-to-elasticsearch.