Iterieren durch Cassandra breite Reihe mit CQL3

Wie kann ich mit CQL3 eine Reihe von zusammengesetzten Spalten einlesen?

Folgendes berücksichtigen:

CREATE TABLE Stuff (
    a int,
    b text,
    c text,
    d text,
    PRIMARY KEY (a,b,c)
);

In Cassandra erstellt dies effektiv eine ColumnFamily mit ganzzahligen Zeilen (Werten von a) und mit CompositeColumns, die aus den Werten von b und c und der Literalzeichenfolge 'd' bestehen. Natürlich wird dies alles von CQL3 abgedeckt, so dass wir es tun werdendenken dass wir in einzelne Datenbankzeilen einfügen ... aber ich schweife ab.

Und betrachten Sie die folgenden Eingaben:

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');

In meinem aktuellen Anwendungsfall möchte ich alle Werte von Stuff lesen,n Werte auf einmal. Wie mache ich das? Hier ist meine aktuelle Einstellungn=4:

SELECT * FROM Stuff WHERE a=1 LIMIT 4;

Und wie erwartet bekomme ich:

 a | b | c | d
---+---+---+-----------
 1 | A | P | whatever0
 1 | A | Q | whatever1
 1 | A | R | whatever2
 1 | A | S | whatever3

Die Schwierigkeit, auf die ich stoße, ist, wie ich die nächsten 4 bekomme. Hier ist mein Versuch:

SELECT * FROM Stuff WHERE a=1 AND b='A' AND c>'S' LIMIT 4;

Dies funktioniert nicht, weil wir b auf 'A' beschränkt haben - was vernünftigerweise zu tun ist! Aber ich habe nichts in der CQL3-Syntax gefunden, das es mir erlaubt, trotzdem weiter zu iterieren. Ich wünschte, ich könnte etwas tun wie:

SELECT * FROM Stuff WHERE a=1 AND {b,c} > {'A','S'} LIMIT 4;

Wie erreiche ich mein gewünschtes Ergebnis? Wie bringe ich CQL3 dazu, zurückzukehren:

 a | b | c | d
---+---+---+-----------
 1 | A | T | whatever0
 1 | B | P | whatever1
 1 | B | Q | whatever2
 1 | B | R | whatever3

Antworten auf die Frage(4)

Ihre Antwort auf die Frage