批量数据导入Neo4j的方式

2023-05-16

批量数据导入Neo4j的方式

文章目录

  • 批量数据导入Neo4j的方式
    • 1、写在前面
    • 2、前置芝士
    • 3、CSV数据导入Neo4j
      • 3.1 LOAD CSV Cypher命令
      • 3.2 neo4j-admin命令
      • 3.3 Kettle导入工具
    • 4、数据导入失败
    • 5、参考资料


在这里插入图片描述


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即可

5、参考资料

neo4j

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批量数据导入Neo4j的方式 的相关文章

  • 找不到 Spring MVC Neo4jConfiguration 类

    我正在学习 Spring MVC 我想扩展 Neo4jConfiguration 类 但它不可用 我导入了以下依赖项
  • Gremlin 删除所有顶点

    我知道如何在 Gremlin 中通过 id 删除顶点 但现在我需要清理数据库 如何删除多个顶点 删除1v是这样的 ver g v 1 g removeVertex ver 我的意思是类似SQL的东西TRUNCATE 如何在不删除类的情况下删
  • Neo4j:检索连接到 Neo4j Rest 中的节点或通过 Cypher 的所有节点和关系

    我想检索所有节点以及连接到节点的关系 我尝试通过两种方式做到这一点 1st通过Neo4j REST API http docs neo4j org chunked milestone server java rest client exam
  • “找不到类型的属性”组合存储库 spring-data-neo4j

    我在用着spring data neo4j我正在尝试组合存储库以便能够使用自定义存储库 我认为我已经正确遵循了中指定的命名约定20 8 7 创建存储库 http docs spring io spring data neo4j docs 3
  • sudoers 是世界可写错误[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我更改了 Ubuntu 12 10 上的 ect 文件权限 以便我可以编辑 bash bashrc 以便 Neo4j 可以看到 JVM 但现在当我尝试
  • 一起使用 MongoDB 和 Neo4j

    我正在开始一个新项目 我正在考虑使用 MongoDB 作为文档存储工具 使用 Neo4j 作为映射文档之间关系的机制 然后我想通过 REST API 公开查询结果 人们会说这样做的优点和缺点是什么 是否有更好的方法可以使用不同的 NoSQL
  • 将 mongodb 与 neo4j 集成,是否有任何 API 可以链接它们?

    我正在研究推荐引擎 用户数据被收集 他们的友谊 位置 喜欢 教育 并已存储在 mongodb 中 我需要向这些用户推荐相关产品 我计划使用 Neo4j 作为推荐引擎 原因很明显 易于节点之间的遍历 路径信息 问题是我必须首先将 mongod
  • Neo4j 的数据库级验证

    我使用 Neo4j 作为我的图形数据库 假设我想限制用户名字段的长度小于10 有没有办法在数据库级别施加这样的约束 现在 您必须在应用程序级别上执行此操作 或者通过注册一个事务提交挂钩来检查该属性字段是否符合特定标准 See http do
  • 使用 scala 检索与给定节点相关的 neo4j 节点

    我有 2 个名为 User node 和 Article node 的节点 它们通过关系相关联 文章节点 gt Written By gt 用户节点 如何获取给定用户节点写入的所有文章节点 我假设您正在使用嵌入式 neo4j 因此有一个类型
  • Cypher - 匹配两个不同的可能路径并返回两者

    我有一个数据集 我在这里作为示例表示 http console neo4j org id 3dq78v http console neo4j org id 3dq78v 我想要做的是对于图表中的每个 Z 节点 该示例只有一个 但我有很多 我
  • Neo4j 的 Cypher 查询语言是开源的吗?

    Neo4j的语言Cypher的现状如何 我真的很喜欢它 但我想避免 Neo4j 锁定 是否还有像 Gremlin 中那样的其他 Cypher 界面 Regards Cypher 完全是 OSS 请参阅https github com neo
  • 如何在java中使用cypher加载CSV文件?

    我是密码新手 我想在java中使用cypher加载csv 我用谷歌搜索并找到了以下作品 LOAD CSV WITH HEADERS FROM http neo4j com docs 2 3 1 csv import movies csv A
  • 使用 Cypher,如何返回仅包含其属性子集的节点

    假设我在 Neo4j 中创建了一个节点 CREATE Thing a foo b bar 我可以编写一个查询来获取该节点及其所有属性 MATCH n Thing a foo RETURN n 返回 a foo b bar 但是是否可以匹配一
  • 如何将dbpedia导入neo4j? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要将 dbpedia 导入 neo4j 我从这里下载 dbpedia http wiki dbpedia org Download
  • 如何在neo4j中显示屏幕上的所有节点

    我有近 5000 个节点Recipes和 5 个节点Meal Types在 Neo4j 数据库中 目前他们之间没有任何关系 我正在下面运行 CQL MATCH n RETURN n LIMIT 100000 这运行良好 但它返回与相关的节点
  • 使用java将数据从Neo4j导出到csv

    将数据从 Neo4j 导出到 CSV 的最佳方法是什么 我已使用链接中的 CSV 导入器将数据从 csv 导入到 neo4jhttps github com sroycode neo4j import https github com sr
  • 如何转储 neo4j 图形数据库?

    我将所有数据库存储在一个位置C JATIN DATA 数据库 neo4jDatabases 如何使用 neo4j Desktop 单独转储所有数据库 我已经尝试过 neo4j admin dump database to 这个命令但出现错误
  • spring-data-neo4j 基本一对多关系不持久

    EDIT 示例项目可在github https github com troig neo4jCustomRepository 我在后端项目中使用 Neo4J Rest 图形数据库 托管在 grapheneDb 中 和 Spring Data
  • Neo4j:基于聚合函数过滤节点

    假设我有一个客户节点列表和每个客户下的订单列表 表示为与这些客户节点关联的订单节点 每个订单都有一个与其关联的成本数字属性 我想返回那些平均订单大于阈值的客户 这是一些无法运行的代码 说明了我想要的内容 MATCH n0 Customer
  • SET label : 将标签名称作为参数传递

    我有一个这样的查询 将 data 展开为行 MERGE p Book guid row bookGuid set p name row name p Science 我想传递标签 科学 作为参数 因为该标签对于我在 data 中传递的所有行

随机推荐

  • android -- 蓝牙 bluetooth (一) 入门

    前段时间在 网上看了一些关于android蓝牙的文章 xff0c 发现大部分是基于老版本 xff08 4 1以前含4 1 xff09 的源码 xff0c 虽然无碍了解蓝牙的基本原理和工作流程 xff0c 但对着4 2 2的代码看起来总是有些
  • 最优二叉搜索树问题(Java)

    最优二叉搜索树问题 xff08 Java xff09 文章目录 最优二叉搜索树问题 xff08 Java xff09 1 前置介绍2 算法设计思路2 1 最优二叉搜索树的结构2 2 一个递归算法2 3 计算最优二叉搜索树的期望搜索代价 3
  • 大数据量一次性导入MongoDB

    大数据量一次性导入MongoDB 文章目录 大数据量一次性导入MongoDB0 写在前面1 前置芝士2 mongoimport命令导入JSON文件数据失败3 db COLLECTION count 返回值不正确4 数据导入不完全5 参考资料
  • Strassen矩阵乘法问题(Java)

    Strassen矩阵乘法问题 xff08 Java xff09 文章目录 Strassen矩阵乘法问题 xff08 Java xff09 1 前置介绍3 代码实现4 复杂度分析5 参考资料 1 前置介绍 矩阵乘法是线性代数中最常见的问题之一
  • 线性时间选择(Top K)问题(Java)

    线性时间选择 xff08 Top K xff09 问题 xff08 Java xff09 文章目录 线性时间选择 xff08 Top K xff09 问题 xff08 Java xff09 1 前置介绍2 分治法求解3 代码实现4 复杂度分
  • HBase查询一张表的数据条数的方法

    HBase查询一张表的数据条数的方法 文章目录 HBase查询一张表的数据条数的方法0 写在前面1 HBase Shell的count命令2 Scan操作获取数据条数3 执行Mapreduce任务4 Hive与HBase整合5 协处理器Co
  • 校园论坛设计(Java)——介绍篇

    校园论坛设计 xff08 Java xff09 文章目录 校园论坛设计 xff08 Java xff09 0 写在前面1 项目介绍2 项目背景3 项目功能介绍3 1 总体设计图3 2 帖子模块3 3 学习模块3 4 个人信息模块3 5 数据
  • 单源最短路径问题(Java)

    单源最短路径问题 xff08 Java xff09 文章目录 单源最短路径问题 xff08 Java xff09 1 问题描述2 算法思路3 代码实现4 算法正确性和计算复杂性4 1 贪心选择性质4 2 最优子结构性质4 3 计算复杂性 5
  • 回溯法(Java)

    回溯法 xff08 Java xff09 文章目录 回溯法 xff08 Java xff09 1 引言2 回溯法2 1 定义2 2 使用场合2 3 基本做法2 4 具体做法2 5 常见例子 3 比较4 问题的解空间4 1 介绍4 2 解空间
  • 校园论坛(Java)——环境配置篇

    校园论坛 Java 环境配置篇 文章目录 校园论坛 Java 环境配置篇 1 写在前面 2 新建Maven项目 2 1 引入相关依赖 2 2 配置Tomcat环境 3 项目发布测试 4 项目代码 5 参考资料 1 写在前面 Windows版
  • 校园论坛(Java)—— 帖子模块

    校园论坛 Java 帖子模块 文章目录 校园论坛 Java 帖子模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 普通帖子中各层的设计 3 用户浏览普通帖子功能的实现 3 1 帖子发布和查看以及回复功能系统 3
  • android -- 蓝牙 bluetooth (二) 打开蓝牙

    4 2的蓝牙打开流程这一部分还是有些变化的 xff0c 从界面上看蓝牙开关就是设置settings里那个switch开关 xff0c widget开关当然也可以 xff0c 起点不同而已 xff0c 后续的流程是一样的 先来看systemS
  • 校园论坛(Java)—— 登录注册和用户信息模块

    校园论坛 Java 登录注册和用户信息模块 文章目录 校园论坛 Java 登录注册和用户信息模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 登录注册模块各层的设计 3 登录注册模块设计 3 1 用户注册功能 3
  • 校园论坛(Java)—— 考研学习模块

    校园论坛 Java 考研学习模块 文章目录 校园论坛 Java 考研学习模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 登录注册模块各层的设计 3 考研学习模块设计 3 1 浏览和查看帖子 3 2 发表帖子 3
  • 校园论坛(Java)—— 用户管理系统模块

    校园论坛 Java 用户管理系统模块 文章目录 校园论坛 Java 用户管理系统模块 toc 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 用户管理系统模块各层的设计 3 管理员管理用户功能 3 1 管理员查看普通
  • 校园论坛(Java)—— 数据报表模块

    校园论坛 Java 数据报表模块 文章目录 校园论坛 Java 数据报表模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 代码实现 3 数据报表设计 3 1 数据报表主界面的实现 3 2 发表数Top5的普通帖子
  • 校园论坛(Java)—— 校园周边模块

    校园论坛 Java 校园周边模块 文章目录 校园论坛 Java 校园周边模块 1 写在前面 2 系统结构设计 2 1 各个页面之间的调用关系 2 2 校园周边页面设计 3 校园周边模块设计 3 1 校园周边主界面的实现 3 2 增加附近的交
  • 校园论坛(Java)—— 结束篇

    校园论坛 Java 结束篇 文章目录 校园论坛 Java 结束篇 1 写在前面 2 系统总体设计 2 1 设计流程 2 2 各个页面之间的调用关系 3 系统实现的可行性 4 系统制作的局限性 5 总结 6 项目代码 1 写在前面 Windo
  • Windows远程连接Redis(Linux)

    Windows远程连接Redis xff08 Linux xff09 文章目录 Windows远程连接Redis xff08 Linux xff09 1 写在前面2 配置redis conf3 启动Redis3 1 开启redis服务3 2
  • 批量数据导入Neo4j的方式

    批量数据导入Neo4j的方式 文章目录 批量数据导入Neo4j的方式1 写在前面2 前置芝士3 CSV数据导入Neo4j3 1 LOAD CSV Cypher命令3 2 neo4j admin命令3 3 Kettle导入工具 4 数据导入失