CQL SELECT większy niż zapytanie w indeksowanej kolumnie niebędącej kluczem
EDIT1: dodano przypadek, aby opisać problem po pierwotnym pytaniu.
Chcę zapytać o kolumnę, która nie jest częścią mojego klucza. Jeśli dobrze rozumiem, muszę zdefiniować indeks dodatkowy w tej kolumnie. Chciałbym jednak użyć warunku większego niż warunek (nie tylko warunku równości), który nadal wydaje się nieobsługiwany.
Czy czegoś mi brakuje? Jak rozwiązałbyś ten problem?
Moje żądane ustawienia:
Cassandra 1.1.6
CQL3
CREATE TABLE Table1(
KeyA int,
KeyB int,
ValueA int,
PRIMARY KEY (KeyA, KeyB)
);
CREATE INDEX ON Table1 (ValueA);
SELECT * FROM Table1 WHERE ValueA > 3000;
Od czasu zdefiniowania dodatkowego indeksu dla kolumn Kolumny z kluczami złożonymi nadal nie jest obsługiwany w Cassandra 1.1.6. Muszę rozstrzygnąć tymczasowe rozwiązanie polegające na usunięciu jednego z kluczy, ale nadal mam ten sam problem z warunkami nie równości.
Czy istnieje inny sposób rozwiązania tego problemu?
Dziękuję za Twój czas.
Odpowiednie źródła:http://cassandra.apache.org/doc/cql3/CQL.html#selectStmt http://www.datastax.com/docs/1.1/ddl/indexes
EDIT1
Oto przypadek, który wyjaśni problem. Jak zauważył rs-atl, może to być problem z modelem danych. Powiedzmy, że trzymam rodzinę kolumn wszystkich użytkowników na stackoverflow. dla każdego użytkownika przechowuję zestaw statystyk (Reputacja, NumOfAnswers, NumOfVotes ... wszystkie są int). Chcę zapytać o te statystyki, aby uzyskać odpowiednich użytkowników.
CREATE TABLE UserStats(
UserID int,
Reputation int,
NumOfAnswers int,
.
.
.
A lot of stats...
.
.
.
NumOfVotes int,
PRIMARY KEY (UserID)
);
Teraz jestem zainteresowany krojeniem ID użytkownika na podstawie tych statystyk. Chcę, aby wszyscy użytkownicy o reputacji przekraczającej 10 tys. Użytkowników mieli mniej niż 5 odpowiedzi itd. Itd.
Mam nadzieję że to pomogło. Dzięki jeszcze raz.