Neo4J批量插入器很慢,有大的ID

时间:2015-03-11 19:59:07

标签: neo4j

我正在处理RDF文件导入程序,但我遇到了问题,我的数据文件有重复的节点。出于这个原因,我使用大的ID来使用批量插入器插入节点,但进程很慢。当迈克尔建议使用索引时,我已经看到了这个post,但过程仍然很慢。

另一种选择是合并重复的节点,但我认为在Neo4J中没有自动选项。我错了吗?

有人能帮帮我吗? :)

谢谢!

2 个答案:

答案 0 :(得分:0)

完美:)数据将具有以下结构:

  

chembl_activity:CHEMBL_ACT_102540 bao:BAO_0000208 bao:BAO_0002146。

     

chembl_document:CHEMBL1129248 cco:hasActivity   chembl_activity:CHEMBL_ACT_102551。

     

chembl_activity:CHEMBL_ACT_102540 cco:hasDocument   chembl_document:CHEMBL1129248。

每一行对应两个节点之间的关系,我们可以看到节点 chembl_activity:CHEMBL_ACT_102540 是重复的。

我想将节点名称的哈希码保存为id,但该哈希码是一个非常大的数字,会减慢进程的速度。所以我可以检查id只能创建关系,而不是节点。

谢谢大家! :)

答案 1 :(得分:0)

CSV批量导入程序中没有重复处理(它计划用于下一个版本),因为它非常重要且内存昂贵。

最好去除你的副本。

不要使用外部提供的ID作为node-id,它可以从一开始就变得很大,但是不起作用。使用有效的映射(如trove)来保持密钥和node-id之间的映射。

我通常使用两遍和一个数组,然后对数组进行排序,数组索引成为node-id,排序后你可以做另一个nulls-out重复项的传递