graph-databases gremlin titan rexster

graph-databases - gremlin graph



¿Cómo iniciar el servidor de gráficos Titan y conectar con gremlin? (3)

He estado jugando con el servidor de gráficos Titan desde hace un tiempo. Y mi sensación es que, a pesar de una extensa documentación, hay una falta de Tutorial para comenzar desde cero .

Mi objetivo final es tener un titán corriendo en cassandra y consultar con StartTheShift/thunderdome .

He visto algunas formas de comenzar Titán:

Utilizando Rexster

Desde este enlace , pude ejecutar un servidor Titan con los siguientes pasos:

  1. descargar rexster-server 2.3
  2. descargar titan 0.3.0
  3. copie todos los archivos de titan-all-0.3.0/libs a rexster-server-2.3.0/ext/titan
  4. edite rexster-server-2.3.0/rexster.xml y agregue (entre a):

    <graph> <graph-name>geograph</graph-name> <graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type> <graph-read-only>false</graph-read-only> <graph-location>/Users/vallette/projects/DATA/gdb</graph-location> <properties> <storage.backend>local</storage.backend> <storage.directory>/Users/vallette/projects/DATA/gdb</storage.directory> <buffer-size>100</buffer-size> </properties> <extensions> <allows> <allow>tp:gremlin</allow> </allows> </extensions> </graph>

para un berkeleydb o

<graph> <graph-name>geograph</graph-name> <graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type> <graph-location></graph-location> <graph-read-only>false</graph-read-only> <properties> <storage.backend>cassandra</storage.backend> <storage.hostname>77.77.77.77</storage.hostname> </properties> <extensions> <allows> <allow>tp:gremlin</allow> </allows> </extensions> </graph>

para una casandra db.

  1. inicie el servidor con ./bin/rexster.sh -s -c rexster.xml
  2. descargue la consola rexster y ejecútela con bin/rexster-console.sh
  3. ahora puede conectarse a su gráfico con g = rexster.getGraph("geograph")

El problema con este método es que está conectado a través de rexster y no de gremlin, por lo que no tiene autocompletado. La ventaja es que puede asignar un nombre a su base de datos (aquí, geografía).

Usando el servidor Titan con Cassandra

  1. inicie el servidor con ./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
  2. crear un archivo llamado cassandra.local con

    storage.backend=cassandrathrift storage.hostname=127.0.0.1

  3. inicie titan gremlin y conéctese con g = TitanFactory.open("cassandra-es.local")

esto funciona bien

Usando el servidor Titan con BerkeleyDB

Desde este enlace :

  1. descargar titan 0.3.0
  2. inicie el servidor con ./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
  3. lanza titan gremlin: ./bin/gremlin.sh
  4. pero una vez que trato de conectarme a la base de datos (gráfico) en gremlin con g = TitanFactory.open(''graph'') se crea una nueva base de datos llamada gráfico en el directorio en el que estoy. es que obtengo

    No se pudo instanciar la implementación: com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEStoreManager

¿Podría alguien aclarar estos procesos y decirme qué estoy haciendo mal? Gracias


Con Titan Server / BerkeleyDB, debe intentar conectarse a través de RexPro o REST (Thunderdome debe conectarse a través de REST). No puede abrir otra conexión basada en Titan para BerkeleyDB, ya que Titan Server ya posee esa.

Esto es diferente a Titan Server / Cassandra, donde la conectividad se produce a través de RexPro o REST, pero también a través de Cassandra incrustada que permite la conectividad a través de TitanFactory.open(''graph'')


De acuerdo con la documentación, TitanFactory.open() toma el nombre de un archivo de configuración o el nombre de un directorio para abrir o crear una base de datos.

Si lo que dice steven es cierto, habría dos formas de conectarse a la base de datos con un back-end de BerkelyDB:

  1. Inicie la base de datos a través de bin/titan.sh . Conéctate a la base de datos a través de la consola rexster.

  2. NO inicie la base de datos utilizando bin/titan.sh . Use la consola gremlin en su lugar: TitanFactory.open("database-location") . Esto abrirá la base de datos. Pero esto no tiene un servidor rexster. Nada más podrá acceder a la base de datos que no sea la consola gremlin.