我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

知识图谱系统的一个重要组成形式就是neo4j图形数据库。那么,大量的数据是如何在图形数据库neo4j中初始化的呢?neo4j又是如何导入大批量数据的呢?本文中,苏南大叔将要来探讨一下neo4j导入大批量数据的可能性。

苏南大叔:neo4j如何批量初始化数据库?neo4j-admin导入csv数据 - neo4j-admin-import
neo4j如何批量初始化数据库?neo4j-admin导入csv数据(图4-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的故事。本文中,描述neo4j数据库初始化所需要的两个csv文件的基本格式,以及导入数据库的命令是如何使用的。本文测试环境:win10neo4j@4.4.3java@11.0.12

首先要准备两个特殊的csv文件,这两个特殊的文件其实就是neo4j的三元组数据的另外的一种组成形式。如果您确定了三元组的数据,就可以通过组合nodes.csvrelationships.csv来组成初始化数据的资料。

特别提示:如果您要修改这两个csv文件,最好使用普通的文本编辑器编辑,比如vscode或者notepad或者ultraedit等等,文件编码utf-8。如果使用wps或者excel编辑的话,可能会导致数据错乱/文件乱码等问题。

实体文件的编码对应关系nodes.csv

文件的名称并不重要,但是为了描述文章方便,这里把它称之为nodes.csv。这个文件记录实体名称及其编号还有标签数据。重要的是:文件的表头名称,必须是固定的。

  • entity:ID,实体id编号,自己生成的不重复数据编号。
  • name,实体名称。
  • :LABEL,标签,多个标签使用英文分号;分割。

如下图所示:

苏南大叔:neo4j如何批量初始化数据库?neo4j-admin导入csv数据 - entity_csv
neo4j如何批量初始化数据库?neo4j-admin导入csv数据(图4-2)

值得特别说明的是:

  • 标签并不是唯一固定不变的,多个标签之间是用分号;分割的。标签是neo4j查询语言中的重要组成形式。所以,标签需要重点考虑设置。

关系描述文件relationships.csv

同上一个文件一样,文件名relationships.csv并不重要,重要的是格式。必须包含的表头是:

  • :START_ID,对应于entity.csv中的entity:ID
  • :TYPE,关系文字。
  • :END_ID,对应于entity.csv中的entity:ID

特别说明的是:

  • 表头数据里面,上述三个固定表头仅仅是必须项目,csv文件中允许出现其它数据列。如果出现了,就会以“关系对应关系”的属性形式出现在neo4j数据库中。

如下图所示:

苏南大叔:neo4j如何批量初始化数据库?neo4j-admin导入csv数据 - role_csv
neo4j如何批量初始化数据库?neo4j-admin导入csv数据(图4-3)

执行import命令

首先要找到neo4j-admin文件的位置,以及两个关系描述文件的位置。导入命令如下:

neo4j-admin import --nodes "nodes.csv" --relationships "relationships.csv" --force

其中的--nodes--relationships参数都需要完整路径,否则就会找不到文件。

对于苏南大叔的测试环境来说,这个命令就是:

E:\neo4j-community-4.4.3\bin\neo4j-admin.bat import --nodes "E:\data\nodes.csv" --relationships "E:\data\relationships.csv" --force

执行这个命令的时候,会重置已有的数据库。原有的数据会消失不见,所以后面有个--force的参数。否则会有下面类似的错误提示信息:

Database already exist. Re-run with `--force` to remove the database prior to import
Caused by:E:\neo4j-community-4.4.3\data\databases\neo4j already contains data, cannot do import here

执行restart命令

然后执行重启neo4j服务的命令,上述数据才会被识别,否则管理界面上显示的永远是老数据。

neo4j restart

对于苏南大叔的测试服务器来说,就是:

E:\neo4j-community-4.4.3\bin\neo4j.bat restart

苏南大叔:neo4j如何批量初始化数据库?neo4j-admin导入csv数据 - 最后的导入效果
neo4j如何批量初始化数据库?neo4j-admin导入csv数据(图4-4)

参考文献

总结

本文中,苏南大叔总结了:neo4j初始化数据库时所需要的nodes.csvrelationships.csv文件的格式,以及neo4j-adminimportrestart命令。通过上述命令的不断重复执行,就可以达到调试调整neo4j数据的目的。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   neo4j