问题描述
我正在尝试使用 neo4j 对大型多重图进行建模。
该图有大约 600 万个节点和大约。 500M 关系。该图相对稀疏,除了少数几块非常密集,有很多多条边(从 100 到 1000 条重复边)。
由于超级节点聚集在一个关系网中,因此许多关系使其难以有效地查询和可视化。我正在考虑重构与节点的关系,但我不确定如何去做。
选项 1:将聚合值提取到节点并对(聚合)关系 (a)-[r:REL]->(b)
到 (a)-[:REL_AGG_PART1]->(:REL_AGG_NODE{f1:r.f1,...})-[:REL_AGG_PART2]->(b)
选项 2: 提取中间节点的所有关系 + 聚合的选项 1
选项 3:将多个关系提取为聚合关系
- 优点:易于工作和可视化
- 缺点:没有索引且关系非常复杂
是否也值得将聚合数据从节点重构到辅助节点,使得节点携带查询中经常使用的数据,但更复杂的数据保存在:FULL_DATA_NODE
中?
例如重构
(a)-[r:REL]->(b)
到 (a)-[:REL_AGG_PART1]->(n:REL_AGG_NODE{minimal_fieldset})-[:REL_AGG_PART2]->(b)
和 (n)-[:FULL_DATA]->(m:FULL_DATA_NODE{full aggregated data})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)