cassandra中列的默认排序顺序?
Posted
技术标签:
【中文标题】cassandra中列的默认排序顺序?【英文标题】:default sorting order of columns in cassandra? 【发布时间】:2014-08-01 18:41:12 【问题描述】:我正在阅读教程,其中讲师说列的默认顺序是UTF8-tye
。但他没有进一步触及它。
我不明白这是什么意思。特别是如果我的列是不同的类型,例如int
、timestamp
等,该怎么办?
另外,我如何将列上的排序顺序指定为“UTF8 类型”以外的其他内容。
【问题讨论】:
【参考方案1】:他说的是列名,而不是列值。 在旧的 cassandra 版本中,您可以使用 SuperColumns,它是 Row 中列的集合。像这样的:
RowKey:
SuperColumn1Key: c1:v, c2:v .... ,
SuperColumn2Key: c1:v, c2:v .... ,
SuperColumn3Key: c1:v, c2:v ....
这类似于今天的宽行。比较器可以建立行内超列的排序以及按名称对列进行排序(您可以在 SuperColumnFamily 中选择两个不同的比较器,一个用于超列排序,另一个用于列排序)。例如,对超列使用 TimeUUID 比较器,您可以按时间排序检索它们,而 UTF8Type 是“字母”排序。
想象一下 UTF8 列比较器中的这一行:
id: "author":"john", "vote": 3
现在让我们添加一个新列,比如文本。由于是utf8,“text”(“a”
id: "author":"john", "text": "blablabla", "vote": 3
但是我认为你看到的是一个旧视频,因为这个概念在新版本中不再使用
HTH,卡罗
【讨论】:
这里还有一个问题:***.com/questions/25089013/…【参考方案2】:简短的回答是:Cassandra 中的默认聚类顺序是升序 (ASC)。
默认情况下,没有指定集群顺序的 Cassandra 表针对升序 SELECT 查询进行了优化。如果您需要使用降序查询执行查询,您可以指定一个集群顺序,以与 DEFAULT 相反的顺序将列存储在磁盘上。
官方文档说明这对于快速阅读者来说有点不清楚(注意“默认”魔术关键字):
订购结果
您可以对查询结果进行排序以利用磁盘上的排序 列。您可以按升序或降序排列结果。这 升序将比降序更有效。如果你需要 结果按降序排列,您可以指定聚类顺序 以与默认相反的顺序将列存储在磁盘上。降序 查询将比升序查询更快。
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_table_r.html?scroll=reference_ds_v3f_vfk_xj__ordering-results
【讨论】:
以上是关于cassandra中列的默认排序顺序?的主要内容,如果未能解决你的问题,请参考以下文章