簡體   English   中英

Cassandra cql選擇排序

[英]Cassandra cql select sorting

如果我使用cql定義這樣的表:

CREATE TABLE scores (
 name text,
 age int,
 score int,
 date timestamp,
 PRIMARY KEY (name, age, score)
);

並在cqlsh中執行SELECT,如下所示:

select * from mykeyspace.scores;

顯示的結果似乎始終按“年齡”排序,然后按照升序自動“得分”,而不管輸入數據排序如何(正如預期的那樣,返回行不按分區鍵'名稱'排序)。 我有以下問題:

  1. SELECT是否通過群集鍵自動對返回行進行排序?
  2. 如果 ,使用SELECT時使用ORDER BY子句的目的什么?
  3. 如果不是 ,如何通過聚類鍵獲取返回行,因為cql不允許在select *上使用ORDER BY

您的群集列定義了順序(在您的情況下, age然后score

http://cassandra.apache.org/doc/cql3/CQL.html#createTableStmt

在給定的物理節點上,給定分區鍵的行按聚類列引入的順序存儲,使得在該聚類順序中檢索行特別有效(請參閱SELECT)。

http://cassandra.apache.org/doc/cql3/CQL.html#selectStmt

ORDER BY選項允許選擇返回結果的順序。 它將列名列表與列的順序(上升的ASC和后代的DESC,省略等同於ASC的順序)作為參數。 目前可能的訂單是有限的(這取決於表CLUSTERING ORDER):

  • 如果已經定義了表而沒有任何特定的CLUSTERING ORDER,那么允許的排序是由聚類列引起的順序,反之亦然。
  • 否則,允許的排序是CLUSTERING ORDER選項和反轉順序的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM