【问题标题】:Finding outliers in Gremlin to find nodes with more than N edges?在 Gremlin 中查找异常值以查找具有 N 条以上边的节点?
【发布时间】:2021-09-27 22:02:59
【问题描述】:

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

【问题讨论】:

    标签: gremlin amazon-neptune


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2020-08-13
      • 2018-09-09
      相关资源
      最近更新 更多