Итерация по широкой строке Cassandra с CQL3
Как я могу получить диапазон составных столбцов с CQL3?
Учтите следующее:
CREATE TABLE Stuff (
a int,
b text,
c text,
d text,
PRIMARY KEY (a,b,c)
);
В Cassandra это эффективно создает ColumnFamily с целочисленными строками (значениями a) и с CompositeColumns, состоящими из значений b и c и литеральной строки d, Конечно, это все покрыто CQL3, так что мы будемсчитать что мы'вставляю в отдельные строки базы данных ... но я отвлекся.
И рассмотрим следующий набор входных данных:
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');
В моем текущем случае я хочу прочитать все значения Stuff,n
значения за один раз. Как мне это сделать? Вот's мой текущий дубль с использованием:n=4
SELECT * FROM Stuff WHERE a=1 LIMIT 4;
И, как и ожидалось, я получаю:
a | b | c | d
---+---+---+-----------
1 | A | P | whatever0
1 | A | Q | whatever1
1 | A | R | whatever2
1 | A | S | whatever3
Проблема, с которой я сталкиваюсь, состоит в том, как я получаю следующие 4? Вот моя попытка:
SELECT * FROM Stuff WHERE a=1 AND b='A' AND c>'S' LIMIT 4;
Это нене работает, потому что мымы ограничены б до «А» - что разумно сделать! Но я'В синтаксисе CQL3 мы не нашли ничего, что позволяло бы мне продолжать итерации в любом случае. Я хотел бы сделать что-то вроде:
SELECT * FROM Stuff WHERE a=1 AND {b,c} > {'A','S'} LIMIT 4;
Как мне достичь желаемого результата. А именно, как мне сделать возврат CQL3:
a | b | c | d
---+---+---+-----------
1 | A | T | whatever0
1 | B | P | whatever1
1 | B | Q | whatever2
1 | B | R | whatever3