steam 创意工坊分时间段的热门度排序是如何实现的

2022-02-16 15:05:09 +08:00
 malahk

steam 创意工坊的 mod 可以通过:当日热度、周热度、月热度、年热度、总热度等方式排序。总热度没什么可说的,但周热度、月热度、年热度是怎么计算出来的?

我的猜想:每天凌晨遍历所有 mod 数据库表的条目,然后 count 它 7 天内、30 天内、356 天内的点赞、订阅数,最后综合计算出日热度、周热度、月热度、年热度。

但这样一来点赞和订阅还要加入时间字段,每次遍历代价似乎也很大,有没有更好的思路呢?

823 次点击
所在节点    问与答
4 条回复
helone
2022-02-16 15:55:31 +08:00
我感觉以 steam 的数据量大概率是数据打点扔给 Spark 、Flink 去处理
Jooooooooo
2022-02-16 15:58:16 +08:00
半夜定时任务全量跑
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 啥)。
月年同理。

再绿色一点的话,统计的颗粒度可以变粗。
比如三天统计一次,七天统计一次。
malahk
2022-02-16 21:45:41 +08:00
感谢各位回复,看来不借助其他数据处理工具是没有恰当的解决方案了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX