首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Neo4j之导入数据

Neo4j之导入数据

作者头像
分母为零
发布2019-07-12 16:01:33
1.4K0
发布2019-07-12 16:01:33
举报
文章被收录于专栏:分母为零分母为零分母为零

neo4j数据导入

  • load csv
  • admin-import 或 neo4j-import

load csv

  • 适用场景:0 ~ 1000w
  • 速度:一般 5000/s
  • 优点:可以加载本地/远程CSV;可实时插入
  • 缺点:导入速度较慢;需要将数据转换成csv

示例

node.csv

b6b0ea842890425588d4d3cfb38139a9,"文烁"5099c4f943d94fa1873165e3f6f3c2fb,"齐贺喜"c83ed0ae9fb34baa956a42ecf99c8f6e,"李雄"e62d1142937f4de994854fa1b3f0670a,"房玄龄"

脚本

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

node.csv

uuid,name,Labelb6b0ea842890425588d4d3cfb38139a9,"文烁",Label15099c4f943d94fa1873165e3f6f3c2fb,"齐贺喜",Label3c83ed0ae9fb34baa956a42ecf99c8f6e,"李雄",Label2e62d1142937f4de994854fa1b3f0670a,"房玄龄",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=<name>]                          [--additional-config=<config-file-path>]                          [--report-file=<filename>]                          [--nodes[:Label1:Label2]=<"file1,file2,...">]                          [--relationships[:RELATIONSHIP_TYPE]=<"file1,file2,...">]                          [--id-type=<STRING|INTEGER|ACTUAL>]                          [--input-encoding=<character-set>]                          [--ignore-extra-columns[=<true|false>]]                          [--ignore-duplicate-nodes[=<true|false>]]                          [--ignore-missing-nodes[=<true|false>]]                          [--multiline-fields[=<true|false>]]                          [--delimiter=<delimiter-character>]                          [--array-delimiter=<array-delimiter-character>]                          [--quote=<quotation-character>]                          [--max-memory=<max-memory-that-importer-can-use>]                          [--f=<File containing all arguments to this import>]                          [--high-io=<true/false>]
  • --ignore-extra-columns=true 忽略多余列参数
  • --ignore-missing-nodes=true 忽略失去节点参数
  • --ignore-duplicate-nodes=true 忽略重复节点参数

导入数据示例:

示例一

三个csv

movies.csv

movie:ID,name,:LABELtt0133093,The Matrix,moviett0234215,The Matrix Reloaded,moviett0242653,The Matrix Revolutions,movie

actors.csv

person:ID,name,:LABELkeanu,Keanu Reeves,personlaurence,Laurence Fishburne,personcarrieanne,Carrie-Anne Moss,person

roles.csv

:START_ID,role,:END_IDkeanu,Neo,tt0133093keanu,Neo,tt0234215keanu,Neo,tt0242653laurence,Morpheus,tt0133093laurence,Morpheus,tt0234215laurence,Morpheus,tt0242653carrieanne,Trinity,tt0133093

neo4j-import 导入

.\bin\neo4j-import --into data\databases\graph.db --nodes .\import\practice\actors.csv --nodes .\import\practice\movies.csv --relationships:ACTED_IN .\import\practice\roles.csv --skip-duplicate-nodes=true --skip-bad-relationships=true --stacktrace --bad-tolerance=500000

neo4j-admin 导入

.\bin\neo4j-admin import --database=graph.db --nodes .\import\practice\actors.csv --nodes .\import\practice\movies.csv --relationships:ACTED_IN .\import\practice\roles.csv
示例二

movies3-header.csv

movieId:ID,title,year:int,:LABEL

movies3.csv

tt0133093,"The Matrix",1999,Moviett0234215,"The Matrix Reloaded",2003,Movie;Sequeltt0242653,"The Matrix Revolutions",2003,Movie;Sequel

actors3-header.csv

personId:ID,name,:LABEL

actors3.csv

keanu,"Keanu Reeves",Actorlaurence,"Laurence Fishburne",Actorcarrieanne,"Carrie-Anne Moss",Actor

roles3-header.csv

:START_ID,role,:END_ID,:TYPE

roles3.csv

keanu,"Neo",tt0133093,ACTED_INkeanu,"Neo",tt0234215,ACTED_INkeanu,"Neo",tt0242653,ACTED_INlaurence,"Morpheus",tt0133093,ACTED_INlaurence,"Morpheus",tt0234215,ACTED_INlaurence,"Morpheus",tt0242653,ACTED_INcarrieanne,"Trinity",tt0133093,ACTED_INcarrieanne,"Trinity",tt0234215,ACTED_INcarrieanne,"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_test\movies.csv --nodes data_test\actors.csv --relationships data_test\roles.csvbin/neo4j-admin import --nodes:Movie import/movie_node.csv --relationships:ACTED_IN=import/roles5b.csv

注意:

注意一

连接据方式:建立软连接

move graph.db graph_copy.dbmklink /D graph.db userMovie.db windowsln -s graph.db userMovie.db
注意二

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

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

注意三

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

dbms.directories.import=import

开启引入文件

apoc.import.file.enabled=truedbms.security.procedures.unrestricted=apoc.*dbms.security.allow_csv_import_from_file_urls=true
注意四

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

注意五

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

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

参考:

https://neo4j.com/docs/operations-manual/current/tutorial/import-tool/

http://weikeqin.cn/2017/04/14/neo4j-import-data/

https://blog.csdn.net/superman_xxx/article/details/83589953

http://weikeqin.cn/categories/Neo4j/page/2/

https://blog.csdn.net/wenxuechaozhe/article/details/80548835

https://blog.csdn.net/linsea/article/details/83463213

https://blog.csdn.net/huangzhijie3918/article/details/72732816

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 分母为零 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • neo4j数据导入
    • load csv
      • 示例
    • admin-import 或 neo4j-import
      • admin-import 基本语法
      • 导入数据示例:
      • 注意:
    • 参考:
    相关产品与服务
    文件存储
    文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档