

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
<a name="access-graph-gremlin-console-connect"></a>

**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 [https://tinkerpop.apache.org/docs/current/reference/#io-step](https://tinkerpop.apache.org/docs/current/reference/#io-step) para cargar un archivo con este tipo de conexión.