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.
Una forma alternativa de conectarse a la consola de Gremlin
Inconvenientes del enfoque de conexión normal
La forma más común de conectarse a la consola de Gremlin es la que hemos explicado anteriormente, utilizando comandos como estos en el símbolo del sistema de gremlin>:
gremlin> :remote connect tinkerpop.server conf/(file name).yaml gremlin> :remote console
Esto funciona bien y permite enviar consultas a Neptune. Sin embargo, saca del bucle al motor de scripts Groovy, por lo que Neptune trata todas las consultas como puras de Gremlin. Esto significa que los siguientes formularios de consulta fallan:
gremlin> 1 + 1 gremlin> x = g.V().count()
Lo más parecido a utilizar una variable cuando se está conectado de esta forma es utilizar la variable result que mantiene la consola y enviar la consulta utilizando :>, de esta forma:
gremlin> :remote console ==>All scripts will now be evaluated locally - type ':remote console' to return to remote mode for Gremlin Server - [krl-1-cluster.cluster-ro-cm9t6tfwbtsr.us-east-1.neptune.amazonaws.com/172.31.19.217:8182] gremlin> :> g.V().count() ==>4249 gremlin> println(result) [result{object=4249 class=java.lang.Long}] gremlin> println(result['object']) [4249]
Una forma diferente de conectarse
También puede conectarse a la consola de Gremlin de una forma diferente, que tal vez le parezca más agradable, como esta:
gremlin> g = traversal().withRemote('conf/neptune.properties')
Aquí neptune.properties toma esta forma:
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection gremlin.remote.driver.clusterFile=conf/my-cluster.yaml gremlin.remote.driver.sourceName=g
El archivo my-cluster.yaml debería ser similar a esto:
hosts: [my-cluster-abcdefghijk.us-east-1.neptune.amazonaws.com] port: 8182 serializer: { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV1, config: { serializeResultToString: false } } connectionPool: { enableSsl: true }
nota
Los serializadores se trasladaron del módulo gremlin-driver al nuevo módulo gremlin-util de la versión 3.7.0. El paquete cambió de org.apache.tinkerpop.gremlin.driver.ser a org.apache.tinkerpop.gremlin.util.ser.
Configurar la conexión de la consola de Gremlin de esta manera le permite realizar correctamente los siguientes tipos de consultas:
gremlin> 1+1 ==>2 gremlin> x=g.V().count().next() ==>4249 gremlin> println("The answer was ${x}") The answer was 4249
Puede evitar que se muestre el resultado, de esta manera:
gremlin> x=g.V().count().next();[] gremlin> println(x) 4249
Todas las formas habituales de realizar consultas (sin el paso del terminal) siguen funcionando. Por ejemplo:
gremlin> g.V().count() ==>4249
Incluso puede usar el paso g.io().read()