2013-06-20 16 views
6

グレムリン経由で大きなグラフのノード/エッジの数を数える最も簡単な方法は何ですか?&最高の私はVイテレータを使用しているを発見した:Gremlinを介して大きなグラフのノード/エッジの数は?

gremlin> g.V.gather{it.size()} 

しかし、これは大規模なグラフのための現実的な選択肢ではない、documentation for Vごと:

グラフの頂点イテレータ。これを利用して、グラフ内の頂点をすべて まで繰り返します。 とキーインデックスルックアップを組み合わせて使用​​しない限り、大きなグラフでは注意して使用してください。私はすべての頂点の数を行うための好ましい方法があることだと思う

答えて

5

gremlin> g = TinkerGraphFactory.createTinkerGraph() 
==>tinkergraph[vertices:6 edges:6] 
gremlin> g.V.count() 
==>6 
gremlin> g.E.count() 
==>6 

しかし、私は非常に大規模なグラフg.V/Eにちょうどあなたが何で故障していないと思います。非常に大きなグラフでは、Faunus(http://thinkaurelius.github.io/faunus/)のようなツールを使用して、Hadoopの能力を活用してカウントを並行して行うことができます。

+0

ありがとうございました!私は、メタデータがどこかで追跡され、アクセス可能であると考えていましたが、Faunusは堅実な選択肢のように聞こえます。 – bcm360

+0

グラフがメタデータとして明示的に追跡されていることはわかりませんが、グラフ自体の操作に固有のものがあれば、 Blueprints/Gremlinには、その数を直接カウントするものは何もなく、Blueprintsはメタデータをどのようにも公開していません。グラフインプリメンテーションにこの情報を得るためのメタデータが含まれていることがわかった場合は、 'getRawGraph()'を使って基礎となるグラフを取得することでアクセスできます。 –

+0

ありがとう、スティーブン – bcm360