簡體   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