Sto usando Cassandra 1.1.2 Sto provando a convertire un'applicazione RDBMS in Cassandra. Nella mia applicazione RDBMS ho seguente tabella denominata Table1:Cassandra: query con clausola where maggiore o minore di (< and >)
| Col1 | Col2 | Col3 | Col4 |
- Col1: String (chiave primaria)
- Col2: String (chiave primaria)
- Col3: bigint (index)
- Col4 : Bigint
Questa tabella conta oltre 200 milioni di record. Per lo più query utilizzata è qualcosa di simile:
Select * from table where col3 < 100 and col3 > 50;
In Cassandra ho usato seguente istruzione per creare la tabella:
create table table1 (primary_key varchar, col1 varchar,
col2 varchar, col3 bigint, col4 bigint, primary key (primary_key));
create index on table1(col3);
ho cambiato la chiave primaria per una colonna aggiuntiva (a calcolare la chiave dentro la mia applicazione) . Dopo l'importazione alcuni record ho provato ad eseguire seguente CQL:
select * from table1 where col3 < 100 and col3 > 50;
Questo risultato è:
Bad Request: No indexed columns present in by-columns clause with Equal operator
La query selezionare col1, col2, col3, col4 da table1 dove col3 = 67 opere
Google ha detto che non c'è modo di eseguire questo tipo di query. È giusto? Qualche consiglio su come creare una query di questo tipo?
'select count (*)' potrebbe essere utile pure, FWIW ... – rogerdpack