- 实时查。
- 维护亢余字段。
- 建立一个统计表,定时去跑脚本更新数据,数据取的是这个统计表。
- es 数据统计。
思路1:
可以考虑将原始数据写入 ES,然后报表都在 kibana 实现,不过有个比较麻烦的问题是,原始数据在关系型数据库里边会有关联关系,同步到 ES 的数据结构需要考量下,有些跨表的查询统计就不很适用了。
思路2:
还是维护统计表比较好,只要系统稍微复杂一点,数据统计的设计逻辑很大程度就和常规业务逻辑不一样,单独统计表可以改变数据架构逻辑,也可以冗余更多字段来让统计更简单更有效,而且一边产品天天改改需求,一边运营天天换数据统计逻辑,搞在一起感觉分分钟要死人啊
但是做这个脚本真的是很烦人啊,直接写脚本吧挂了修复又好麻烦,后来搞了个专门的工具来同步数据,用 json 来定义同步逻辑,自动增量 diff,也支持直接用 raw sql 查询出数据后再处理,但是一直没有写出个文档来,哈哈