我正在阅读教程,其中教师说连续列的默认排序是UTF8-tye
。但他没有进一步触及它。
我不明白这意味着什么。特别是如果我的列是不同的类型,例如int
,timestamp
等。
另外,我如何将列上的排序顺序指定为" UTF8-type"以外的其他类型。
答案 0 :(得分:3)
他正在讨论列名,而不是列值。 在旧的cassandra版本中,您可以使用SuperColumns,它是行中列的集合。像这样:
{ RowKey:
{ SuperColumn1Key: {c1:v, c2:v .... } },
{ SuperColumn2Key: {c1:v, c2:v .... } },
{ SuperColumn3Key: {c1:v, c2:v .... } }
}
这与今天的广泛类似。比较器可以在一行中建立超级列的排序,也可以按名称对列进行排序(您可以在SuperColumnFamily中选择两个不同的比较器,一个用于超级列排序,另一个用于列排序)。例如,对于超级列使用TimeUUID比较器,您可以按时间排序检索它们,而UTF8Type是"字母"排序。
想象一下UTF8 Columns Comparator中的这一行:
{ id: {"author":"john", "vote": 3} }
现在让我们添加一个新列,比如文字。因为它是utf8," text" (" a"<" t"<" v")将在作者和投票之间
{ id: {"author":"john", "text": "blablabla", "vote": 3} }
但是我觉得你所看到的是一段旧视频,因为这个概念在新版本中不再使用
HTH,Carlo
答案 1 :(得分:0)
简短回答是:Cassandra中的默认聚类顺序是升序(ASC)。
默认情况下,未指定聚类顺序的Cassandra表针对升序SELECT查询进行了优化。如果需要使用降序查询执行查询,则可以指定一个聚类顺序,以按照DEFAULT的相反顺序在磁盘上存储列。
官方文档说明这对于快速读者来说有点不清楚(请注意"默认" magic关键字):
订购结果
您可以订购查询结果以使用磁盘上的排序 列。您可以按升序或降序订购结果。该 升序将比降序更有效。如果你需要 结果按降序排列,您可以指定聚类顺序 按默认的相反顺序在磁盘上存储列。降序 然后查询将比提升查询更快。