限制 CQL 中每条记录的列数
Limiting columns per record in CQL
我有一个问题困扰了我很久。为了简化,我正在缩小它。
我在 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;
-只限制总行数,而不是每条记录
CQL3 中没有这种类型的限制。您必须 运行 每个分区的单独查询。
如果查询延迟对您来说不是问题,您始终可以在 Cassandra 数据库之上安装 SparkSQL/Hive 以进行复杂的分析查询,例如您的原始问题中的查询。您甚至可以缓存这些查询的结果。
我有一个问题困扰了我很久。为了简化,我正在缩小它。
我在 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;
-只限制总行数,而不是每条记录
CQL3 中没有这种类型的限制。您必须 运行 每个分区的单独查询。
如果查询延迟对您来说不是问题,您始终可以在 Cassandra 数据库之上安装 SparkSQL/Hive 以进行复杂的分析查询,例如您的原始问题中的查询。您甚至可以缓存这些查询的结果。