2021/8/29Windows下Neo4j批量导入数据(最新教程)

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021/8/29Windows下Neo4j批量导入数据(最新教程)相关的知识,希望对你有一定的参考价值。

前言

图谱的最主要的存储方式,RDF和图数据库,RDF通常用于数据发布和学术上使用,图数据库更多为大数据量下的服务使用。

Neo4j作为图数据中使用最广泛的一种,安装简单,性能较好。

具体安装,请参考【2021/8/28-最新教程】Windows 安装配置Neo4j图数据库

Neo4j批量导入数据

1. 导入方式

Neo4j导入数据的方式有以下几种方式:

  1. Cypher create 语句,为每一条数据写一个create
  2. Cypher load csv 语句,将数据转成CSV格式,通过LOAD CSV读取数据。
  3. neo4j-admin import 导入
  4. 官方提供的Java API - BatchInserter
  5. 大牛编写的 batch-import 工具
  6. neo4j-apoc load.csv + apoc.load.relationship
  7. 针对实际业务场景,定制化开发


此部分为参考

作为初学者我只测试了neo4j-admin import方式,并采用.bat脚本批处理import命令,更加方便快捷!

2. neo4j-admin import导入数据

2.1 处理数据

数据需要处理为csv格式的,编码为utf8,因为大家使用xls另存为csv会觉得比较方便,但是对于没有特殊字符的情况,在将csv文件再转码为utf8是没有问题的,但对于存在特殊字符的文件会出现乱码字符,建议用其他方式处理。

关于Python操作CSV文件,请参考【超详解】Python读写csv文件及空行问题解决

  • 节点文件

除内容处理为csv格式为,还需要在文件中加入头,内容为各个列的属性名(自定义)。

  • 关系文件

除内容处理为csv格式为,还需要在文件中加入头,:START_ID为起始节点id,:END_ID为终点节点id,TYPE表示关系名称,start_idend_id为关系属性。

注意:

1、:ID字段的内容在全部导入文件中不能有任何的重复

2、只能用于初始建库,不能向已有库中导入

处理好的数据存放在import目录下。

2.2 导入命令

导入命令为neo4j-admin,最靠谱的方法是直接用命令帮助。

cmd进入neo4j主目录:

bin\\neo4j-admin -h
bin\\neo4j-admin import -h

主要参数-h为:

bin\\neo4j-admin import 
--database=数据库名称 
--nodes import\\节点文件  
--relationships import\\关系文件

导入的命令为:

bin\\neo4j-admin import 
--database=outofpoverty # 数据库名字
--nodes import\\persons.csv # 结点文件(实体)
--nodes import\\prizes.csv # 结点文件(实体)
--relationships import\\win.csv  # 实体间关系

2.3. 导入数据

  1. 关闭neo4j服务

  2. cmd进入neo4j目录

  3. 运行bin\\neo4j-admin import命令

常见的错误为,数据格式问题,例如字段中有逗号会造成多列,或者ID有重复会造成数据覆盖等。

下面会有参数,可以解决这些问题!

控制台输出如下:


2.4. 查看数据

重新启动neo4j,访问web页面,出现上问中的启动页面,点击左侧的属性或关系,会出现相应的图像展示:

3. .bat批处理脚本

方法目的:为了后期导入数据方便,无需进入neo4j的安装目录下,即可,便于整理数据,因为后期可能数据库及数据文件会增多,如果全存放import文件中,可能较乱。

为了后期更加方便的导入数据,执行命令,因此推荐采用这个快捷操作,同时便于文件管理!

3.1 新建文件夹

neo4j_import_shell,存放位置可以任意,我存放在neo4j安装目录下:

之后打开neo4j_import_shell文件夹新建import,文件夹,存放要导入的csv数据文件:


3.2 新建.bat脚本文件

  1. 新建一个.txt文件,写入cmd导入命令:
D:\\software\\neo4j-community-3.5.28\\bin\\neo4j-admin import ^
    --database=stock.db ^
    --ignore-duplicate-nodes=true ^
    --ignore-missing-nodes=true ^
    --id-type=string ^
    --nodes=import\\executive.csv ^
    --nodes=import\\stock.csv ^
    --nodes=import\\industry.csv ^
    --nodes=import\\concept.csv ^
    --relationships=import\\executive_stock.csv ^
    --relationships=import\\stock_industry.csv ^
    --relationships=import\\stock_concept.csv

其中 ^ :为.bat文件命令续行符(Mac是 \\ ),因为我们的导入命令是需要一行执行的,加入续行符,这样后期我们修改脚本文件时,便清晰明了。

  1. 修改后缀为.bat,双击执行,即可导入!


3.3 修改配置文件

因为Neo4j默认启动的数据库是graph.db,因此需要在conf中修改配置文件:


修改为上面你新导入数据时创建的数据库名字

注意

neo4j导入数据必须是空数据库,否则导入失败,因此执行上面导入命令时,需要是一个新的数据库名,neo4j会自动创建,于是要修改配置文件,这样启动后,便是你导入的数据库了!

3.4 启动Neo4j

neo4j start

进入浏览器http://localhost:7474/browser/,检查是否导入成功!

4. 后序

以后你再需要导入数据,只需要修改.bat脚本文件的内容,添加新文件到import中,无需打开cmd,双击.bat即可!

参考Neo4j官方文档

加油!

感谢!

努力!

以上是关于2021/8/29Windows下Neo4j批量导入数据(最新教程)的主要内容,如果未能解决你的问题,请参考以下文章

Neo4j 第五篇:批量更新数据

Neo4j批量导入大量csv数据

使用 REST 优化 Neo4j 的大批量批量插入

Windows环境下安装和配置Neo4j

如何往neo4j中批量插入cypher语句

windows下neo4j安装及配置,并绘制人物关系图谱