我应该用什么数据结构模仿"按计数器排序"在卡桑德拉?

时间:2015-02-13 11:06:24

标签: cassandra

假设我目前有一个这样的表

create table comment_counters
{ 
    contentid uuid,
    commentid uuid,
    ...
    liked counter,
    PRIMARY_KEY(contentid, commentid)
 };

此表的目的是跟踪评论和个人评论被“喜欢”的次数。

我想做的是获得每个内容的最佳评论(让我们说20条评论),这些评论取决于此表中的喜欢数量。

我知道没有办法通过计数器订购,所以我想知道的是,在Cassandra有没有其他方法可以做到这一点,例如通过重组我的表或跟踪更多/不同的信息,或者我离开了别无选择,只能在RDBMS中执行此操作?

在这个阶段我不想考虑在客户端进行排序。

1 个答案:

答案 0 :(得分:1)

不幸的是,现在可以使用普通的Cassandra查询来进行这种类型的聚合。进行此类数据分析的最佳选择是使用外部工具,例如Spark。 使用Spark,您可以启动定期作业,这些作业将读取并聚合来自comment_counters表的所有计数器,然后将结果(例如前20条注释)写入另一个表,您可以使用该表直接查询。 请参阅here以开始使用Cassandra和Spark。