2014-10-28 17 views
24

Questa è una domanda di base, ma in realtà mi ha infastidito per giorni. C'è un buon modo per ottenere l'equivalente di un COUNT(*) di una tabella data in Cassandra?Come ottenere il numero di righe nella tabella di Cassandra

Sposterò diverse centinaia di milioni di righe in C * per alcuni test di carico e mi piacerebbe almeno ottenere un conteggio delle righe su alcuni esempi di lavori ETL prima di spostare enormi quantità di dati sulla rete.

L'idea migliore che ho è di fare un loop su ogni riga con Python e incrementare automaticamente un contatore. C'è un modo migliore per determinare (o anche stimare) la dimensione della riga di una tabella C *? Ho anche cercato su Datastax Ops Center per vedere se riesco a determinare la dimensione della riga lì. Se puoi, non vedo come sia possibile.

Qualcun'altro necessario per ottenere un count(*) di una tabella in C *? Se è così, come hai fatto a farlo?

+0

vedere http://stackoverflow.com/questions/1951843/row-count-of-a-column-family-in-cassandra –

risposta

27

Sì, è possibile utilizzare COUNT(*). Ecco lo documentation.

Un'espressione SELECT che utilizza COUNT (*) restituisce il numero di righe corrispondenti alla query. In alternativa, puoi usare COUNT (1) per ottenere lo stesso risultato.

contare il numero di righe della tabella utenti:

SELECT COUNT(*) FROM users; 
+0

Sono curiius di sentire di nuovo per quanto tempo il tuo conteggio prende. Forse puoi segnalarlo. :) –

+3

wow. Sono un idiota. Come mi è mancato nei documenti? – evanv

+40

È stato il tuo turno. Abbiamo tutti il ​​turno di essere l'idiota. Il mio verrà domani. Non posso aspettare –

5

è anche possibile ottenere alcune stime da nodetool cfhistograms se non avete bisogno di un conteggio esatto (questi valori sono stime).

È anche possibile utilizzare la scintilla se si esegue DSE.

+0

Come puoi usare Spark per rendere il conteggio più veloce? Ad esempio, ho circa miliardi di record e sto usando spark per contare il numero di righe. Mi ci sono voluti 1 ora e 30 minuti per completarlo. Ecco altri dettagli http: // StackOverflow.com/domande/40778936/apache-spark-sql-è-assunzione-forever-a-contare-miliardi-file-da-cassandra/40781384? noredirect = 1 # comment68807487_40781384 – user1870400

1

nodetool tablestats può essere molto utile per ottenere rapidamente stime di riga (e altre statistiche di tabella).

nodetool tablestats <keyspace.table> per una tabella specifica

Problemi correlati