分数是时间函数的排名
ranking where the score is a function of time
我想将我目前在 mysql 上的数据库迁移到 C*。目前我有一个 table,我很难想象如何 "migrate" 它。
实体
- 编号
- 分数
- 热门分数
其中 hotscore 是 f(s,d) = log10 + (s.t/45000)。 S 是分数,t 是纪元以来的时间戳。
基本上我要查询的是该实体的前 20 个。使用 mysql 和 cron 作业,我每分钟都在更新 hotscore。因此,热点分数不适合分区键。在转向 c* 之前,我想看看我是否能做到这一点。据我所知,像 (id, hotscore)
这样的主键并不好,因为这意味着 C* 必须扫描每个条目。
当 Cassandra 3.0 发布时,您很快就能使用物化视图处理这个用例。
查看实例化视图中的行排序示例 here and 。
它的工作方式是在您的基础中 table 您不将分数用作聚类列,但您确实将其用作物化视图中的聚类列。然后,当您更新基础 table 时,视图中的顺序会自动更新。
我想将我目前在 mysql 上的数据库迁移到 C*。目前我有一个 table,我很难想象如何 "migrate" 它。
实体
- 编号
- 分数
- 热门分数
其中 hotscore 是 f(s,d) = log10 + (s.t/45000)。 S 是分数,t 是纪元以来的时间戳。
基本上我要查询的是该实体的前 20 个。使用 mysql 和 cron 作业,我每分钟都在更新 hotscore。因此,热点分数不适合分区键。在转向 c* 之前,我想看看我是否能做到这一点。据我所知,像 (id, hotscore)
这样的主键并不好,因为这意味着 C* 必须扫描每个条目。
当 Cassandra 3.0 发布时,您很快就能使用物化视图处理这个用例。
查看实例化视图中的行排序示例 here and
它的工作方式是在您的基础中 table 您不将分数用作聚类列,但您确实将其用作物化视图中的聚类列。然后,当您更新基础 table 时,视图中的顺序会自动更新。