Janusgraph数据批量导入

Janusgraph数据批量导入其实很简单,Janusgraph自带了一个批量导入的教程就在下面这个文件里
janusgraph-0.3.3-hadoop2/data/grateful-dead-janusgraph-schema.groovy

说一下导入的大致流程
一:创建图架构
二:创建Json格式数据文件
三:配置存储Janusgraph的后端数据库Hbase
四:指定Json数据的文件路径

下面以Janusgraph自带的数据讲解具体讲解批量导入流程

一:创建图架构
Janusgraph自带的图架构在janusgraph-0.3.3-hadoop2/data/grateful-dead-janusgraph-schema.groovy
图架构就是定义你这张图的轮廓的

def defineGratefulDeadSchema(janusGraph) {
	// 创建图构架
    m = janusGraph.openManagement()
    
   // 创建顶点标签
    artist = m.makeVertexLabel("artist").make()
    song   = m.makeVertexLabel("song").make()
    
   // 创建边标签
    sungBy     = m.makeEdgeLabel("sungBy").make()
    writtenBy  = m.makeEdgeLabel("writtenBy").make()
    followedBy = m.makeEdgeLabel("followedBy").make()
    
   // 创建标签属性,第一个参数是属性名,第二个参数是属性的数据类型
    blid         = m.makePropertyKey("bulkLoader.vertex.id").dataType(Long.class).make()
    name         = m.makePropertyKey("name").dataType(String.class).make()
    songType     = m.makePropertyKey("songType").dataType(String.class).make()
    performances = m.makePropertyKey("performances").dataType(Integer.class).make()
    weight       = m.makePropertyKey("weight").dataType(Integer.class).make()
    
    //创建标签属性索引 ?这个参数具体是什么记得不太清了
    m.buildIndex("byBulkLoaderVertexId", Vertex.class).addKey(blid).buildCompositeIndex()
    m.buildIndex("artistsByName", Vertex.class).addKey(name).indexOnly(artist).buildCompositeIndex()
    m.buildIndex("songsByName", Vertex.class).addKey(name).indexOnly(song).buildCompositeIndex()
    
    // 给边添加索引
    // buildEdgeIndex的参数 
    // 第一个参数是边的标签 
    //第二个参数是索引名 
    // 第三个参数是边的方向(BOTH表示可以使用IN/OUT) 
    //第四个参数是索引的排序(Order升序)
    m.buildEdgeIndex(followedBy, "followedByWeight", Direction.BOTH, Order.decr, weight)

	//提交数据
    m.commit()
}

二:创建Json格式数据文件
Janusgraph自带的Json数据在janusgraph-0.3.3-hadoop2/data/grateful-dead.json,这个Json数据格式是符合上面的图架构的,这个格式看一下就好了,很简单。

三:配置存储Janusgraph的后端数据库Hbase
Janusgraph自带的配置文件在janusgraph-0.3.3-hadoop2/conf/janusgraph-hbase.properties

说一下几个重要的参数:
1.storage.backend=hbase
将Janusgraph批量导入的数据存入到Hbase中

2.storage.hostname=127.0.0.1
安装Hbase的电脑ip

1.storage.batch-loading=true
true:在批量导入或api添加时,会进行(索引)一致性校验,否则不会进行
如在name属性上建立了唯一索引,则name不允许有重复值。

2.storage.hbase.table=testgraph
存储图的名称

四.指定Json数据的文件路径
Janusgraph自带的配置文件在janusgraph-0.3.3-hadoop2/conf/hadoop-graph/hadoop-graphson.properties

这个文件只需要配置一下你要导入的Json数据路径即可:
gremlin.hadoop.inputLocation=./data/grateful-dead.json
把这个位置换成你自己的文件路径

五.打开Janusgrap执行导入命令
1.加载构建图的函数文件,load后面是图构架函数文件的地址
:load data/grateful-dead-janusgraph-schema.groovy

2.加载janusgraph的后端存储文件,将上述的图构架存加载到hbase中,open里的参数是hbase的配置文件地址
graph = JanusGraphFactory.open(‘conf/janusgraph-hbase-es.properties’)

3.将图构架存储到hbase中
defineGratefulDeadSchema(graph)

4.打开json数据,open里的参数是json数据的位置
graph = GraphFactory.open(“conf/hadoop-graph/hadoop-load-json-hbase-es.properties”)

5.提交json数据
graph.compute(SparkGraphComputer).program(blvp).submit().get()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值