【问题标题】:Limiting columns per record in CQL在 CQL 中限制每条记录的列
【发布时间】:2015-08-14 14:51:25
【问题描述】:

我有一个困扰我很久的问题。为了简化,我将其缩小。

我在 Cassandra 中有一个列族定义为:

  CREATE TABLE "Test" (
  key text,                         
  column1 text,                    
  value text,                        
  PRIMARY KEY (key, column1)       
)

如果我在 CQL 中运行查询:

select * from "Test" where key in ('12345','34567');

它给了我类似的东西:

  key  | column1 | value
-----------------------+---
 12345 |     764 |    764
 12345 |     836 |    836
 12345 |  123723 | 123723
 12345 |  155863 | 155863

  key  | column1 | value
-----------------------+---
 34567 |  159144 | 159144
 34567 |  159869 | 159869
 34567 |  160705 | 160705

现在我的问题是如何将结果限制为每条记录最多 2 行。 我尝试使用以下但没有工作。

select FIRST 10 'a'..'z' from "Test" where key in ('12345','34567'); 

- 在最新的 CQL 版本中不可用。

select * from "Test" where key in ('12345','34567') limit 2;

-仅限制总行数,不限制每条记录

【问题讨论】:

标签: cassandra cql datastax


【解决方案1】:

在 CQL3 中无法设置这种类型的限制。您必须为每个分区运行单独的查询。

如果查询延迟对您来说不是问题,您始终可以在 Cassandra 数据库之上安装 SparkSQL/Hive,以进行复杂的分析查询,例如原始问题中的查询。您甚至可以缓存这些查询的结果。

【讨论】:

    猜你喜欢
    • 2023-01-15
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多