是否可以使用行號進行選擇查詢?
不,但可以根據分區鍵的哈希標記值執行範圍查詢。
假設您有一個六節點羣集。該Murmur3主令牌範圍爲6節點羣集是這樣的:
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
如果我有一個表叫abc
與pkey
分區鍵,想查詢節點2上該表中的所有行,我的查詢應該是這樣的:
SELECT * FROM abc
WHERE token(pkey) > 9223372036854775808
AND token(pkey) <= -5534023222112865485;
如果一整行的價值實在是太多了(我猜測,這將是),你可以在你的平分令牌範圍,直到行的數量都是可管理的工作。請記住,選擇1000萬行並不是Cassandra特別擅長的,所以可能需要一些嘗試。
至於線程數,也可能需要一些試驗和錯誤。但是每個節點有一個線程聽起來像是一個合理的起點。