2013-06-20 17 views
6

Qual è il modo più semplice & per contare il numero di nodi/spigoli in un grafico di grandi dimensioni tramite Gremlin? Il migliore che ho trovato è usando l'iteratore V:Numero di nodi/spigoli in un grafico di grandi dimensioni tramite Gremlin?

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

Tuttavia, questa non è una valida opzione per grandi grafici, per il documentation for V:

l'iteratore vertice per il grafico. Utilizzare questo per scorrere tutti i i vertici nel grafico. Usare con cautela su grafici di grandi dimensioni a meno che non si usi in combinazione con una ricerca di indici chiave.

risposta

5

penso che il modo migliore per fare un conteggio di tutti i vertici sarebbe:

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

però, penso che su un grafico di grandi dimensioni g.V/E appena si rompe, non importa quello che fai. Su un grafico molto grande l'opzione migliore per fare un conteggio è usare uno strumento come Faunus (http://thinkaurelius.github.io/faunus/) in modo da poter sfruttare la potenza di Hadoop per eseguire i conteggi in parallelo.

+0

Grande, grazie! Stavo pensando che i metadati potrebbero essere tracciati e accessibili da qualche parte, ma Faunus sembra una valida alternativa. – bcm360

+0

Non so se alcuni grafici lo rintracciano esplicitamente come metadati, anche se in qualche caso sarebbe specifico per le operazioni del grafico stesso. Non c'è nulla in Blueprints/Gremlin che ottiene direttamente quel conteggio, né i Blueprint espongono metadati in alcun modo. Se hai trovato che un'implementazione di un grafico aveva dei metadati per ottenere queste informazioni, probabilmente potresti accedervi, ottenendo il grafico sottostante con 'getRawGraph()'. –

+0

Capito, grazie Stephen – bcm360

Problemi correlati