我正在阅读教程,其中讲师说行中列的默认顺序是 UTF8-tye. 。但他没有进一步谈及这一点。

我不明白这是什么意思。特别是如果我的列是不同类型的,例如 int, timestamp ETC。

另外,我如何将列上的排序顺序指定为“UTF8 类型”以外的其他顺序。

有帮助吗?

解决方案

他谈论的是列名称,而不是列值。在旧的 cassandra 版本中,您可以使用 SuperColumns,它是行中列的集合。像这样的东西:

{ 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”<“t”<“v”)将位于作者和投票之间

{ id: {"author":"john", "text": "blablabla", "vote": 3} }

不过我认为你看到的是一个旧视频,因为这个概念在新版本中不再使用

HTH,卡洛

其他提示

简短的回答是:Cassandra 中的默认聚类顺序是升序 (ASC)。

默认情况下,未指定集群顺序的 Cassandra 表针对升序 SELECT 查询进行优化。如果需要使用降序查询执行查询,您可以指定集群顺序,以与默认顺序相反的顺序将列存储在磁盘上。

官方文档对于快速阅读者来说有点不清楚(请注意“默认”魔术关键字):

订购结果

您可以订购查询结果以利用列的盘式排序。您可以按升序或降序对结果进行排序。上升顺序将比下降更有效。如果您需要以降序的顺序结果,则可以指定一个集群顺序,以以相反的顺序存储在磁盘上 默认. 。然后,降序的查询将比上升的查询更快。

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_table_r.html?scroll=reference_ds_v3f_vfk_xj__ordering-results

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top