Jak mogę przeciągnąć zakres kolumn kompozytowych za pomocą CQL3?Iterowanie przez szeroki wiersz Cassandry z CQL3
rozważyć następujące:
CREATE TABLE Stuff (
a int,
b text,
c text,
d text,
PRIMARY KEY (a,b,c)
);
W Cassandry co ten skutecznie działa to tworzy ColumnFamily z wierszy INTEGER (wartości a) oraz z CompositeColumns składających się z wartościami B i C, i ciągiem znaków „d ". Oczywiście to wszystko jest pokryte przez CQL3, więc będziemy myśleć, które wstawiamy do poszczególnych wierszy bazy danych ... ale dygresja.
I Rozważmy następujący zestaw wejść:
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','P','whatever0');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','Q','whatever1');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','R','whatever2');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','S','whatever3');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'A','T','whatever4');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','P','whatever5');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','Q','whatever6');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','R','whatever7');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','S','whatever8');
INSERT INTO Stuff (a,b,c,d) VALUES (1,'B','T','whatever9');
W moim obecnym przypadku użycia, chcę czytać wszystkie wartości rzeczy, n
wartości w czasie. Jak mam to zrobic? Oto mój obecny odbioru za pomocą n=4
:
SELECT * FROM Stuff WHERE a=1 LIMIT 4;
i zgodnie z oczekiwaniami uzyskać:
a | b | c | d
---+---+---+-----------
1 | A | P | whatever0
1 | A | Q | whatever1
1 | A | R | whatever2
1 | A | S | whatever3
Kłopot że biegnę na to, jak mogę dostać następną 4? Oto moja próba:
SELECT * FROM Stuff WHERE a=1 AND b='A' AND c>'S' LIMIT 4;
To nie działa, ponieważ mamy ograniczone do równego b „A” - co jest rozsądne rzeczą do zrobienia! Ale nie znalazłem nic w składni CQL3, która i tak pozwala mi kontynuować iterację. Chciałbym zrobić coś takiego:
SELECT * FROM Stuff WHERE a=1 AND {b,c} > {'A','S'} LIMIT 4;
Jak osiągnąć pożądany wynik. Mianowicie, w jaki sposób mogę przywrócić CQL3:
a | b | c | d
---+---+---+-----------
1 | A | T | whatever0
1 | B | P | whatever1
1 | B | Q | whatever2
1 | B | R | whatever3
Uwaga dla siebie: [ktoś, kto ma ten sam problem] (http://stackoverflow.com/q/16951532/348056). – JnBrymn