Neo4j在与大数据建立关系时卡住了
我使用这个密码查询来创建Neo4j中两个节点之间的关系Neo4j在与大数据建立关系时卡住了,neo4j,cypher,bigdata,Neo4j,Cypher,Bigdata,我使用这个密码查询来创建Neo4j中两个节点之间的关系 MATCH (first:FIRSTNODE) with first MATCH (second:SECONDNODE) WHERE first.ID = second.ID CREATE (first)-[:RELATION]->(second) 第一个有100.000个节点,第二个有1.100.000个节点 我导入了csv文件,然后创建了两个表的索引;但是当我尝试使用关系neo4j运行查询时,它被卡住了,停止了工作。 我注意到,
MATCH (first:FIRSTNODE)
with first
MATCH (second:SECONDNODE)
WHERE first.ID = second.ID
CREATE (first)-[:RELATION]->(second)
第一个有100.000个节点,第二个有1.100.000个节点
我导入了csv文件,然后创建了两个表的索引;但是当我尝试使用关系neo4j运行查询时,它被卡住了,停止了工作。
我注意到,当这种情况发生时,cpu使用率达到100%
我使用的是8x4.0Ghz的cpu、10Gb的ram和SSD
你知道什么能帮我解决这个问题吗
编辑1:
使用它是有效的。但如果我运行第二个查询,如下所示:
call apoc.periodic.commit("
MATCH (third:THIRDNODE)
WHERE NOT (third)-[:RELATION2]->()
WITH third LIMIT {limit}
MATCH (second:SECONDNODE)
WHERE third.ID = second.ID2
CREATE (third)-[:RELATION2]->(second)
RETURN count(*)
", {limit:10000})
它又卡住了您可以尝试从中使用。关于此程序的文档说明:
apoc.periodic.commit(语句,参数)以
分离事务,直到返回0
安装APOC程序并尝试:
call apoc.periodic.commit("
MATCH (first:FIRSTNODE),
WHERE NOT (first)-[:RELATION]->()
WITH first LIMIT {limit}
MATCH (second:SECONDNODE)
WHERE first.ID = second.ID
CREATE (first)-[:RELATION]->(second)
RETURN count(*)
", {limit:10000})
请记住根据您使用的Neo4j版本安装APOC程序。查看.中的第一个关系查询,它可以工作,但如果我必须在同一会话中执行另一个关系,它就不起作用anymore@NicolaCurr请你再解释一下你的问题好吗?我没有理解。我相信你忘了第一个节点的匹配,对吧?不,这是第二个和第三个节点之间的另一种关系。最后的关系应该是这样的:(第一)-[:relation]->(第二)&(第三)-[:RELATION2]->(第二)。要处理关系2,我必须运行另一个查询