Neo4j-import导入海量数据过程详细记录

先前实验室项目上以及个人小论文的实验都需要用到Neo4j图数据库这个工具,项目以及实验所涉及的数据量达到千万级别以上,在参考比较了一下几种方法之后,选择了官方提供的Neo4j-import方法。

  1. Cypher CREATE 语句,为每一条数据写一个CREATE
  2. Cypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。
  3.  Batch Inserter
  4.  Batch Import 工具
  5.  neo4j-import 工具

具体的几种方式的异同点请见参考资料,这里只介绍第5种方式的具体操作步骤。

操作步骤

一、数据预处理

neo4j-import官方要求的数据格式为csv文件,我所要处理的数据是来自DBpedia,主要就是分成两个文件entity.csv    edge.csv

其中entity.csv中包含了实体的id,实体的name,以及标签LABEL,具体格式如下:

"node_id:ID","name",":LABEL"
"carBrand1","Anasagasti","Entity"
"carBrand2","Andino","Entity"
"carBrand3","Hispano-Argentina","Entity"
"carBrand4","Eniak","Entity"
"carBrand5","Industrias_Aeronáuticas_y_Mecánicas_del_Estado","Entity"
"carBrand6","Industrias_Kaiser_Argentina","Entity"
"carBrand7","Alpha_Sports","Entity"
"carBrand8","Amuza","Entity"
"carBrand9","Birchfield","Entity"

edge.csv文件包含了起始节点id,结束节点id,关系的name,以及标签LABEL,具体格式如下:

":START_ID","name",":END_ID",":TYPE"
"4565904","homepage","0","Predicate"
"4654000","homepage","0","Predicate"
"2254843","homepage","0","Predicate"
"2346995","homepage","0","Predicate"
"3535680","homepage","0","Predicate"
"2090446","homepage","0","Predicate"
 

二、导入

预处理得到以上两个文件之后,将文件上传至服务器:

scp entity.csv root@10.1.18.222:/rdf_csv_data

scp edge.csv root@10.1.18.222:/rdf_csv_data

需要注意的是,neo4j-import导入方法的前提条件是数据库不存在,因此先删除已有的数据库:

cd /usr/local/neo4j-community-3.3.3/data/databases

rm -rf graph.db

确保数据库已经删除之后进行导入,进入neo4j主目录:

cd /usr/local/neo4j-community-3.3.3

./bin/neo4j-import --into [PATH] --nodes [nodeA.csv] --nodes [nodeB.csv] --relationships [C.csv]

其中 [PATH] 为neo4j数据库所在目录,[nodeA.csv]和[nodeB.csv]是实体节点文件,[C.csv]是边关系文件,所以此处我该写的命令是:

./bin/neo4j-import --into /usr/local/neo4j-community-3.3.3/data/databases/graph.db --nodes /rdf_csv_data/entity.csv --nodes /rdf_csv_data/entity_car.csv --nodes /rdf_csv_data/entity_car_model.csv  --nodes /rdf_csv_data/entity_language.csv  --nodes /rdf_csv_data/type.csv --relationships /rdf_csv_data/edge_no_string_complete.csv

之后一切正常的话将出现这个画面:

172649_8WOP_3342874.png

说明导入成功。

至此,neo4j-import导入大量数据就成功了。

参考文献

如何将大规模数据导入Neo4j

Neo4j官方手册:neo4j-operations-manual-3.2.pdf

转载于:https://my.oschina.net/edwardge/blog/1632725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值