导入中/大型图形和解决方案时,APOC触发器性能对Neo4j的影响

时间:2019-01-13 14:46:23

标签: neo4j-apoc

我正在使用APOC来导入中等大小的图形(2K节点,2K关系)。我还使用了大约十二个触发器。当我使用GraphML导入过程导入图时,将图导入成功(导入速度非常快),然后查询挂起(创建触发导入的GraphImport节点的查询)。当我删除所有触发器时,导入就可以完成。我认为必须在导入过程返回之前完成触发器的处理????似乎是触发器导致了性能问题,或者可能是APOC中的错误。我可以禁用触发器,导入图形(不需要为此触发触发器),然后重新打开它们,但是我可能会错过那段时间内我真正想要的触发器。有人遇到过这个问题吗?

这是触发因素:

CALL apoc.trigger.add('import','UNWIND {createdNodes} AS n with n MATCH(n:GraphImport)CALL apoc.import.graphml(n.url,{batchSize:10000,readLabels:true,storeNodeIds :false,defaultRelationshipType:“ RELATED”})YIELD文件,源,格式,节点,关系,属性,时间RETURN null',{phase:'after'});

以下将执行导入但挂起:

创建(:GraphImport {url:“ ...”})...

删除所有其他触发器后,导入就可以完成。我并不期望触发器的处理必须在导致触发器完成的操作之前完成。我很确定这是如何工作的,因为如果触发器中有错误,您将在导致触发器被触发的操作上遇到异常。

0 个答案:

没有答案