Wie kann ich eine Reihe von Composite-Säulen mit CQL3 ziehen?Iterating durch Cassandra breite Reihe mit CQL3
sich das folgende:
CREATE TABLE Stuff (
a int,
b text,
c text,
d text,
PRIMARY KEY (a,b,c)
);
In Cassandra Was dies effektiv macht, ist erzeugt eine ColumnFamily mit ganzzahligen Reihen (Werte von a) und mit CompositeColumns zusammengesetzt aus den Werten von b und c und die Zeichenkette ‚d ". Natürlich ist dies alles von CQL3 verdeckt, so dass wir denken, dass wir in einzelne Datenbankzeilen einfügen ... aber ich schweife ab.
Und betrachte die folgenden Eingänge:
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 zu einem Zeitpunkt. Wie mache ich das? Hier ist meine aktuellen Take mit n=4
:
SELECT * FROM Stuff WHERE a=1 LIMIT 4;
Und wie erwartet erhalte ich:
a | b | c | d
---+---+---+-----------
1 | A | P | whatever0
1 | A | Q | whatever1
1 | A | R | whatever2
1 | A | S | whatever3
Das Problem, dass ich den Weg laufen wird, wie bekomme ich die nächsten 4? Hier ist mein Versuch:
SELECT * FROM Stuff WHERE a=1 AND b='A' AND c>'S' LIMIT 4;
Das funktioniert nicht, weil wir b gleich ‚A‘ gezwungen haben - was eine vernünftige Sache zu tun! Aber ich habe nichts in der CQL3-Syntax gefunden, das es mir erlaubt, 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. Das heißt, wie kann ich CQL3 Rückkehr machen:
a | b | c | d
---+---+---+-----------
1 | A | T | whatever0
1 | B | P | whatever1
1 | B | Q | whatever2
1 | B | R | whatever3
Hinweis an mich selbst: [jemand anders, der das gleiche Problem hat] (http://stackoverflow.com/q/16951532/348056). – JnBrymn