排名是时间的函数

时间:2015-10-04 20:57:16

标签: cassandra cassandra-2.0

我想将当前在mysql上的数据库迁移到C *。目前我有一张桌子,我很难想象如何移植"它

实体

  • 编号
  • 分数(S)
  • 热得分

热得分为f(s,d)= log10 +(s.t / 45000)。 S是得分,t是自纪元以来的时间戳。

基本上我要查询的是该实体的前20名。使用mysql和cron作业我每分钟都会更新热门分数。因此,热得分不适合分区键。我试图在转向c *之前看看能否实现这一目标。据我所知,像(id, hotscore)这样的主键不会很好,因为这意味着C *必须扫描每个条目。

1 个答案:

答案 0 :(得分:1)

当Cassandra 3.0发布时,您很快就能够使用物化视图处理此用例。

查看在实体化视图herehere中排序行的示例。

它的工作方式是在您的基表中,您不能将分数用作聚类列,但您确实将其用作物化视图中的聚类列。然后,当您更新基表时,视图中的顺序会自动更新。