Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Inconvénients de l'approche de connexion habituelle
La méthode la plus courante pour se connecter à la console Gremlin est expliquée ci-dessus et utilise des commandes comme celle-ci à l'invite gremlin>
:
gremlin> :remote connect tinkerpop.server conf/
(file name)
.yaml gremlin> :remote console
Elle est opérationnelle et vous permet d'envoyer des requêtes à Neptune. Cependant, elle exclut le moteur de script Groovy, de sorte que Neptune traite toutes les requêtes comme si elles étaient entièrement écrites dans Gremlin. Par conséquent, les types de requête suivants échouent :
gremlin> 1 + 1 gremlin> x = g.V().count()
Le meilleur moyen d'utiliser une variable lorsque vous êtes connecté de cette façon consiste à utiliser la variable result
gérée par la console et d'envoyer la requête en utilisant :>
, comme ceci :
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]
Autre mode de connexion
Vous pouvez également vous connecter à la console Gremlin d'une autre manière, que vous trouverez peut-être plus agréable, comme ceci :
gremlin> g = traversal().withRemote('conf/neptune.properties')
neptune.properties
prend ici la forme suivante :
gremlin.remote.remoteConnectionClass=org.apache.tinkerpop.gremlin.driver.remote.DriverRemoteConnection gremlin.remote.driver.clusterFile=conf/my-cluster.yaml gremlin.remote.driver.sourceName=g
Le fichier my-cluster.yaml
doit ressembler à ceci :
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 }
Note
Les sérialiseurs ont été déplacés du gremlin-driver
module vers le nouveau gremlin-util
module dans la version 3.7.0. Le package est passé de org.apache.tinkerpop.gremlin.driver.ser à org.apache.tinkerpop.gremlin.util.ser.
En configurant ainsi la connexion à la console Gremlin, vous pouvez effectuer avec succès les types de requêtes suivants :
gremlin> 1+1 ==>2 gremlin> x=g.V().count().next() ==>4249 gremlin> println("The answer was ${x}") The answer was 4249
Pour éviter d'afficher le résultat, procédez comme suit :
gremlin> x=g.V().count().next();[] gremlin> println(x) 4249
Toutes les méthodes habituelles d'interrogation (sans l'étape terminale) continuent de fonctionner. Par exemple :
gremlin> g.V().count() ==>4249
Vous pouvez même utiliser l'étape g.io().read()