簡答版:JanusGraph是一個開始的概念。詳細版:JanusGraph是一個名為「ことはじめ」的概念
JanusGraph是什么
在图数据库中,最常用的是Neo4j,它的环境非常完善,但默认的查询语言是Cypher。虽然这并不是什么坏事,但从通用性的角度来看,我有时想使用基于Apache Tinkerpop框架的Gremlin。在开源的图数据库中,我认为Titan比较有名,但它似乎已经停止开发了,所以使用Fork过的JanusGraph可能是更明智的选择。
在JanusGraph中,可以使用cassandra、HBASE和Berkeley DB作为后端数据库。本次我们将尝试使用JunusGraph作为服务器(Gremlin Server)来进行发布的步骤。顺便提一下,已经在Docker HUB上发布了指定了Berkeley DB作为后端的容器。
准备
请从这里下载最新版本。需要JVM1.8才能运行。解压后,默认设置(cassandra)可以立即启动。以下示例随后立即停止。
$ cd janusgraph-0.4.0-hadoop2
$ ./bin/janusgraph.sh start
Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9200).. OK (connected to 127.0.0.1:9200).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182)..... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.
$ ./bin/janusgraph.sh stop
Killing Gremlin-Server (pid 926)...
Killing Elasticsearch (pid 709)...
Killing Cassandra (pid 273)...
$ ./bin/janusgraph.sh clean
Are you sure you want to delete all stored data and logs? [y/N] y
Deleted data in /mnt/e/Works/Tinkerpop/janusgraph-0.4.0-hadoop2/db
设置文件
后端更改、端点(Websocket、HTTP)、身份验证等设置是通过更改配置文件并在gremlin-server.sh的参数中指定来完成的。上面的JanusGraph会自动读取默认的配置文件。
conf文件夹已经设定了样本配置。因为我们要更改后端,所以我们将创建一个使用内存数据库的配置。这主要用于测试。复制/conf/gremlin-server下的gremlin-server.yaml文件,并对以下部分进行修改。指定要引用的后端属性文件。
graphs: {
graph: conf/gremlin-server/janusgraph-inmemory.properties
}
请按照以下方式参照目标属性文件。
gremlin.graph=org.janusgraph.core.JanusGraphFactory
storage.backend=inmemory
开始运行
一旦准备完毕,只需在脚本中启动即可。可以使用以下命令启动。可能是因为没有正确配置SLF4J,所以会输出大量日志。
./bin/gremlin-server.sh conf/gremlin-server/gremlin-server-inmemory.yaml
连接
我将尝试使用附带的 Gremlin 控制台进行连接。首先,使用 :remote 指定连接目标。要发送命令到连接目标,需要使用 :> 符号。
./bin/gremlin.sh
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.hadoop
plugin activated: tinkerpop.spark
plugin activated: tinkerpop.utilities
plugin activated: janusgraph.imports
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured localhost/127.0.0.1:8182
gremlin> :> graph.addVertex("name", "stephen")
==>v[4288]
gremlin> :> graph.addVertex("name", "stephen")
==>v[4200]
终结
对于像Berkeley DB这样的东西,只需编写配置文件和属性文件即可,但是对于要连接的Elasticsearch(用于管理索引)和Berkeley DB的信息,必须进行追加。这方面在前面介绍的Docker中启动可能更加方便。
请找出一种可能的汉语翻译:
– Please provide a reference.
- JanusGraph Documentation