Neo4j百万级数据导入只需30s
先上图:425万nodes、180万relationships只用了30s 243ms

项目需要生成关系图,开始考虑的是用Neo4j官网提供的REST API,从solr中查出2组数据先创建节点再创建关系,过程相当痛苦,速度非常慢,一天都处理不完;
后来改用cypher语句,通过load csv方法,先将数据生成cvs节点文件和关系文件,再通过load csv file create 语法创建,但文件超过30万条时,服务就出错了,遂放弃;
以上2种方法适合小数据量的图库操作,和局部插入更新,不适合大量数据的导入,生成关系图;
后来通过使用官方提供的Neo4jImport 命令行导入数据成功。命令格式在上图中最下面部分有。
首先是要通过查库生成一定格式的csv数据,按node,relationship分别生成,这个可以通过java写代码生成,格式如下:
例子:
节点文件:
文件名:person.csv
文件内容:
id:ID,name,sex,age
p123,jobs,male,28
文件名:company-header.csv
文件内容:
id:ID,entName
文件名:company.csv
文件内容:
c111,Apple
关系文件:
文件名:relationship-header.csv
文件内容:
:START_ID,:END_ID,:TYPE
文件名:relationship.csv
文件内容:
p123,c111,founder
说明:其中一个文件可以分两部分写,一部分写文件头部信息,这些可能需要人为更改,较方便;内容部分一般是代码生成,数据量大,打开修改很费事,一般不动,所以建议分开写,如例子中company-header.csv和company.csv文件就分属于头部文件和内容文件。
:ID表示此列的值作为接连值,并会创建索引,所以如果这列的值有重复,在创建的时候会报错;
:START_ID表示起始节点的ID值;
:END_ID表示结束节点的ID值;
:TYPE表示关系值;
例子中表示的是jobs是Apple公司的创始人;
当然还有其他一些格式,比如:
:LABEL 给列设置标签,可以设置多个标签,用分号分隔;
:IGNORE该列不创建properties
:START_ID(Company)指定该列只能是company中ID的值,前提是company中id:ID(Company)也这样写。
另外,有问题可以留言探讨,我也是刚研究了一周。
原文地址:https://www.jianshu.com/p/0aff60f766f3
Neo4j百万级数据导入只需30s的更多相关文章
- 详解如何挑战4秒内百万级数据导入SQL Server(转)
对于大数据量的导入,是DBA们经常会碰到的问题,在这里我们讨论的是SQL Server环境下百万级数据量的导入,希望对大家有所帮助.51CTO编辑向您推荐<SQL Server入门到精通&g ...
- NEO4J亿级数据导入导出以及数据更新
1.添加配置 apoc.export.file.enabled=true apoc.import.file.enabled=true dbms.directories.import=import db ...
- 实战手记:让百万级数据瞬间导入SQL Server
想必每个DBA都喜欢挑战数据导入时间,用时越短工作效率越高,也充分的能够证明自己的实力.实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本文将向大家推荐一个挑战4秒极限让百万级数据瞬间 ...
- 【转 】实战手记:让百万级数据瞬间导入SQL Server
想必每个DBA都喜欢挑战数据导入时间,用时越短工作效率越高,也充分的能够证明自己的实力.实际工作中有时候需要把大量数据导入数据库,然后用于各种程序计算,本文将向大家推荐一个挑战4秒极限让百万级数据瞬间 ...
- Excel导入数据库百万级数据瞬间插入
Excel导入数据库百万级数据瞬间插入 百万级别,瞬间,有点吊哇
- Sql Server中百万级数据的查询优化
原文:Sql Server中百万级数据的查询优化 万级别的数据真的算不上什么大数据,但是这个档的数据确实考核了普通的查询语句的性能,不同的书写方法有着千差万别的性能,都在这个级别中显现出来了,它不仅考 ...
- EF查询百万级数据的性能测试--多表连接复杂查询
相关文章:EF查询百万级数据的性能测试--单表查询 一.起因 上次做的是EF百万级数据的单表查询,总结了一下,在200w以下的数据量的情况(Sql Server 2012),EF是可以使用,但是由于 ...
- 【eclipse jar包】在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可。
Eclipse中导入外部jar包 在编写java代码时,为方便编程,常常会引用别人已经实现的方法,通常会封装成jar包,我们在编写时,只需引入到Eclipse中即可. 工具/原料 Eclipse 需要 ...
- MSSQL、MySQL 数据库删除大批量千万级百万级数据的优化
原文:https://blog.csdn.net/songyanjun2011/article/details/7308414 SQL Server上面删除1.6亿条记录,不能用Truncate(因为 ...
随机推荐
- 有关css的兼容问题
兼容性 1 页面在不同浏览器中可能显示不同 在IE6下 子级的宽度会撑开父级设置好的宽度 温馨提示:和模型的计算一定要精确,IE浏览器可能显示不同 兼容性 2 在IE6中,元素浮 ...
- Linux Shell 脚本学习第一天: 使用grep 命令,lsusb, ps -ef, 实现树莓派(Debian OS)时检测到依赖的USB设备启动后,启动终端自动执行shell脚本
1.应用背景: 无人监测的设备,常需要设置应用程序开机启动,程序启动前需要保证调用的设备先启动,运行环境先启动. 2.test.sh部分源码 #!/bin/sh #查看桌面是否启动 while tru ...
- Python- 【python无法更新pip】提示python.exe: No module named pip
用Anaconda安装的python 版本无法更新pip导致不能安装第三方库: 用Anaconda Prompt安装第三方库: python -m pip install --upgrade pip ...
- 3.VUE前端框架学习记录三:Vue组件化编码1
VUE前端框架学习记录三:Vue组件化编码1文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...
- 【Leetcode周赛】从contest-81开始。(一般是10个contest写一篇文章)
Contest 81 (2018年11月8日,周四,凌晨) 链接:https://leetcode.com/contest/weekly-contest-81 比赛情况记录:结果:3/4, ranki ...
- LOJ3119. 「CTS2019 | CTSC2019」随机立方体 二项式反演
题目传送门 https://loj.ac/problem/3119 现在 BZOJ 的管理员已经不干活了吗,CTS(C)2019 和 NOI2019 的题目到现在还没与传上去. 果然还是 LOJ 好. ...
- Vue-Cli 安装使用 moment.js
1.npm install moment -- save 2.main.js 引入moment //定义全局 时间过滤器 S import Moment from 'moment'; Vue.filt ...
- [原创] Delphi 修改新建窗体时候的默认字体格式
Delphi 修改新建窗体时候的默认字体格式 操作步骤: 1.运行输入“regedit” 2.找到目录(这里默认以Delphi 7为例) HKEY_CURRENT_USER\Software\Borl ...
- JS中常见的几种报错类型
1.SyntaxError(语法错误) 解析代码时发生的语法错误 var 1a; //Uncaught SyntaxError: Invalid or unexpected token 变量名错误 c ...
- cf 811c Vladik and Memorable Trip
原题链接:http://codeforces.com/contest/811/problem/C 题意:将数组中的连续数字连成若干个“线段”(或者不连),其实就是区间.区间必须满足对于其中的任意数字, ...