Neo4J Batch Inserter 对于大 ID 很慢
Neo4J Batch Inserter is slow with big ids
我正在开发一个 RDF 文件导入器,但我遇到了一个问题,我的数据文件有重复的节点。出于这个原因,我使用大 ids 来使用批量插入器插入节点,但过程很慢。当迈克尔建议使用索引但过程仍然很慢时,我已经看到了 post。
另一种选择是合并重复的节点,但我认为在 Neo4J 中没有这样做的自动选项。我错了吗?
有人能帮帮我吗? :)
谢谢!
完美 :) 数据将具有以下结构:
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,但该哈希码是一个非常大的数字,这会减慢该过程。所以我可以检查 ids 以仅创建关系而不是节点。
谢谢大家! :)
CSV 批量导入器中还没有重复处理(计划在下一个版本中),因为它非常重要且占用大量内存。
最好在您这边进行重复数据删除。
不要使用外部提供的 id 作为节点 id,它可以从一开始就变大而不起作用。使用高效的映射(如 trove)来保持密钥和节点 ID 之间的映射。
我通常使用两次传递和一个数组,然后对数组进行排序,数组索引变为节点 ID,排序后您可以执行另一次传递以消除重复条目
我正在开发一个 RDF 文件导入器,但我遇到了一个问题,我的数据文件有重复的节点。出于这个原因,我使用大 ids 来使用批量插入器插入节点,但过程很慢。当迈克尔建议使用索引但过程仍然很慢时,我已经看到了 post。
另一种选择是合并重复的节点,但我认为在 Neo4J 中没有这样做的自动选项。我错了吗?
有人能帮帮我吗? :)
谢谢!
完美 :) 数据将具有以下结构:
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,但该哈希码是一个非常大的数字,这会减慢该过程。所以我可以检查 ids 以仅创建关系而不是节点。
谢谢大家! :)
CSV 批量导入器中还没有重复处理(计划在下一个版本中),因为它非常重要且占用大量内存。
最好在您这边进行重复数据删除。
不要使用外部提供的 id 作为节点 id,它可以从一开始就变大而不起作用。使用高效的映射(如 trove)来保持密钥和节点 ID 之间的映射。
我通常使用两次传递和一个数组,然后对数组进行排序,数组索引变为节点 ID,排序后您可以执行另一次传递以消除重复条目