Ist es möglich, eine Abfrage mit Zeilennummer auszuwählen?
Nein, aber es ist möglich, eine Bereichsabfrage basierend auf dem Wert des Hash-Tokens Ihres Partitionsschlüssels auszuführen.
Angenommen, Sie haben einen Cluster mit sechs Knoten. Die Murmur3 primäre Token reicht für einen 6-Knoten-Cluster wie folgt aussehen:
node start range end range
1) 9223372036854775808 to -9223372036854775808
2) -9223372036854775807 to -5534023222112865485
3) -5534023222112865484 to -1844674407370955162
4) -1844674407370955161 to 1844674407370955161
5) 1844674407370955162 to 5534023222112865484
6) 5534023222112865485 to 9223372036854775807
Wenn ich eine Tabelle abc
mit einer Partition Schlüssel pkey
genannt haben, und wollte alle Zeilen für die Tabelle auf Knoten 2, meine Abfrage abfragen wie folgt aussehen würde:
SELECT * FROM abc
WHERE token(pkey) > 9223372036854775808
AND token(pkey) <= -5534023222112865485;
Wenn eines im wert gesamte Zeile zu viele (und ich vermute, dass es sein wird), können Sie arbeiten auf Halbierungs Ihr Token Bereich, bis die Anzahl der Zeilen überschaubar wird. Denken Sie daran, dass die Auswahl von 10 Millionen Zeilen nichts ist, für das Cassandra besonders gut geeignet ist. Es könnte also ein paar Versuche dauern.
Was die Anzahl der Threads betrifft, kann dies auch einige Versuche erfordern. Aber ein Thread pro Knoten klingt wie ein vernünftiger Startpunkt.