我是靠谱客的博主 淡定短靴,最近开发中收集的这篇文章主要介绍mysql导入数neo4j_Neo4j之导入数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

​neo4j数据导入load csv

admin-import 或 neo4j-import

load csv适用场景:0 ~ 1000w

速度:一般 5000/s

优点:可以加载本地/远程CSV;可实时插入

缺点:导入速度较慢;需要将数据转换成csv

示例

node.csvb6b0ea842890425588d4d3cfb38139a9,"文烁"

5099c4f943d94fa1873165e3f6f3c2fb,"齐贺喜"

c83ed0ae9fb34baa956a42ecf99c8f6e,"李雄"

e62d1142937f4de994854fa1b3f0670a,"房玄龄"

脚本using periodic commit 10000 load csv from "file:/node.csv" as line create (:test {id:line[0], name:line[1]})

node.csvuuid,name,Label

b6b0ea842890425588d4d3cfb38139a9,"文烁",Label1

5099c4f943d94fa1873165e3f6f3c2fb,"齐贺喜",Label3

c83ed0ae9fb34baa956a42ecf99c8f6e,"李雄",Label2

e62d1142937f4de994854fa1b3f0670a,"房玄龄",Label

脚本using periodic commit 10000 load csv with headers from "file:/neo4j/node.csv" as line with line create (:Test {uuid:line.uuid, name:line.name});

admin-import 或 neo4j-import适用场景:千万以上 nodes

速度:非常快 (xw/s)

优点:官方出品,占用更少的资源

缺点:需要转成CSV;必须停止neo4j;只能生成新的数据库,而不能在已存在的数据库中插入数据。

admin-import 基本语法neo4j-admin import [--mode=csv] [--database=]

[--additional-config=]

[--report-file=]

[--nodes[:Label1:Label2]=]

[--relationships[:RELATIONSHIP_TYPE]=]

[--id-type=]

[--input-encoding=]

[--ignore-extra-columns[=]]

[--ignore-duplicate-nodes[=]]

[--ignore-missing-nodes[=]]

[--multiline-fields[=]]

[--delimiter=]

[--array-delimiter=]

[--quote=]

[--max-memory=]

[--f=]

[--high-io=]

--ignore-extra-columns=true 忽略多余列参数

--ignore-missing-nodes=true 忽略失去节点参数

--ignore-duplicate-nodes=true 忽略重复节点参数

导入数据示例:

示例一

三个csv

movies.csvmovie:ID,name,:LABEL

tt0133093,The Matrix,movie

tt0234215,The Matrix Reloaded,movie

tt0242653,The Matrix Revolutions,movie

actors.csvperson:ID,name,:LABEL

keanu,Keanu Reeves,person

laurence,Laurence Fishburne,person

carrieanne,Carrie-Anne Moss,person

roles.csv:START_ID,role,:END_ID

keanu,Neo,tt0133093

keanu,Neo,tt0234215

keanu,Neo,tt0242653

laurence,Morpheus,tt0133093

laurence,Morpheus,tt0234215

laurence,Morpheus,tt0242653

carrieanne,Trinity,tt0133093

neo4j-import 导入.binneo4j-import --into datadatabasesgraph.db --nodes .importpracticeactors.csv --nodes .importpracticemovies.csv --relationships:ACTED_IN .importpracticeroles.csv --skip-duplicate-nodes=true --skip-bad-relationships=true --stacktrace --bad-tolerance=500000

neo4j-admin 导入.binneo4j-admin import --database=graph.db --nodes .importpracticeactors.csv --nodes .importpracticemovies.csv --relationships:ACTED_IN .importpracticeroles.csv

示例二

movies3-header.csvmovieId:ID,title,year:int,:LABEL

movies3.csvtt0133093,"The Matrix",1999,Movie

tt0234215,"The Matrix Reloaded",2003,Movie;Sequel

tt0242653,"The Matrix Revolutions",2003,Movie;Sequel

actors3-header.csvpersonId:ID,name,:LABEL

actors3.csvkeanu,"Keanu Reeves",Actor

laurence,"Laurence Fishburne",Actor

carrieanne,"Carrie-Anne Moss",Actor

roles3-header.csv:START_ID,role,:END_ID,:TYPE

roles3.csvkeanu,"Neo",tt0133093,ACTED_IN

keanu,"Neo",tt0234215,ACTED_IN

keanu,"Neo",tt0242653,ACTED_IN

laurence,"Morpheus",tt0133093,ACTED_IN

laurence,"Morpheus",tt0234215,ACTED_IN

laurence,"Morpheus",tt0242653,ACTED_IN

carrieanne,"Trinity",tt0133093,ACTED_IN

carrieanne,"Trinity",tt0234215,ACTED_IN

carrieanne,"Trinity",tt0242653,ACTED_IN

导入脚本neo4j_home$ bin/neo4j-admin import --nodes="import/movies3-header.csv,import/movies3.csv" --nodes="import/actors3-header.csv,import/actors3.csv" --relationships="import/roles3-header.csv,import/roles3.csv"

示例三neo4j-admin import --mode=csv --database=userMovie.db --nodes data_testmovies.csv --nodes data_testactors.csv --relationships data_testroles.csv

bin/neo4j-admin import --nodes:Movie import/movie_node.csv --relationships:ACTED_IN=import/roles5b.csv

注意:

注意一

连接据方式:建立软连接move graph.db graph_copy.db

mklink /D graph.db userMovie.db windows

ln -s graph.db userMovie.db

注意二

通过neo4j-admin方式导入的话,需要暂停服务,并且需要清除graph.db,这样才能导入进去数据。而且,只能在初始化数据时,导入一次之后,就不能再次导入。

所以这种方式,可以在初次建库的时候,导入大批量数据,等以后如果还需要导入数据时,可以采用上边的方法。

注意三

所以最好把csv文件放到import目录下,注意,事先,进入$NEO_HOME/conf/neo4j.conf配置文件并取消这一行的注释:

dbms.directories.import=import

开启引入文件apoc.import.file.enabled=true

dbms.security.procedures.unrestricted=apoc.*

dbms.security.allow_csv_import_from_file_urls=true

注意四

因为neo4j是utf-8的,而CSV默认保存是ANSI的,需要用记事本另存为成UTF-8的

注意五

在neo4j中,虽然有一个自增的id属性,但是要想使用它还是很麻烦的,尤其是在web管理端

因此在使用CSV创建关系时,需要我们自己指定或添加一个属性来作为“主键”,在创建关系时根据该属性来获取节点,并添加关系

参考:

最后

以上就是淡定短靴为你收集整理的mysql导入数neo4j_Neo4j之导入数据的全部内容,希望文章能够帮你解决mysql导入数neo4j_Neo4j之导入数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部