janusGraph图数据库进阶

本文针对在janusGraph使用过程中遇到的使用问题、操作问题、架构问题等进行讨论。


如何进行多图管理?

janusGraph支持多图管理,依赖properties文件进行配置来实现,如下图conf中预设的众多配置文件。

在启动服务时加载多图

在“janusGraph图数据库入门”中介绍了如何指定yaml配置文件来启动server服务,部分内容如下:

1
2
3
4
5
6
7
8
9
host: 0.0.0.0
port: 8182
scriptEvaluationTimeout: 30000
channelizer: org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer
graphs: {
graph: conf/janusgraph-inmemory.properties,
ggraph: conf/janusgraph-local-inmemory.properties,
gggraph: conf/janusgraph-local2-inmemory.properties
}

其中graphs集合就是我们预先配置的图实例,每一个图实例对应唯一的一个配置文件。

不同的存储后端可以创建多图,相同的存储后端也可以创建多个图,加载多个properties配置即可,需要注意的是如果同样的存储后端则需要指定不同的hostname,不同的host代表不同的图,如果多个properties配置相同的hostname,即使创建了多图,实际上多图也是指向相同的一个图实例。

在启动服务后加载多图

如果在启动服务配置中没有进行图实例配置,我们也可以使用gremlin命令获取实例。

1
2
3
4
#通过命令生成图实例,依照指定路径配置文件进行生成实例,实例名称可自由设定
graph = JanusGraphFactory.open('conf/janusgraph-inmemory.properties')
ggraph = JanusGraphFactory.open('conf/janusgraph-local-inmemory.properties')
gggraph = JanusGraphFactory.open('conf/janusgraph-local2-inmemory.properties')
1
2
3
4
5
6
7
#可以在console中输出图实例看一下
gremlin> graph
==>standardjanusgraph[inmemory:[127.0.0.1]]
gremlin> ggraph
==>standardjanusgraph[inmemory:[localhost]]
gremlin> gggraph
==>standardjanusgraph[inmemory:[localhost2]]

顶点/边的数据结构

  • 预存属性:id,lable。其中id在创建顶点和边时无需指定将自动生成,janusgraph不支持手动指定id。lable相当于顶点/边的名称
  • 自定义属性:可以通过property方法进行自定义属性添加,属性类型默认支持字符串/整型,其他特殊类型需要进行配置。


版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接,感谢各位看官!!!

本文出自:monkeyGeek

座右铭:生于忧患,死于安乐

欢迎志同道合的朋友一起交流、探讨!

monkeyGeek

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×