Use the import tool 这篇教程提供了使用import tool的详细案例 当使用csv文件载入数据库时,为了能够创建节点之间的关系,每一个节点必须有一个独一无二的标识,节点ID。 关系通过连接两个节点之间的ID被创建,在下面的例子中,节点标识符作为属性存储在节点上。 节点标识符稍后可能对其他系统的交叉引用,可追溯性等感兴趣,但它们不是强制性的。 如果您不希望标识符在完成导入后保留,则不要在:ID字段中指定属性名称。
下面的例子中,我们使用包含电影(movies),演员(actors)和角色(roles).除非特殊说明,下面的例子假设数据库的名称是graph.db, 所有的文件位于neo4j的import目录下。注意:如果想一个接一个的运行Example,必须要先删掉已经存在的数据库。
movies.csv 格式如下:
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 :
personId:ID,name,:LABEL
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor
ID是名字的简写,属性name,所有的标签都是Actor
roles.csv :
: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)
导入命令:
bin/neo4j-admin import --nodes import/movies.csv --nodes import/actors.csv --relationships import/roles.csv
如果你的数据不满足默认格式,我们也可以自定义配置选项,下面的csv文件被;分割,使用 | 作为数组的分隔符,用’做引号
moves2.csv
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
personId:ID;name;:LABEL
keanu;'Keanu Reeves';Actor
laurence;'Laurence Fishburne';Actor
carrieanne;'Carrie-Anne Moss';Actor
roles2.csv
: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:
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,Movie
tt0234215,"The Matrix Reloaded",2003,Movie;Sequel
tt0242653,"The Matrix Revolutions",2003,Movie;Sequel
actors3-header.csv.
personId:ID,name,:LABEL
actors3.csv.
keanu,"Keanu Reeves",Actor
laurence,"Laurence Fishburne",Actor
carrieanne,"Carrie-Anne Moss",Actor
roles3-header.csv.
:START_ID,role,:END_ID,:TYPE
roles3.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
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/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”
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有