ho creato un semplice tabe:Cassandra CQL SELECT COUNT con LIMIT
CREATE TABLE test (
"type" varchar,
"value" varchar,
PRIMARY KEY(type,value)
);
ho inserito 5 file in esso:
INSERT INTO test(type,value) VALUES('test','tag1')
INSERT INTO test(type,value) VALUES('test','tag2')
INSERT INTO test(type,value) VALUES('test','tag3')
INSERT INTO test(type,value) VALUES('test','tag4')
INSERT INTO test(type,value) VALUES('test','tag5')
mi sono imbattuto SELECT * from test LIMIT 3
e funziona come previsto.
type | value
------+------
test | tag1
test | tag2
test | tag3
Quando ho eseguito SELECT COUNT(*) from test LIMIT 3
, produce:
count
-------
5
non dovrebbe dirlo 3?
Il Datastax documentation sembra suggerire che la specifica di LIMIT
sovrascriverà il valore predefinito di 10.000. Perché non funziona in questo caso? Se è importante, sono su Cassandra 2.2.5 e ho eseguito tutte le query tramite cqlsh.
Aggiornamento Sia il conducente Java e CQLSH sono stati testati per dimostrare che LIMIT
davvero non funziona come prescritto nella documentazione. Se ci sono dipendenti di Datastax che leggono, il tuo contributo sarebbe molto apprezzato.
Se 'SELECT COUNT' restituisce sempre 1 riga, a' LIMIT 'la clausola è inutile in una query' SELECT COUNT', no? Perché la documentazione Datastax avrebbe fornito in particolare esempi come 'SELECT COUNT (*) FROM big_table LIMIT 50000;'? – light
@light, um, hai ragione. La documentazione suggerisce che dovresti ottenere 3 come risultato del conteggio quando combinato con la clausola LIMIT. Questo [articolo] (http://www.planetcassandra.org/blog/counting-key-in-cassandra/) spiega perché applicare il limite a un conteggio è una buona cosa. Verificherò la mia istanza (C * v 2.2.4). Qual è la tua versione C *? – Ralf
Sono su Cassandra v2.2.5 – light