原因
我需要导入CN-DBpedia到Neo4j中,包含900万+的百科实体以及6700万+的三元组关系,普通逐条插入可能速度太慢,所以要使用neo4j-admin命令来进行导入。
CN-DBpedia原始数据直提供了txt格式的三元组数据,需要进行数据预处理,形成node.csv和relation.csv两个文件,代码见GitHub CN-DBpedia-To-Neo4j。关于数据预处理和neo4j-admin的命令解释可以参考这个教程。
我本来是用neo4j desktop导入的,会莫名其妙地断开连接,据说desktop版本没有压缩版本好。本文会介绍两种neo4j版本的导入方法,建议选择压缩版。
一、压缩版步骤
1. 解压
解压后会看到这个文件夹,将node.csv和relation.csv放到import文件夹下,用cmd管理员模式进入bin目录
2. 试运行数据库
输入命令neo4j.bat console,应该可以看到启动的反馈。
输入地址http://localhost:7474/,输入默认用户名和密码都是neo4j,更改新密码,可以看到数据库正常启动,目前没有数据。
3. 导入数据
在cmd中CTRL+C关闭数据库,输入命令。关于数据预处理和neo4j-admin的命令解释可以参考这个教程。
neo4j-admin import --database=neo4j --nodes="../import/node.csv" --relationships="../import/relation.csv" --multiline-fields=true
最后可以看到导入成功的输出,耗时7分钟。
4. 启动数据库
根据第2步的方法启动即可。可以看到数据已导入。数据量较大的时候,还需要手动创建索引,加快查询速度。
二、Desktop版步骤
1. 在neo4j desktop中建立项目
首先点击Projects旁的New建立项目,再在项目中新建一个数据库。
同时建议再设置里修改data的存储位置,本数据集将占用较大的存储空间。
点击新建数据库的Manage
这是一个空数据库,名称默认为neo4j。
2. 利用neo4j-admin导入csv
在neo4j desktop中打开cmd,进入bin文件夹。
输入以下命令并执行,其中node.csv和relation.csv需要根据真实路径填写,导入数据到这个空数据库neo4j里。关于数据预处理和neo4j-admin的命令解释可以参考这个教程。这里我导入的数据和压缩版导入的数据不一样,所以用时和显示结果也不一样,但过程是类似的。
neo4j-admin import --database=neo4j --nodes="../import/node.csv" --relationships="../import/relation.csv" --multiline-fields=true
然后就开始导入数据了,结果显示花了13分钟。
3. 查看数据
启动数据库,这一步可能需要你安装Java11。
按照给出的地址就可点击localhost以打开browser。做一个简单查询,可以看到数据已导入。