海量数据导入Neo4j的几种方式_一尘在心的博客-CSDN博客_neo4j org.neo4j.unsafe.batchinsert.batchinserters


本站和网页 https://blog.csdn.net/zhanaolu4821/article/details/80820434 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

海量数据导入Neo4j的几种方式_一尘在心的博客-CSDN博客_neo4j org.neo4j.unsafe.batchinsert.batchinserters
海量数据导入Neo4j的几种方式
一尘在心
于 2018-06-26 20:22:51 发布
7700
收藏
10
分类专栏:
大数据~~Neo4j
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhanaolu4821/article/details/80820434
版权
大数据~~Neo4j
专栏收录该内容
14 篇文章
2 订阅
订阅专栏
项目需要基于Neo4j开发,由于数据量较大(数千万节点),因此对当前数据插入的方法进行了分析和对比。
常见数据插入方式概览
Neo4j VersionLanguage DriverCommunity 3.0.2Python neo4j-driver 1.0.0
目前主要有以下几种数据插入方式:
Cypher CREATE 语句,为每一条数据写一个CREATECypher LOAD CSV 语句,将数据转成CSV格式,通过LOAD CSV读取数据。官方提供的Java API —— Batch Inserter大牛编写的 Batch Import 工具官方提供的 neo4j-import 工具
这些工具有什么不同呢?速度如何?适用的场景分别是什么?我这里根据我个人理解,粗略地给出了一个结果:
 CREATE语句LOAD CSV语句Batch InserterBatch ImportNeo4j-import适用场景1 ~ 1w nodes1w ~ 10 w nodes千万以上 nodes千万以上 nodes千万以上 nodes速度很慢 (1000 nodes/s)一般 (5000 nodes/s)非常快 (数万 nodes/s)非常快 (数万 nodes/s)非常快 (数万 nodes/s)优点使用方便,可实时插入。使用方便,可以加载本地/远程CSV;可实时插入。速度相比于前两个,有数量级的提升基于Batch Inserter,可以直接运行编译好的jar包;可以在已存在的数据库中导入数据官方出品,比Batch Import占用更少的资源缺点速度慢需要将数据转换成CSV需要转成CSV;只能在JAVA中使用;且插入时必须停止neo4j需要转成CSV;必须停止neo4j需要转成CSV;必须停止neo4j;只能生成新的数据库,而不能在已存在的数据库中插入数据。
速度测试
下面是我自己做的一些性能测试:
1. CREATE 语句
这里每1000条进行一次Transaction提交
CREATE (:label {property1:value, property2:value, property3:value} )
11.5w nodes18.5w nodes100 s160 s
2. LOAD CSV 语句
using periodic commit 1000load csv from "file:///fscapture_screencapture_syscall.csv" as linecreate (:label {a:line[1], b:line[2], c:line[3], d:line[4], e:line[5], f:line[6], g:line[7], h:line[8], i:line[9], j:line[10]})
这里使用了语句USING PERIODIC COMMIT 1000,使得每1000行作为一次Transaction提交。
11.5w nodes18.5w nodes21 s39 s
3. Batch Inserter、Batch Import、Neo4j-import
我只测试了Neo4j-import,没有测试Batch Inserter和Batch Import,但是我估计他们的内部实现差不多,速度也处于一个数量级别上,因此这里就一概而论了。
neo4j-import需要在Neo4j所在服务器执行,因此服务器的资源影响数据导入的性能,我这里为JVM分配了16G的heap资源,确保性能达到最好。
sudo ./bin/neo4j-import --into graph.db --nodes:label path_to_csv.csv
11.5w nodes18.5w nodes150w nodes + 1431w edges3113w nodes + 7793w edges3.4 s3.8 s26.5 s3 m 48 s
结论
如果项目刚开始,想要将大量数据导入数据库,Neo4j-import是最好的选择。如果数据库已经投入使用,并且可以容忍Neo4j关闭一段时间,那么Batch Import是最好的选择,当然如果你想自己实现,那么你应该选择Batch Inserter如果数据库已经投入使用,且不能容忍Neo4j的临时关闭,那么LOAD CSV是最好的选择。最后,如果只是想插入少量的数据,且不怎么在乎实时性,那么请直接看Cypher语言。
其它的Tips
在LOAD CSV前面加上USING PERIODIC COMMIT 1000,1000表示每1000行的数据进行一次Transaction提交,提升性能。建立index可以使得查询性能得到巨大提升。如果不建立index,则需要对每个node的每一个属性进行遍历,所以比较慢。 并且index建立之后,新加入的数据都会自动编入到index中。 注意index是建立在label上的,不是在node上,所以一个node有多个label,需要对每一个label都建立index。
一尘在心
关注
关注
点赞
10
收藏
打赏
评论
海量数据导入Neo4j的几种方式
项目需要基于Neo4j开发,由于数据量较大(数千万节点),因此对当前数据插入的方法进行了分析和对比。常见数据插入方式概览Neo4j VersionLanguage DriverCommunity 3.0.2Python neo4j-driver 1.0.0目前主要有以下几种数据插入方式:Cypher CREATE 语句,为每一条数据写一个CREATECypher LOAD CSV 语句,将数据转成...
复制链接
扫一扫
专栏目录
【知识图谱】Neo4j 导入数据构建知识图谱的三种方法
Nieson2012的专栏
10-30
9279
目录
Neo4j数据导入5种方式
1、使用Cypher语言创建
1.1 创建节点【create】
1.2 修改节点的属性
1.3创建带属性值的节点
1.4 创建节点间的关系
1.5 其他操作命令
1.6 cypher查询语言的使用规律
2、使用load csv导入数据
2.1构建容器(非必须)
2.2 导入节点csv文件
2.3 创建索引并删除重复节点
2.4 导入关...
neo4j 5.2 neo4j install-service 失败
最新发布
qq_37819527的博客
12-14
15
neo4j install-service 失败
评论 2
您还未登录,请先
登录
后发表或查看评论
如何将大规模数据导入Neo4j
热门推荐
人生最遗憾的莫过于:轻易地放弃了不该放弃的,固执地坚持了不该坚持的
05-12
2万+
如何将大规模数据导入Neo4j
项目需要基于Neo4j开发,由于数据量较大(数千万节点),因此对当前数据插入的方法进行了分析和对比。
常见数据插入方式概览
Neo4j Version
Language Driver
Community 3.0.2
Python neo4j-driver 1.0.0
目前主要有以下
微服务SpringBoot+Neo4j搭建企业级分布式应用拓扑图
weixin_42469135的博客
09-28
5265
Neo4jRepository是SpringData为我们提供的用来操作Neo4j数据库的接口,我们先来看看它的继承关系:Neo4jRepository的继承关系可以看到,通用的增删查改功能基本都有了,如果我们的数据库操作也是些简单的操作,那基本就不用再添加方法了,直接使用Neo4jRepository提供的方法即可。当然也支持我们自定义方法进行操作,这个下面再信息讲述。
使用neo4j_批量导入数据提速80%,不一样的Neo4j打开方式
weixin_39706441的博客
01-14
2111
Neo4j是由Java实现的开源NoSql图数据库,是图数据库中较为流行的一款。网易内部集群版本Neo4j提供了完整的数据库特性,包括ACID事务的支持、因果集群支持、备份/恢复与故障转移等。随着越来越多的业务使用Neo4j数据库,数据如何快速导入成为备受业务关心的问题。本文主要介绍Neo4j批量导入在线和离线数据的几种方法,常见问题,优缺点,以及适用场景等。最近整理了一些Java架构学习视频和大...
neo4j语法-with
一点点
04-02
777
neo4j的with语法
Neo4j CQL-(18)IN操作符
博客 小站
08-26
3678
与SQL一样,Neo4j CQL提供了一个IN运算符,以便为CQL命令提供值的集合。IN操作符语法:IN[<Collection-of-values>]语法说明:
neo4j介绍
每天积累一点,一年后你会发现,自己变化很大
06-27
814
http://www.searchtb.com/tag/neo4j
Neo4j实战 | 基本概念介绍
Genms的博客
07-15
220
在学习Neo4j之前,我们要先了解Neo4j的一些基本概念,这样我们才能更容易理解Cypher语句以及设计自己的图数据库,如果学习过图相关知识理解起来也比较简单。这里结合The Neo4j Getting Started Guide v4.3的例子(下图)来讲述一下。
...
Neo4j-简单使用
lllhhhv的博客
04-07
1837
目录
一、Cypher简单使用
创建
查询
修改
删除
批量操作
官网:
Graph Data Platform | Graph Database Management System | Neo4j
入门教程:
Getting Started Guide - Getting Started
Cypher文档:
Introduction - Neo4j Cypher Manual
Cypher参考卡:
Neo4j Cypher Refcard 4.2
..
如何选择合适的 Neo4j 版本(2022版)
Neo4j 开发者博客
03-24
2653
你只知道Neo4j有社区版和企业版?还有其他更方便的选择?现在了解如何选择合适上手的Neo4j版本,快速开始图技术旅程。
Neo4j学习资料整理(记录)
qq_32971807的博客
12-22
1083
官方使用手册:http://neo4j.com/docs/developer-manual/current/introduction/
cypher手册中文教程:http://neo4j.com.cn/public/cypher/neo4j_cql_create_node.html
neo4j中文手册:http://neo4j.com.cn/public/docs
Neo4j 安装、使用教程
17902的博客
02-14
1万+
文章目录一、Neo4j 的安装与配置1、安装JDK2、安装Neo4j3、Neo4j环境变量配置4、启动服务器二、Neo4j 使用教程
一、Neo4j 的安装与配置
1、安装JDK
由于Neo4j是基于Java的图形数据库,运行Neo4j需要启动JVM进程,因此必须安装JAVA SE的JDK。配置 JDK环境,为以后能适应Springboot,请选择最低JDK1.8的环境。
2、安装Neo4j
下载地址:https://neo4j.com/download-center
我安装的是 Neo4j Communi
在服务器上如何启动neo4j
weixin_44747173的博客
07-14
211
①cd到neo4j中的bin目录下
②启动neo4j,命令为:
③如何关闭,命令为:
Neo4j基础知识
weixin_38943725的博客
08-09
700
Neo4j
图和Neo4j
图论起源于柯尼斯堡七桥问题。
图必须是完整的图
图中必须有0个或者2个奇数点
图和节点
图是由一组节点和连接这些节点的关系组成,图形存储在节点和关系所在的属性上,属性是键值对表示的数据。
节点关系表达
简单关系
两个节点之间创建关系为跟随,意味着节点1跟随节点2
复杂关系
三个节点有的是双向关系,有的单向关系
知识图谱和图库
知识图谱
一种基于图的数据结构,由节点和边组成,其中节点即实体,边就是关系用于连接两个节点,知识图谱就是把不同种类的信息连接在一起得到的关系网络,只是图
Neo4j简介
cxu123321的博客
09-26
2648
Neo4j简介
weixin_44304265
前言
随着大数据时代的发展,诞生了一大批大数据时代下的新数据库产品,如今MongoDB、Redis、HBase这些NoSQL数据库已经成为了互联网开发的新标配,SQL一统江湖的时代不复存在了。
然而,如果你觉得只要学习了上边这几种NoSQL你就抓住了大数据时代的话,你可就大错特错了!大数据时代发展速度之快超乎你的想象,新的数据库产品仍然在不断诞生,一些快速兴起的小众数据库很有可能成为下一个MongoDB、HBase!为了不落后于时代,你还不抓紧时间了解一下
Neo4j的免费在线培训教程
GraphWay的博客
01-08
1376
对于新的产品和技术,相关资料和介绍也相对处于起步阶段。特别是系统化的、面向不同需要的使用者的教程更加难得。
其实Neo4j的资料除了书籍、网站,还有相当丰富的在线教程,供使用者自我学习。使用方法如下。在安装了Neo4j后,打开浏览器访问Neo4j浏览器,然后在输入Cypher查询的文本框内输入命令:
:play 就可以启动相应的在线教程。下面是一些推荐的主题,难度从简单到复杂。
Neo4j 使用指南
失心疯的博客
10-26
2539
Neo4j-Cheat-Sheet
Neo4j中+=使用
不积跬步无以至千里的博客
08-18
52
属性变异操作符+=可以与SET一起使用,以细粒度的方式从映射中变异属性
MATCH (p {name: 'Peter'})
SET p += {age: 38, hungry: true, position: 'Entrepreneur'}
RETURN p.name, p.age, p.hungry, p.position
NEO4J中WITH的用法
专注于数据
01-05
8333
和Oracle中with的用法相似,把with后面结果集当成一个查询结果、在这个结果基础上再做where条件的筛选
比如下面这个语句:查询所有电影集、每个电影至少有8个以上的演员参演。
with o,count(r) as count_r,以这个为结果集、然后在此基础上筛选出count_r大于8的
MATCH (n:Person)-[r:ACTED_IN]->(o:...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:书香水墨
设计师:CSDN官方博客
返回首页
一尘在心
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
215
原创
2万+
周排名
175万+
总排名
84万+
访问
等级
8008
积分
240
粉丝
280
获赞
103
评论
1338
收藏
私信
关注
热门文章
Your password does not satisfy the current policy requirements
103738
VsCode搭建springboot 并配置maven环境
50919
mongodb配置文件config.conf详解
48566
TiDB基本简介
47183
深入理解Java中异常体系
33016
分类专栏
招聘
大数据~~ES
1篇
经验杂谈
10篇
CDH6.3
4篇
TiDB
1篇
NewSQL
1篇
大数据~~LVS
1篇
Scala
1篇
大数据~~Nginx
16篇
大数据~~Docker
7篇
大数据~~Flink
7篇
大数据~~Sqoop
1篇
大数据~~Kubernetes
6篇
大数据~~Hive
31篇
大数据~~Hbase
5篇
大数据~~Flume
6篇
大数据~~Hadoop
33篇
大数据~~架构
3篇
大数据~~MongoDB
13篇
大数据~~Storm
1篇
大数据~~运维
28篇
大数据~~Spark
28篇
大数据~~HDFS
1篇
大数据~~Neo4j
14篇
大数据~~kafka
8篇
大数据~~Elasticsearch
4篇
大数据~~zookeeper
10篇
java~~面试题
3篇
java~~jvm
13篇
java~~基础
18篇
Java~~并发
9篇
java~~Morphia
2篇
java~~算法
24篇
java~~安全
3篇
java~~设计模式
4篇
微服务~~sprintboot
19篇
微服务~~SpringCloud
8篇
VSCode
1篇
VMware 虚拟化
5篇
设计~~PowerDesigner
1篇
人工智能~~机器学习
7篇
语音设别~~Kaldi
14篇
基础~~Https
4篇
大数据~~Redis
6篇
区块链~~Fabric
1篇
软件工程~~设计
5篇
架构~~设计
1篇
java~~优化
1篇
数据库~~Mysql
15篇
最新评论
TiDB基本简介
xiangfan_mll:
Tidb不是完全兼容mysql,有遗憾。
深入理解Java中异常体系
念犯困:
图片里ArithmeticException写错了
mongodb配置文件config.conf详解
前端裁缝铺——汇总各门派优秀代码:
输入./bin/mongod -f MongoDB.conf 后显示无此文件……
深入理解Java中异常体系
CizelTian:
写得很清晰,看得出博主的用心
TiDB基本简介
外星喵:
好厉害的样子
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
LeetCode111. 二叉树的最小深度
LeetCode104. 二叉树的最大深度
LeetCode102. 二叉树的层序遍历
2021年21篇
2020年17篇
2019年222篇
2018年133篇
目录
目录
分类专栏
招聘
大数据~~ES
1篇
经验杂谈
10篇
CDH6.3
4篇
TiDB
1篇
NewSQL
1篇
大数据~~LVS
1篇
Scala
1篇
大数据~~Nginx
16篇
大数据~~Docker
7篇
大数据~~Flink
7篇
大数据~~Sqoop
1篇
大数据~~Kubernetes
6篇
大数据~~Hive
31篇
大数据~~Hbase
5篇
大数据~~Flume
6篇
大数据~~Hadoop
33篇
大数据~~架构
3篇
大数据~~MongoDB
13篇
大数据~~Storm
1篇
大数据~~运维
28篇
大数据~~Spark
28篇
大数据~~HDFS
1篇
大数据~~Neo4j
14篇
大数据~~kafka
8篇
大数据~~Elasticsearch
4篇
大数据~~zookeeper
10篇
java~~面试题
3篇
java~~jvm
13篇
java~~基础
18篇
Java~~并发
9篇
java~~Morphia
2篇
java~~算法
24篇
java~~安全
3篇
java~~设计模式
4篇
微服务~~sprintboot
19篇
微服务~~SpringCloud
8篇
VSCode
1篇
VMware 虚拟化
5篇
设计~~PowerDesigner
1篇
人工智能~~机器学习
7篇
语音设别~~Kaldi
14篇
基础~~Https
4篇
大数据~~Redis
6篇
区块链~~Fabric
1篇
软件工程~~设计
5篇
架构~~设计
1篇
java~~优化
1篇
数据库~~Mysql
15篇
目录
评论 2
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
一尘在心
打赏是一种美德
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值