在Cassandra中对多个列进行排序

时间:2014-05-07 21:55:09

标签: cassandra

我有以下情况。

数据库中有200个条目需要按日期和等级排序。 在前端,我显示了2个列表,每个列表用于日期和等级。

那么处理这个问题的最佳方法是什么。我有3个选择:

1)运行select query以获取所有数据并在后端对它们进行排序并在前端显示它们。

2)运行select查询并在前端的浏览器中对它们进行排序。

3)让Cassandra按等级或日期排序。我们如何做到这一点? 问题是CQL 3.1.1不支持ORDER BY二级索引。

例如,如果主键是(row_id,date),并且我想按日期排序,那么查询将如下所示,但不能按排名排序。

select * from reviews where row_id='123' order by date desc; 

如果主键是(row_id,rank),则按日期排序将不起作用。组合主键(row_id,date,rank)不适用于按排名排序。 看起来我们可以按日期或排名进行排序。

那么最佳选择1,2还是以不同的方式做3?

1 个答案:

答案 0 :(得分:0)

如果它只有200件,我会把它存放在卡桑德拉两次。每种类型一次。或者将其存储在一个排序顺序中,并在客户端中使用另一个。无论您在前端还是后端的排序都取决于您。我可能会在后端对它们进行排序,因此我可以选择在存储两次之间切换,并存储一次+后端排序,而无需更改客户端。