【问题标题】:Is it possible to query a value (or a value set) with cassandra even if we don't know the key (or key range) in advance?即使我们事先不知道键(或键范围),是否可以使用 cassandra 查询值(或值集)?
【发布时间】:2012-01-03 01:01:02
【问题描述】:

我打算用 SQL 来表达这个想法:

SELECT key,value
FROM table1
WHERE value > 10

还是我们总是需要知道密钥?

【问题讨论】:

标签: database cassandra p2p distributed-computing


【解决方案1】:

我想您可以使用从 casssandra 0.7 版开始可用的二级索引。 您还可以查看以下答案:Cassandra and Secondary-Indexes, how do they work internally?

建议仅对低基数列使用二级索引,这意味着对于没有很多不同值的列(例如,像“状态”或“优先级”这样的列通常只有少数不同的值,比如“高” '、'中'、'低')。

如果您使用 Hector 作为您的 cassandra 客户端,您可以在此处找到如何使用它们的信息: https://github.com/rantav/hector/wiki/User-Guide

【讨论】:

    【解决方案2】:

    是的,当然,例如,你可以使用 *

    select * from CF where value = 10
    

    如果您使用 Hector API(例如 CqlQuery),您可以从此查询中获取行列表。

    注意,目前对于二级索引,您必须至少有一个相等条件,因此您的查询仅具有 value > 10 将不起作用。见this question

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      • 2018-08-23
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2021-03-19
      • 2013-12-25
      相关资源
      最近更新 更多