【问题标题】:Failure while importing relations from CSV file从 CSV 文件导入关系失败
【发布时间】:2016-03-11 11:11:22
【问题描述】:

我正在测试 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 或 60 万个 POSTE 关系是不是太多了?

编辑 我想我找到了问题所在。我有 300,000 人拥有相同的职位。一个节点的 300,000 个关系是否太多了?

【问题讨论】:

    标签: csv neo4j cypher


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-12-17
      • 2016-04-06
      • 2020-10-22
      • 2020-09-28
      • 2021-10-09
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多