批量数据导入Neo4j的实现方式

 更新时间:2025年08月25日 08:47:41   作者:WHYBIGDATA  
本文总结了Neo4j批量数据导入的三种方式:LOADCSV(处理中小数据集)、neo4j-admin(适用于大数据)及Kettle工具,需注意CSV格式、路径配置、数据类型转换及编码问题,确保数据正确导入

批量数据导入Neo4j方式

1、写在前面

  • Linux版本:Ubuntu Kylin 16.04
  • Neo4j版本:Neo4j-3.2.7

2、前置芝士

  • 最常见的数据格式之一是平面文件上的行和列
  • 这种电子表格格式被用于各种关系型数据库的导入和导出,所以用这种方式检索现有数据是很容易的。
  • 很明显,CSV格式就是这种类型。

Cypher中的LOAD CSV命令允许我们指定一个文件路径、是否有头文件、不同的值定界符,以及Cypher语句,以便我们在图形中对这些表格数据进行建模。

进入Neo4j安装目录,并且进入到conf目录中,查看neo4j.conf配置文件

zhangsan@node01:~$ cd /usr/local/neo4j-3.5.12/conf/
zhangsan@node01:/usr/local/neo4j-3.5.12/conf$ ll
总用量 24
drwxr-xr-x  2 lbj lbj  4096 11月 24 06:38 ./
drwxr-xr-x 12 lbj lbj  4096 11月 24 06:32 ../
-rw-r--r--  1 lbj lbj 15918 10月 18 04:21 neo4j.conf

neo4j.conf配置文件中的dbms.directories.import参数是关于load data的文件路径的设置,默认是在Neo4j安装目录下的

import目录,删除/注释掉dbms.directories.import=import这一行,即可使用自定义路径导入数据到Neo4j

# This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or comment it out to
# allow files to be loaded from anywhere in the filesystem; this introduces possible security problems. See the
# `LOAD CSV` section of the manual for details.
dbms.directories.import=import

3、CSV数据导入Neo4j

3.1 LOAD CSV Cypher命令

LOAD CSV Cypher命令:

  • 该命令是一个很好的导入数据方式,可以处理中小尺寸的数据集(最多1000万条记录)。
  • 可用于任何设置,包括AuraDB。

LOAD CSV可以处理本地远程文件,每一种都有一些相关的语法。

本地文件可以在文件名前使用file:///的前缀来加载。

因为AuraDB是基于云(Cloud)的,所以这种本地文件的方法不能用于AuraDB,只能用于本地安装。

  • CSV文件不带有header
USING PERIODIC COMMIT 200 LOAD CSV FROM 'file:///tb_books.csv' AS line
merge (b1:books1{id:line[0],type:line[1],name:line[2],author:line[3],price:line[4]})
  • CSV文件首行是header信息
USING PERIODIC COMMIT 200 LOAD CSV WITH HEADERS FROM 'file:///tb_books.csv' AS line
merge (b1:books1{id:line[0],type:line[1],name:line[2],author:line[3],price:line[4]})

USING PERIODIC COMMIT之后的参数:指定一次导入数据的上限是多少

关于csv格式数据导入的重要说明

  • 所有来自CSV文件的数据都是以字符串形式读取的,所以你需要使用toInteger(), toFloat(), split()或类似函数来转换数值。
  • 标签(label)、属性名称(field)、关系类型(relationship)和变量是区分大小写的。
  • 数据越干净,加载就越容易。尽量在加载前处理复杂的清理/操作。

请记住,Neo4j不存储空值。CSV文件中的空字段可以被跳过,或者在LOAD CSV中用默认值替换。

3.2 neo4j-admin命令

neo4j-admin批量导入工具:

  • 命令行工具,可用于直接加载大型数据集。
  • 适用于Neo4j桌面、Neo4j EE Docker镜像和本地安装。
../bin/neo4j-admin import --database orders
     --nodes=Customer=customers.csv
     --nodes=products.csv
     --nodes=Order="orders_header.csv,orders1.csv,orders2.csv"
     --relationships=CONTAINS=order_details.csv
     --relationships=ORDERED="customer_orders_header.csv,orders1.csv,orders2.csv"
     --trim-strings=true

3.3 Kettle导入工具

Kettle导入工具:

  • 映射和执行数据处理流程的步骤,对于非常大的数据集来说效果很好。
  • 适用于任何设置,包括AuraDB。

4、数据导入失败

如果,数据文件的路径没有问题之后,那大概率是文件的格式问题,将文件重新保存为utf-8的格式即可。

利用NotePad++或者Sublime Text即可

参考资料:neo4j

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos7 SSH登陆慢的问题及解决

    Centos7 SSH登陆慢的问题及解决

    文章描述了CentOS7登录慢的问题,可能是由于反向验证DNS导致的,解决方案有两个:禁用DNS解析或停止systemd-logind服务,通过修改sshd_config文件或重启sshd进程可以实现禁用DNS解析
    2026-04-04
  • Centos7/RHEL7双网卡绑定的方法

    Centos7/RHEL7双网卡绑定的方法

    本篇文章主要介绍了Centos7/RHEL7双网卡绑定的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 17个Linux tar命令实用示例

    17个Linux tar命令实用示例

    这篇文章主要为大家详细介绍了Linux 中 17 个tar命令实用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • linux线程切换和进程切换的方法

    linux线程切换和进程切换的方法

    下面小编就为大家带来一篇linux线程切换和进程切换的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 详解linux电源管理驱动编写

    详解linux电源管理驱动编写

    这篇文章主要介绍了详解linux电源管理驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • linux中mount/umount命令的基本用法及开机自动挂载方法

    linux中mount/umount命令的基本用法及开机自动挂载方法

    本篇文章主要介绍了linux中mount/umount命令的基本用法及开机自动挂载,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • Linux服务器如何修改默认的远程连接端口

    Linux服务器如何修改默认的远程连接端口

    这篇文章主要介绍了Linux服务器如何修改默认的远程连接端口问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • CentOS SSH无密码登录的配置

    CentOS SSH无密码登录的配置

    本篇文章主要介绍了CentOS SSH无密码登录的配置,避免了繁琐的密码验证,有需要的朋友可以了解一下。
    2016-10-10
  • Linux开启SSH服务实现方式

    Linux开启SSH服务实现方式

    本文详细介绍了在Linux系统上安装和配置OpenSSH服务的步骤,包括安装、启动、设置开机自启动、检查服务状态、配置SSH选项、允许防火墙通过以及连接到SSH服务器
    2025-12-12
  • CentOS6.5下搭建文件共享服务Samba的教程

    CentOS6.5下搭建文件共享服务Samba的教程

    这篇文章主要介绍了CentOS6.5下搭建文件共享服务(Samba)的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10

最新评论