Solución de problemas de búsqueda de texto completo de Neptune - Amazon Neptune

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.

Solución de problemas de búsqueda de texto completo de Neptune

nota

Si ha habilitado el control de acceso detallado en el clúster de OpenSearch, también debe habilitar la autenticación de IAM en la base de datos de Neptune.

Para diagnosticar problemas de replicación de Neptune a OpenSearch, consulte los registros de CloudWatch de la función de Lambda del sondeador. Estos registros proporcionan detalles sobre el número de registros leídos de la transmisión y el número de registros replicados correctamente en OpenSearch.

También puede cambiar el nivel de REGISTRO para la función de Lambda al cambiar la variable del entorno LoggingLevel.

nota

Si LoggingLevel está establecido en DEBUG, puede ver detalles adicionales, como los registros de transmisiones eliminados y el motivo por el que se han eliminado, mientras replica los datos mediante StreamPoller desde Neptune a OpenSearch. Esto puede resultar útil si descubre que le faltan registros.

La aplicación de consumidor de transmisiones de Neptune publica dos métricas en CloudWatch que también pueden ayudarle a diagnosticar problemas:

  • StreamRecordsProcessed – El número de registros procesados por la aplicación por unidad de tiempo. Útil en el seguimiento de la tasa de ejecución de la aplicación.

  • StreamLagTime – El tiempo que transcurre en milisegundos entre la hora actual y la hora de confirmación de un registro de transmisión que se está procesando. Esta métrica muestra hasta qué punto la aplicación del consumidor se queda rezagada.

Además, todas las métricas relacionadas con el proceso de replicación se muestran en un panel en CloudWatch con el mismo nombre que el ApplicationName proporcionado al crear una instancia de la aplicación mediante la plantilla de CloudWatch.

También puede optar por crear una alarma de CloudWatch que se active cuando el sondeo falle más de dos veces seguidas. Para ello, establezca el campo CreateCloudWatchAlarm en true cuando cree una instancia para la aplicación. A continuación, especifique las direcciones de correo electrónico a las que desea que se le notifique cuando se active la alarma.

Solución de problemas de un proceso que falla al leer los registros de la secuencia

Si un proceso falla al leer los registros del flujo, asegúrese de que tenga lo siguiente:

  • El flujo está habilitado en el clúster.

  • El punto de conexión de la transmisión de Neptune está en el formato correcto:

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

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

  • El punto de conexión de DynamoDB está configurado para la VPC.

  • El punto de conexión de monitorización está configurado para las subredes de VPC.

Solución de problemas de un proceso que falla al escribir datos en OpenSearch

Si un se produce un error al escribir los registros en OpenSearch, asegúrese de lo siguiente:

  • Que cuente con la versión de Elasticsearch 7.1 o posterior; Opensearch 2.3 y versiones posteriores.

  • Que se pueda acceder a OpenSearch desde la función de Lambda del sondeador en la VPC.

  • Que la política de seguridad adjunta a OpenSearch permita solicitudes HTTP/HTTPS entrantes.

Solución de problemas de desincronización entre Neptune y OpenSearch en una configuración de replicación existente

Puede seguir los pasos que se indican a continuación para volver a sincronizar una base de datos de Neptune y un dominio de OpenSearch con los datos más recientes en caso de que se produzcan problemas de desincronización entre ellos como resultado de una ExpiredStreamException o daños en los datos.

Tenga en cuenta que este enfoque elimina todos los datos del dominio OpenSearch y los vuelve a sincronizar con el estado actual de la base de datos de Neptune, por lo que no es necesario volver a cargar ningún dato en la base de datos de Neptune.

  1. Deshabilite el proceso de replicación, tal y como se describe en Deshabilitar (pausar) el proceso del sondeador de transmisiones.

  2. Elimine el índice de Neptune en el dominio OpenSearch mediante el siguiente comando:

    curl -X DELETE "(your OpenSearch endpoint)/amazon_neptune"
  3. Cree un clon de la base de datos (consulte Database Cloning in Neptune).

  4. Obtenga el último eventID de los flujos de la base de datos clonada mediante la ejecución de un comando de este tipo en el punto de conexión de la API de flujos (consulte Calling the Neptune Streams REST API para obtener más información):

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

    Anote los valores de los campos commitNum y opNum del objeto lastEventId en la respuesta.

  5. Use la herramienta export-neptune-to-elasticsearch en github para realizar una sincronización única desde la base de datos clonada al dominio de OpenSearch.

  6. Vaya a la tabla de DynamoDB de la pila de replicación. El nombre de la tabla será el nombre de la aplicación que haya especificado en la plantilla AWS CloudFormation (el nombre predeterminado es NeptuneStream) con un sufijo -LeaseTable. Es decir, el nombre de la tabla predeterminado es NeptuneStream-LeaseTable.

    Realice un escaneo para explorar las filas de la tabla, ya que solo debe haber una fila en la tabla. Realice los siguientes cambios con los valores commitNum y opNum que ha registrado anteriormente:

    • Cambie el valor del campo checkpoint de la tabla por el valor que ha anotado para commitNum.

    • Cambie el valor del campo checkpointSubSequenceNumber de la tabla por el valor que ha anotado para opNum.

  7. Vuelva a habilitar el proceso de replicación, tal y como se describe en Volver a habilitar el proceso del sondeador de transmisiones.

  8. Elimine la base de datos clonada y la pila de AWS CloudFormation creada para la herramienta export-neptune-to-elasticsearch.