【问题标题】:how to sort composite columns by column key in cassandra?如何在cassandra中按列键对复合列进行排序?
【发布时间】:2014-09-09 07:16:41
【问题描述】:

在columnfamily中,复合列的key是(integer, string)。我尝试了以下比较器类型: 1. CompositeType(IntegerType, AsciiType) 2. CompositeType(IntegerType, BytesType)

我可以向这个列族添加行。但是,当我查询此列族时,列未按复合键整数值排序。

如何对列键整数上的所有列进行排序?比较器类型好吗?对复合键第一部分的列键进行排序的最佳方法是什么?

【问题讨论】:

  • Cassandra 仅支持对复合键的第二个值进行排序....我使用 CQL 不知道 astyanax,但 cassandra 的默认属性仅对复合键的第二个值进行排序
  • AFAIK,这不是真的。 Cassandra 列按复合键的第一部分排序,然后按第二部分排序。
  • 通过排序我的意思是排序,它允许在复合键的第二部分
  • 那么,你的意思是不可能让列在第一部分排序(在我的例子中是整数值)?
  • 复合键的第一部分是分区键,当分区键受等于运算符限制时,可以进行排序。详情可以在这里找到planetcassandra.org/blog/composite-keys-in-apache-cassandra

标签: cassandra astyanax


【解决方案1】:

抱歉,文档说您无法对第一个列键(整数)上的所有列进行排序。首先让我们为阅读本文的人澄清术语:复合列键是复合主键 CQL 术语的 Cassandra 存储引擎 (Thrift/CLI) 术语。 http://www.datastax.com/dev/blog/cql3-for-cassandra-experts

Cassandra 2.0 文档说,“ORDER BY 子句只能选择单个列。该列必须是复合主键中的第二列。” http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/select_r.html?scroll=reference_ds_d35_v2q_xj__querying-compound-primary-keys-and-sorting-results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2023-03-02
    • 2012-12-04
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多