繁体   English   中英

在 Gremlin 中查找异常值以查找具有多于 N 条边的节点?

[英]Finding outliers in Gremlin to find nodes with more than N edges?

我想弄清楚如何在我们的图表中找到异常值。 特别是具有多于 N 条边的节点,其中 N 可能是一些大数。 我们的图表有超过 20 亿个节点。 有没有一种有效的方法来做到这一点?

在这种规模下,您可能希望对查询进行多线程处理并将请求分批发送到服务器。 客户端线程的一个很好的近似值是服务器上 vCPU 数量的 2 倍。 如果您能够发送最有效的 ID 列表。 否则你将需要做很多range步骤。 然后每个线程会做一些事情,比如查询下面的多组 ID 范围:

g.V(<list of IDs>).filter(out().count().is(gt(x)))

然后您将收集应用程序中的所有异常值。 我认为您应该将其视为可能需要一段时间才能完成的批处理任务。

另一种方法是使用 Neptune Export 导出图形并将其加载到 Spark 中,然后使用 GraphFrames 之类的东西运行degree查询。

对于一个相当大的实例,我认为使用多线程的技术会起作用,特别是如果您能够轻松地生成您在每个查询中查找的顶点 ID 列表。 将查询分布在多个只读副本上也会加快速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM