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:
- descargar rexster-server 2.3
- descargar titan 0.3.0
- copie todos los archivos de
titan-all-0.3.0/libs
arexster-server-2.3.0/ext/titan
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.
- inicie el servidor con
./bin/rexster.sh -s -c rexster.xml
- descargue la consola rexster y ejecútela con
bin/rexster-console.sh
- 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
- inicie el servidor con
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
crear un archivo llamado
cassandra.local
constorage.backend=cassandrathrift storage.hostname=127.0.0.1
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 :
- descargar titan 0.3.0
- inicie el servidor con
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
- lanza titan gremlin:
./bin/gremlin.sh
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 obtengoNo 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:
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.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.
También es posible acceder a Titan desde python usando estas dos bibliotecas:
y
https://github.com/espeed/bulbs .
Thunderdome es actualmente específico de Titan, y las bombillas son genéricas. Una comparación (posiblemente sesgada) entre Thunderdome y Bulbs se da en la wiki de Thunderdome: https://github.com/StartTheShift/thunderdome/wiki/Bulbs-VS-thunderdome
Si necesita autocompletar, puede usar iPython y habilitar autocompletar en su configuración de iPython.