NEO4J亿级数据导入导出以及数据更新

1、添加配置

apoc.export.file.enabled=true
apoc.import.file.enabled=true
dbms.directories.import=import
dbms.security.allow_csv_import_from_file_urls=true

2、导出操作

CALL apoc.export.csv.all(‘C:\\Users\\11416\\.Neo4jDesktop\\neo4jDatabases\\database-bcbe66f8-2f8f-4926-a1b8-bbdb0c4c6409\\installation-3.4.1\\data\\back\\db.csv‘,{stream:true,batchSize:2})

db.csv文件内容样例

3、导入操作

// 导入大量数据不适用
CALL apoc.load.csv(‘C:\\Users\\11416\\.Neo4jDesktop\\neo4jDatabases\\database-bcbe66f8-2f8f-4926-a1b8-bbdb0c4c6409\\installation-3.4.1\\data\\back\\db.csv‘) yield lineNo, map, list
RETURN *

// 支持在开放事务中提交-使用之前需要先安装存储过程库
CALL apoc.periodic.iterate(
 ‘CALL apoc.load.csv("file:/C:/Users/11416/.Neo4jDesktop/neo4jDatabases/database-06767a53-355b-44eb-b8a8-0156dff8f8e1/installation-3.4.1/import/test.csv") yield map as row return row‘,
 ‘merge (n:Label {name:row.Linkin}) with * merge (m:Mark {name:row.学校}) with * merge (n)-[r:教育经历]->(m)‘
  ,{batch:10000, iterateList:true, parallel:true})

// 不支持在开放事务中提交
using periodic commit 1000
load csv with headers from "file:///test.csv" as line with line
merge (n:Linkin {name:line.LinkedinID}) with *
merge (m:学校 {name:line.学校}) with *
merge (n)-[r:教育经历]->(m)

// CSV文件压缩为ZIP之后进行导入
using periodic commit 1000
load csv with headers from "file:///studentBatch.zip" as line with line
merge (n:Linkin {name:line.LinkedinID}) with *
merge (m:学校 {name:line.学校}) with *
merge (n)-[r:教育经历]->(m)

// Twitter公开数据导入测试(https://snap.stanford.edu/data/twitter-2010.txt.gz)
USING PERIODIC COMMIT 1000 LOAD CSV FROM "file:///twitter-2010.txt.gz" AS line FIELDTERMINATOR ‘ ‘ WITH toInt(line[0]) as id MERGE (n:Person {id:id}) ON CREATE SET n.name = toString(id), n.sex = ["男", "女"][(id % 2)],n.age = (id % 50) + 15,n.country = ["中国", "美国", "法国", "英国", "俄罗斯", "加拿大", "德国", "日本", "意大利"][(id % 9)];

4、批量更新还可以使用UNWIND子句

// 节点关系同时MERGE
UNWIND  [{from:"Pamela May24173068",to:"United Nations Conference on Trade and Development (UNCTAD)9491230"},{from:"Carl Walsh33095175",to:"United Nations Conference on Trade and Development (UNCTAD)9491230"}] as row
MERGE (from:Linkin {name:row.from}) MERGE (to:认证机构 {name:row.to}) WITH from,to
CALL apoc.merge.relationship(from, ‘奖项‘, null, null, to) YIELD rel RETURN count(*) as count;

// 示例一:apoc.create.relationship的示例
UWNIND {batch} as row
MATCH (from) WHERE id(n) = row.from
MATCH (to:Label) where to.key = row.to
CALL apoc.create.relationship(from, row.type, row.properties, to) yield rel
RETURN count(*)

// 示例二:动态创建节点和关系(标签是一个String数组/属性就是一个Map):
// 1
UWNIND {batch} as row
CALL apoc.create.node(row.labels, row.properties) yield node
RETURN count(*)
// 2
UNWIND [{label:["label1","label2"],properties:{name:"Emil Eifrem",born:1978}}] as row
CALL apoc.create.node(row.labels, row.properties) yield node
RETURN count(*)
// 3
UNWIND [{labels:["Person"],properties:{name:"Emil Eifrem"}}] as row
CALL apoc.merge.node(row.labels, row.properties,null) yield node
RETURN node

// 示例三
UNWIND {batch} as row
UNWIND [{from:"[email protected]",to:"[email protected]",properties:{since:2012}},{from:"[email protected]",to:"[email protected]",properties:{since:2016}}] as row
MATCH (from:Label {from:row.from})
MATCH (to:Label {to:row.to})
MERGE (from)-[rel:KNOWS]->(to)
ON CREATE SET rel.since = row.properties.since

5、亿级数据量更新操作

执行一

// 1、根据节点属性对已有节点添加新的标签(更新失败)-超时设置:dbms.transaction.timeout=180s
MATCH (n:Lable) WHERE n.userDefinedImageUrl IS NOT NULL SET n:头像

更新失败

执行二

// 2、根据节点属性对已有节点添加新的标签(更新成功)
CALL apoc.periodic.iterate(‘MATCH (n:LinkedinID) WHERE n.userDefinedImageUrl IS NOT NULL RETURN n‘,‘WITH {n} AS n SET n:头像‘,{batchSize:10,parallel:true});

更新成功

参考??一

参考??二

参考??三

原文地址:https://blog.csdn.net/superman_xxx/article/details/83589953

原文地址:https://www.cnblogs.com/jpfss/p/11395902.html

时间: 2024-10-08 16:09:51

NEO4J亿级数据导入导出以及数据更新的相关文章

Mysql 上亿级数据导入Hive思路分享

前提条件: 数据库容量上亿级别,索引只有id,没有创建时间索引 达到目标: 把阿里云RDS Mysql表数据同步到hive中,按照mysql表数据的创建时间日期格式分区,每天一个分区方便查询 每天运行crontab定时的增量备份数据,还是依据自增的id 遇到的问题: 没法建立创建时间的索引,不能按时间范围去查询,那样会严重影响线上数据库的性能?只能按照id的方式去增量的读取索引,存储到临时表,然后在转储到正式表,动态的写入时间分区 使用sqoop直接导入hive?还是把数据导入到hdfs以內建表

mysql 千万级数据的导入导出

最近应公司要求,在做数据库的导入导出.经查询每天的数据量在350W条左右.经过大量测试,感觉以下方法比较好 数据导出:SELECT INTO-OUTFILE 基本语法: SELECT [INTO OUTFILE 'file_name' [CHARACTER SET charset_name] export_options | INTO DUMPFILE 'file_name' | INTO var_name [, var_name]] 该语句分为两个部分.前半部分是一个普通的SELECT语句,通

PHPExcel导入导出

慕课教程 -- PHPExcel导入导出 一.PHPExcel导出操作 1.快速入门 <?php #找到当前脚本的路径 $dir = dirname(__FILE__); #引入PHPExcel插件文件 require $dir."/excel/PHPExcel.php"; #实例化PHPExcel类 $objPHPExcel = new PHPExcel(); #获得当前活动sheet的操作对象 $objSheet = $objPHPExcel->getActiveShe

功能齐全、效率一流的免费开源数据库导入导出工具(c#开发,支持SQL server、SQLite、ACCESS三种数据库),每月借此处理数据5G以上

软件名:DataPie 功能:支持SQL server.SQLite.ACCESS数据库的导入.导出.存储过程调用,支持EXCEL2007.EXCEL2003.ACCESS2007. CSV文件导入数据库,支持EXCEL.CSV.ZIP.ACCESS文件方式导出,支持数据拆分导出及自定义SQL查询与导出. 开发背景:作者从事财务管理工作,主要是出具集团的内部财务报表,随着公司精细化管理的需求,管理报表的数据量急速增长, 依赖EXCEL加工处理数据已经变得极为困难,因此团队全面转向关系数据库进行数

2016sdcc中国开发者大会参后感(一):亿级数据秒处理架构设计

2016sdcc中国开发者大会参后感 sdcc大会可以理解是中国整个IT行业技术大牛的一个分享会,有幸参加此会,首先要感谢我的好兄弟阿辉,他给我推荐此大会赠我入场券并且督促我参与,真的非常感谢. sdcc分享会是由csdn从2007年开始每年举办的一次技术嘉年华,邀请行业内近百名技术大牛倾力分享所在公司运用的前沿IT技术,其中大多来自阿里巴巴.京东.腾讯.百度等高科技互联网公司,其中还一些初创公司的ceo的创业经历的分享. 其实我知道这次去肯定要被虐惨,毕竟我还是知道自己属于哪个层次,但是不管怎

mysql表的导入导出

⒈select ... into outfile导出数据/load data infile导入数据⑴创建新表,定义表结构  ⅰ方法一:在同一数据库中      ①复制表结构及数据到新表      CREATE TABLE newtable  SELECT * FROM oldtable      ② 只复制表结构到新表       CREATE TABLE newtable  SELECT * FROM oldtable WHERE 1=2  ⅱ方法二:适应库与库之间,或者单库      ①只复

加速 MySQL 导入导出的方法

http://www.21andy.com/new/20100917/1952.html MySQL导出的SQL语句在导入时有可能会非常非常慢,在处理百万级数据的时候,可能导入要花几小时.在导出时合理使用几个参数,可以大大加快导 入的速度. -e 使用包括几个VALUES列表的多行INSERT语法; --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小; --net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_b

Mysql --学习:大量数据快速导入导出

声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设计,主要是之前未分区,考虑到数据量大了以后要设计成分区表,同时要对数据库中其他表做好备份恢复的工作. [实验环境] Mysql版本:mysql-5.6.19 操作系统:Ubuntu 12.04 内存:32G CPU:24核  Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00

[NewLife.XCode]导入导出(实体对象百变魔君)

NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含多年开发经验于其中,代表作有百亿级大数据实时计算项目. 开源地址:https://github.com/NewLifeX/X(求star, 864+) XCode是充血模型,在实体类上附带有大量便捷操作,其中就包括各种目标数据类型的导入导出! Json序列化 当下最常用的