大神求助,统计报表技术选型

2019-09-05 10:21:17 +08:00
 qwerthhusn

我们小作坊是做资讯类的服务,技术栈是 java

现在有几个需求,主要就是针对每一条资讯,需要记录其访问,分享,收藏,评论数量。然后会有各种各样的数据展示。 4 项数据:访问数,分享数,收藏数,评论数

客户端查看某条资讯时显示这条资讯的各项数据。 机构能够展示总的数据,按年月日统计总数据,根据这四个字段的排序找出各项数据最高的几条资讯 总平台能够展示各个机构的上述数据以及总的汇总。

请问这种场景,应该大概使用什么方式来做 我们目前想到的,一个就是传统的数据库查询:建一个表有这四个字段和资讯 id,然后不停自增。。然后统计的时候就是各种极其复杂的 SQL。 另外一种就是用 flink,但是鉴于对 flink 不是很熟,只是感觉可以。 或者有什么其他比较适合的方案??

求大神支招

1338 次点击
所在节点    程序员
3 条回复
VisionKi
2019-09-05 11:09:29 +08:00
用 Redis 的 Hash 结构能做。
例如访问的时候,每访问一次,用 redis 的自增命令:HINCRBY [key] [field] 1,这里[key]是用资讯 ID,[field]是访问量的键。
然后其他操作类型也这么设置。每天凌晨取出昨天的每个资讯四个值,记录到表里,记录完了删除掉昨天的数据。
VisionKi
2019-09-05 11:12:22 +08:00
每个资讯对应 redis 中的结构类似:

key:资讯 ID

field:访问量 value:1
field:分享数 value:1
field:收藏数 value:1
field:评论数 value:1
ma836323493
2019-09-05 12:52:32 +08:00
实时更新的放 redis, 非实时的埋点查日志

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

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

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

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

© 2021 V2EX