从CSV文件

时间:2016-03-11 11:11:23

标签: csv neo4j cypher

我正在测试Neo4j 2.3.2,我在导入文件时遇到了问题。

首先,我提供有关数据的信息。我有人在公司工作,每个人至少有一个职称(少数有2个职称)。在我们的逻辑中,职称被分类,每个职位都有一个代码,但相同的代码可能属于不同的类别(称为环境)。

目前,我在数据库中拥有550,000名员工,15个环境和30个职位。

我有一个CSV文件,可以为每个人链接他/她的职位(在其环境中)。此文件与数据库中的人员具有相同的记录数。所以,我在Web GUI中启动了这个Cypher查询:

using periodic commit 
load csv with headers from "file:///C:\\...\\individu.csv" as row
match (c:Contact {individuId: row.NUM_INDIVIDU}), (f:Fonction {rank: row.NUM_FONC})-[:DEPEND]->(e:Environnement {rank: row.NUM_ENV})
merge (c)-[:POSTE]->(f);

我收到了这个错误:

  

超出GC开销限额

我的数据大小不是很重要,所以我不明白为什么导入失败。

糟糕的建模想法是否可以使用这种关系?我应该将这些数据保存为属性吗?大约有500或600万个POSTE关系太多了吗?

修改 我想我发现了这个问题。我有30万人拥有相同的职位。与一个节点有300,000个关系太多了吗?

1 个答案:

答案 0 :(得分:0)

看起来您的import语句使用了一个急切的管道,导致定期提交无法按预期工作。因此导入在单个事务中运行,这需要太多内存,因此导致GC问题。

有很多关于急切管道问题的信息,例如: http://www.markhneedham.com/blog/2014/10/23/neo4j-cypher-avoiding-the-eager/