neo4j import tool

来源:互联网 发布:美工包括哪些 编辑:程序博客网 时间:2024/06/15 03:52

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


Example 1

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


movies.csv 格式如下:

movieId:ID,title,year:int,:LABELtt0133093,"The Matrix",1999,Moviett0234215,"The Matrix Reloaded",2003,Movie;Sequeltt0242653,"The Matrix Revolutions",2003,Movie;Sequel

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


actors.csv :

personId:ID,name,:LABELkeanu,"Keanu Reeves",Actorlaurence,"Laurence Fishburne",Actorcarrieanne,"Carrie-Anne Moss",Actor

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


roles.csv :

:START_ID,role,:END_ID,:TYPEkeanu,"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

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


导入命令:

bin/neo4j-admin import --nodes import/movies.csv --nodes import/actors.csv --relationships import/roles.csv

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

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

moves2.csv

movieId:ID;title;year:int;:LABELtt0133093;'The Matrix';1999;Moviett0234215;'The Matrix Reloaded';2003;Movie|Sequeltt0242653;'The Matrix Revolutions';2003;Movie|Sequel

actors2.csv

personId:ID;name;:LABELkeanu;'Keanu Reeves';Actorlaurence;'Laurence Fishburne';Actorcarrieanne;'Carrie-Anne Moss';Actor

roles2.csv

:START_ID;role;:END_ID;:TYPEkeanu;'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-import:

bin/neo4j-admin import --nodes import/movies2.csv --nodes import/actors2.csv --relationships import/roles2.csv --delimiter ";" --array-delimiter "|" --quote "'"

使用独立的头文件

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

--nodes nodes.csv.gz . --relationships rels.zip

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 import:

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”

原创粉丝点击