【问题标题】:How do you retrieve sorted values in a Cassandra table quickly?如何快速检索 Cassandra 表中的排序值?
【发布时间】:2014-03-29 08:10:16
【问题描述】:

我正在阅读以下教程:

http://www.ebaytechblog.com/2012/07/16/cassandra-data-modeling-best-practices-part-1/#terms

其中一个解释是下图:

表示行按行键排序,列按列键排序。

这是否意味着列按列值排序,而行键按行值排序?例如,如果我的第 1 行的值是 10,2,30,4(所有整数),它会将该键的列排序为 2、4、10、30?

对于行类似,如果我们有 11、22、3、44,它会将行排序为 3、11、22、44?

我只是对按列排序意味着什么感到困惑。

我有兴趣澄清这一点的原因是,如果我可以让我插入的值已经排序,那对我来说将非常方便,因为我不必在列中插入排序列表。

【问题讨论】:

    标签: sorting cassandra cql cassandra-2.0


    【解决方案1】:

    我认为行是按行键的值排序的,而列是按键的值排序的,而不是存储的值。也就是说,例如在列的情况下,key1/value5、key2/value3、key3/value1 等等。

    【讨论】:

      【解决方案2】:

      行(物理/内部)通常不按列族中的排序顺序存储。它可以通过使用 OrderedPartitioner 来实现,但不建议将其用于生产。所以,经验法则 - 不要依赖行的顺序

      单元格(内部列)按排序顺序物理存储在物理行中。它们按其名称而非值排序。

      或者就 CQL 而言:您不能通过 分区键 对 CQL 行进行排序,但可以使用 集群列 在单个分区内对 CQL 行进行排序

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

      【讨论】:

      • 因此,如果我想要一个排序值列表,最好的方法就是在包含排序列表的列中添加一个条目?我不喜欢在列中添加元素,只希望 cassandra 对其进行排序?
      猜你喜欢
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 2020-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-30
      相关资源
      最近更新 更多