es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener datos de Neptune DB utilizando el cliente Gremlin Java en lote

Estoy tratando de obtener datos de AWS Neptune usando el cliente Apache TinkerPop Gremlin con RemoteConnection. Parece que next() de GraphTraversal recupera datos de LinkedBlockingQueue de ResultQueue y otro hilo de llamada de red encola los datos en LinkedBlockingQueue. Por lo tanto, incluso si no consumo todos los datos de la travesía, seguirá obteniendo el resultado completo de la consulta. Esta respuesta sugiere cómo next() de la consola Gremlin puede ayudar a obtener los datos requeridos en lugar de cargar todos los datos en la memoria. Pero ese no es el caso aquí. Intenté explorar el parámetro batchSize de RequestOptions pero eso tampoco ayuda.
¿Hay alguna manera de cargar solo los datos requeridos en la memoria por lotes (usando next(size)) en lugar de cargar todos los datos en la memoria de una vez usando el cliente Java? El ejemplo básico para conectarse a la base de datos de Neptune usando un cliente Java está aquí.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Si estás utilizando el cliente Apache TinkerPop Gremlin con RemoteConnection para obtener datos de AWS Neptune, parece ser que el método next() de GraphTraversal obtiene datos de la LinkedBlockingQueue de ResultQueue, mientras que otro hilo de llamada de red encola los datos en la LinkedBlockingQueue. Esto significa que incluso si no consumes todos los datos de la travesía, seguirá obteniendo el resultado completo de la consulta.

    Una solución sugerida en esta respuesta es utilizar el método next() de la consola Gremlin para obtener solo los datos necesarios, en lugar de cargar todos los datos en memoria de una vez. Sin embargo, esto puede no funcionar para tu situación.

    Puedes intentar explorar el parámetro batchSize de RequestOption, ya que puede ayudar a obtener los datos por lotes. Sin embargo, si esto no funciona, podrías intentar usar el método next(size) para obtener solo los datos necesarios por lotes, en lugar de cargar todos los datos en memoria de una vez.

    Puedes encontrar un ejemplo básico de cómo conectarse a Neptune DB utilizando un cliente Java aquí.

Comments are closed.