steam 创意工坊的 mod 可以通过:当日热度、周热度、月热度、年热度、总热度等方式排序。总热度没什么可说的,但周热度、月热度、年热度是怎么计算出来的?
我的猜想:每天凌晨遍历所有 mod 数据库表的条目,然后 count 它 7 天内、30 天内、356 天内的点赞、订阅数,最后综合计算出日热度、周热度、月热度、年热度。
但这样一来点赞和订阅还要加入时间字段,每次遍历代价似乎也很大,有没有更好的思路呢?
1
helone 2022-02-16 15:55:31 +08:00
我感觉以 steam 的数据量大概率是数据打点扔给 Spark 、Flink 去处理
|
2
Jooooooooo 2022-02-16 15:58:16 +08:00
半夜定时任务全量跑
|
3
kop1989smurf 2022-02-16 16:04:49 +08:00
为何要遍历所有条目?
D 日的热度 H 是 D-1~D-7 日的热度之和( or 平均 or 啥) D+1 日的热度是 H-( D-7 日的热度)+ D 日的热度之和( or 平均 or 啥)。 月年同理。 再绿色一点的话,统计的颗粒度可以变粗。 比如三天统计一次,七天统计一次。 |
4
malahk OP 感谢各位回复,看来不借助其他数据处理工具是没有恰当的解决方案了
|