Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在neo4j中对大型数据集使用load csv?_Neo4j - Fatal编程技术网

如何在neo4j中对大型数据集使用load csv?

如何在neo4j中对大型数据集使用load csv?,neo4j,Neo4j,我有一个user.csv文件,其中包含学生: id, first_name, last_name, locale, gender 1, Hasso, Plattner, en, male 2, Tina, Turner, de, female id, user_id, course_id 1, 1, 3 2, 1, 4 3, 2, 4 4, 2, 5 以及包含学生课程成员资格的memberships.csv文件: id, first_name, last_name, locale, gend

我有一个user.csv文件,其中包含学生:

id, first_name, last_name, locale, gender
1, Hasso, Plattner, en, male
2, Tina, Turner, de, female
id, user_id, course_id
1, 1, 3
2, 1, 4
3, 2, 4
4, 2, 5
以及包含学生课程成员资格的memberships.csv文件:

id, first_name, last_name, locale, gender
1, Hasso, Plattner, en, male
2, Tina, Turner, de, female
id, user_id, course_id
1, 1, 3
2, 1, 4
3, 2, 4
4, 2, 5
将学生和课程转换为顶点 当然,我也加入了 将用户信息导入memberships.csv

id, user_id, first_name, last_name, course_id, locale, gender
1, 1, Hasso, Plattner, 3, en, male
2, 1, Hasso, PLattner, 4, en, male
3, 2, Tina, Turner, 4, de, female
4, 2, Tina, Turner, 5, de, female
并使用加载csv、一些约束和合并:

create constraint on (g:Gender) assert g.gender is unique
create constraint on (l:locale) assert l.locale is unique
create constraint on (c:Course) assert c.course is unique
create constraint on (s:Student) assert s.student is unique

USING PERIODIC COMMIT 20000
LOAD CSV WITH HEADERS FROM
'file: memberships.csv'
AS line
MERGE (s:Student {id: line.id, name: line.first_name +" "+line.last_name })
MERGE (c:Course {id: line.course_id})
MERGE (g:Gender {gender:line.gender})
MERGE (l:locale {locale:line.locale})
MERGE (s)-[:HAS_GENDER]->(g)
MERGE (s)-[:HAS_LANGUAGE]->(l)
MERGE (s)-[:ENROLLED_IN]->(c)
对于1000个会员资格,neo4j需要2秒才能加载, 10000名会员3分钟, 对于100000,它会因“未知错误”而失败

i) 如何消除错误? ii)是否有更优雅的方式从.csv加载此类结构 有60万会员


我使用的是一台具有2.4 GHz和16GB RAM的本地计算机。

Neo4j浏览器在密码查询上有60秒的超时时间(由于HTTP传输)。这并不意味着您的查询没有运行到完成,事实上在数据库级别上没有错误。您的查询将继续通过浏览器运行,但您将无法看到其结果。要查看长时间运行的查询运行到完成,请使用Neo4j shell


首先尝试从CSV导入节点,然后再导入REL

另外,尝试在没有性别和区域设置节点的情况下执行导入运行,并将其存储为属性

如果以后确实需要这些(密集)节点,请尝试按如下方式运行:

CREATE (g:Gender {gender:"male"})
MATCH (s:Student {gender:"male"})
CREATE (s)-[:HAS_GENDER]->(g)
这些关系将是唯一的,并且创建比合并更便宜。我假设检查每个插入学生的2*(n-1)个rel加起来是O(n^2)