前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >neo4j import tool

neo4j import tool

作者头像
学到老
发布2019-01-25 14:01:30
7170
发布2019-01-25 14:01:30
举报

Use the import tool 这篇教程提供了使用import tool的详细案例 当使用csv文件载入数据库时,为了能够创建节点之间的关系,每一个节点必须有一个独一无二的标识,节点ID。 关系通过连接两个节点之间的ID被创建,在下面的例子中,节点标识符作为属性存储在节点上。 节点标识符稍后可能对其他系统的交叉引用,可追溯性等感兴趣,但它们不是强制性的。 如果您不希望标识符在完成导入后保留,则不要在:ID字段中指定属性名称。


Example 1

下面的例子中,我们使用包含电影(movies),演员(actors)和角色(roles).除非特殊说明,下面的例子假设数据库的名称是graph.db, 所有的文件位于neo4j的import目录下。注意:如果想一个接一个的运行Example,必须要先删掉已经存在的数据库。


movies.csv 格式如下:

代码语言:javascript
复制
movieId:ID,title,year:int,:LABEL
tt0133093,"The Matrix",1999,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel

每部电影都有一个id,用于从其他数据源中引用它。此外,每部电影都有一个标题和一个年份。 除了这些属性,我们还添加节点标签Movie和Sequel(续集),一个有节点两个标签label


actors.csv :

代码语言:javascript
复制
personId:ID,name,:LABEL
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor

ID是名字的简写,属性name,所有的标签都是Actor


roles.csv :

代码语言:javascript
复制
:START_ID,role,:END_ID,:TYPE
keanu,"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

为了创建节点之间的关系,我们使用actors.csv和movies.csv中为START_ID和END_ID字段定义的ID。 我们还需要为:TYPE字段提供关系类型(在这种情况下为ACTED_IN)


导入命令:

代码语言:javascript
复制
bin/neo4j-admin import --nodes import/movies.csv --nodes import/actors.csv --relationships import/roles.csv

Example 2:自定义配置选项(Customizing configuration option)

如果你的数据不满足默认格式,我们也可以自定义配置选项,下面的csv文件被;分割,使用 | 作为数组的分隔符,用’做引号

moves2.csv

代码语言:javascript
复制
movieId:ID;title;year:int;:LABEL
tt0133093;'The Matrix';1999;Movie
tt0234215;'The Matrix Reloaded';2003;Movie|Sequel
tt0242653;'The Matrix Revolutions';2003;Movie|Sequel

actors2.csv

代码语言:javascript
复制
personId:ID;name;:LABEL
keanu;'Keanu Reeves';Actor
laurence;'Laurence Fishburne';Actor
carrieanne;'Carrie-Anne Moss';Actor

roles2.csv

代码语言:javascript
复制
:START_ID;role;:END_ID;:TYPE
keanu;'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-import:

代码语言:javascript
复制
bin/neo4j-admin import --nodes import/movies2.csv --nodes import/actors2.csv --relationships import/roles2.csv --delimiter ";" --array-delimiter "|" --quote "'"

使用独立的头文件

当使用非常大的csv文件的时候,把头文件放在一个独立的文件中是十分方便的,这样的话在修改头部的时候就可以不用打开一个很大的文件,import tool 也可以处理单个压缩文件例如:

代码语言:javascript
复制
--nodes nodes.csv.gz . --relationships rels.zip

movies3-header.csv:

代码语言:javascript
复制
movieId:ID,title,year:int,:LABEL

movies3.csv.

代码语言:javascript
复制
tt0133093,"The Matrix",1999,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel

actors3-header.csv.

代码语言:javascript
复制
personId:ID,name,:LABEL

actors3.csv.

代码语言:javascript
复制
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor

roles3-header.csv.

代码语言:javascript
复制
:START_ID,role,:END_ID,:TYPE

roles3.csv.

代码语言:javascript
复制
keanu,"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 import:

代码语言:javascript
复制
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"
多个输入文件

movies4-header.csv.

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

movies4-part1.csv.

tt0133093,”The Matrix”,1999,Movie tt0234215,”The Matrix Reloaded”,2003,Movie;Sequel

movies4-part2.csv.

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

actors4-header.csv.

personId:ID,name,:LABEL

actors4-part1.csv.

keanu,”Keanu Reeves”,Actor laurence,”Laurence Fishburne”,Actor

actors4-part2.csv.

carrieanne,”Carrie-Anne Moss”,Actor

roles4-header.csv.

:START_ID,role,:END_ID,:TYPE

roles4-part1.csv.

keanu,”Neo”,tt0133093,ACTED_IN keanu,”Neo”,tt0234215,ACTED_IN keanu,”Neo”,tt0242653,ACTED_IN laurence,”Morpheus”,tt0133093,ACTED_IN laurence,”Morpheus”,tt0234215,ACTED_IN

roles4-part2.csv.

laurence,”Morpheus”,tt0242653,ACTED_IN carrieanne,”Trinity”,tt0133093,ACTED_IN carrieanne,”Trinity”,tt0234215,ACTED_IN carrieanne,”Trinity”,tt0242653,ACTED_IN

neo4j import:

bin/neo4j-admin import –nodes “import/movies4-header.csv,import/movies4-part1.csv,import/movies4-part2.csv” –nodes “import/actors4-header.csv,import/actors4part1.csv,import/actors4-part2.csv” –relationships “import/roles4-header.csv,import/roles4-part1.csv,import/roles4-part2.csv”

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年12月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Example 1
  • Example 2:自定义配置选项(Customizing configuration option)
  • 使用独立的头文件
  • 多个输入文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档