批量数据导入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

总结

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

相关文章

  • CentOS 7.2 安装MariaDB详细过程

    CentOS 7.2 安装MariaDB详细过程

    这篇文章主要为大家介绍了CentOS 7.2 安装MariaDBMariaDB数据库管理系统详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • apache 局域网访问配置方案

    apache 局域网访问配置方案

    linux下局域网访问配置文件,大家可以参考下,安全设置
    2008-07-07
  • Apache 多站点虚拟主机配置方法

    Apache 多站点虚拟主机配置方法

    Apache 多站点虚拟主机配置方法, 有这类需要的朋友可以参考下。
    2009-07-07
  • Linux学习教程之redis哨兵集群详解

    Linux学习教程之redis哨兵集群详解

    这篇文章主要给大家介绍了关于Linux学习教程之Redis哨兵集群的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • 详解在Linux中清空或删除大文件内容的5种方法

    详解在Linux中清空或删除大文件内容的5种方法

    这篇文章主要介绍了详解在Linux中清空或删除大文件内容的5种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Mysql常用命令 详细整理版

    Mysql常用命令 详细整理版

    MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。
    2010-12-12
  • 详解linux 看门狗驱动编写

    详解linux 看门狗驱动编写

    本篇文章主要介绍了详解linux 看门狗驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Linux下9种优秀的代码比对工具推荐小结

    Linux下9种优秀的代码比对工具推荐小结

    这篇文章主要介绍了Linux下9种优秀的代码比对工具推荐小结,不仅有命令行工具,还有 GUI 界面工具,让你轻松进行代码比对,感兴趣的可以一起来了解一下
    2020-06-06
  • 详解Linux系统配置nginx的负载均衡

    详解Linux系统配置nginx的负载均衡

    这篇文章主要介绍了详解Linux系统配置nginx的负载均衡的相关资料,这里对负载均衡的几种方式进行了讲解并附NGINX配置文件,需要的朋友可以参考下
    2017-03-03
  • Ubuntu软件仓库与更新源配置指南

    Ubuntu软件仓库与更新源配置指南

    本文详解Ubuntu软件仓库的分类、配置方法及常见问题处理,涵盖仓库类型(Main/Universe等)、镜像源替换、代理设置、密钥验证等内容,强调备份配置、谨慎使用第三方源及定期清理的重要性,需要的朋友可以参考下
    2025-06-06

最新评论