是否可以从分区中的每个聚类键Y中选择X记录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以从分区中的每个聚类键Y中选择X记录?相关的知识,希望对你有一定的参考价值。
给定一个PRIMARY KEY (pkey, ckey_a, ckey_b, etc) WITH CLUSTERING ORDER BY (ckey_a, ckey_b, etc)
表,是否可以制作一个select语句来获取每个ckey_b
分组的前30条记录从特定的主键/宽行?
答案
您可以使用SELECT * FROM table GROUP BY pkey, ckey_a, ckey_b
从ckey_b获取唯一的和ckey_c等。您可以通过分区限制(请参阅alex的答案),但您目前无法限制该组。如果您的查询不经常调用(这很昂贵),您可以创建一个与GROUP BY结合的UDA,以限制组的数量,丢弃其余的。这是非常昂贵的,因为协调器仍然获取所有值,只是在发送回客户端之前过滤掉它们。
另一答案
Cassandra支持使用per partition only语法限制结果数量SELECT * FROM ks.table PER PARTITION LIMIT N;
。但是,如果你从PRIMARY KEY (pkey, ckey_a, ckey_b)
切换到PRIMARY KEY ((pkey, ckey_a), ckey_b)
,你可以实现你所需要的,但这取决于你的查询。
以上是关于是否可以从分区中的每个聚类键Y中选择X记录?的主要内容,如果未能解决你的问题,请参考以下文章