我有一个包含 380 万个节点的数据集,我正在尝试将所有这些加载到 Neo4j 空间中。节点将进入一个简单的点层,因此具有所需的纬度和经度字段。我试过了:
MATCH (d:pointnode)
WITH collect(d) as pn
CALL spatial.addNodes("point_geom", pn) yield count return count
但这只是一直旋转,没有发生任何事情。我也尝试过(我一直在一行上运行下一个查询,但为了便于阅读,我只是将其分开):
CALL apoc.periodic.iterate("MATCH (d:pointnode)
WITH collect(d) AS pnodes return pnodes",
"CALL spatial.addNodes('point_geom', pnodes) YIELD count return count",
{batchSize:10000, parallel:false, listIterate:true})
但还是有很多旋转和偶尔的 JAVA 堆错误。
我尝试的最后一种方法是将 FME 与 HTTP 调用程序一起使用,这种方法可以工作,但速度非常慢,因此对于数百万个节点来说不能很好地扩展。
任何意见或建议将不胜感激。 apoc.periodic.commit 或 apoc.periodic.rock_n_roll 是否是比定期迭代更好的选择?
你有 3 800 000 个节点,你将它们收集在one列出...然后你就可以了one调用将该列表添加到层中......这将需要一段时间并消耗大量内存。伪周期迭代完全没有区别,因为你只做one拨电至空间.addNodes ...
这可能需要一段时间,但为什么不逐个节点添加它们呢?
CALL apoc.periodic.iterate(
"MATCH (d:pointnode) RETURN d",
"CALL spatial.addNode('point_geom', d) YIELD node RETURN node"
{batchSize:10000, parallel:false, listIterate:true})
希望这会有所帮助(或至少解释您遇到问题的原因)。
问候,
汤姆
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)