有没有办法在Cassandra / CQL中将这两个查询合并为一个? (按解决方法分组)

时间:2014-09-16 14:03:22

标签: cassandra cql

我在Cassandra有一张表,结构如下:

CREATE TABLE test.top5(
timestamp timestamp,
category text,
term text,
volume int,
PRIMARY KEY(category, volume, term, timestamp)
WITH CLUSTERING ORDER BY (volume DESC);

我试图获得每个类别的前5个搜索。 volume列原本不需要是复合键的一部分,但在阅读了Cassandra(http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html)中的聚类之后,我将其添加到复合键中,以便按卷自动排序。

由于Cassandra不支持GROUP BY,我目前能够获得每个类别的前5个搜索的唯一方法是:

查询1:SELECT DISTINCT category FROM test.top5;

然后,对于每个类别:

查询2:SELECT term, volume FROM test.top5 WHERE category = thisCategory LIMIT 5;

有更好或更有效的方法吗?在使用大量数据时,我觉得在性能方面会有相当大的开销。

0 个答案:

没有答案
相关问题