报表流水聚合数据的数据库技术选型

2021-09-27 10:14:00 +08:00
 yuan101010

公司要做一个监控项目,会有很多流水数据(每天 50w 的样子),根据流水数据的各个维度(人数,金额)等字段做不同时间粒度的报表(时间粒度不定,有可能是天、周、月、年),同一个维度在相同的时间粒度内做数据聚合( count,sum ),然后展示报表,昨天想了下用 mysql 可能不是那么好做,又调研了下其他的数据库暂时没有找到合适的解决方案,大佬们有合适的数据库方案推荐吗?( Java )

2478 次点击
所在节点    数据库
23 条回复
zoharSoul
2021-09-27 10:17:48 +08:00
离线+实时
实时只算 1,2 天的就可以, es/solr 啥的都行
labulaka521
2021-09-27 10:19:54 +08:00
olap
推荐 clickhouse
QGLNepal
2021-09-27 10:24:55 +08:00
mongo 也可以,aggregate 指令挺好用的
yuan101010
2021-09-27 10:25:19 +08:00
@labulaka521 感谢大佬,我去调研下,clickhouse 可以方便实时的时间聚合吗
liprais
2021-09-27 10:25:31 +08:00
就这点数据量 mysql 就行
wxdiy
2021-09-27 10:55:34 +08:00
直接 mysql 就行了。数据量挺小的。定时计算把 sql 写好就行了
fiypig
2021-09-27 11:11:49 +08:00
直接 mysql 就可以了
labulaka521
2021-09-27 11:22:46 +08:00
@yuan101010 可以,就是写性能有点差,写入的话最好批量写入,clickhouse.tech 可以看看官网的文档
bk201
2021-09-27 11:22:49 +08:00
感觉不就是 etl 工作吗?
BiChengfei
2021-09-27 11:30:09 +08:00
如果数据量以后没有增长,就 MySQL,如果需要 KPI,就选最吊的
原始数据放一张表,称为源表,这张表指定表空间,空间给大点
然后通过定时任务或其他手段,对源表数据进行分类处理,得到天、周、月、年等统计数据,查询时直接从分类表中查
masterclock
2021-09-27 11:33:18 +08:00
Influxdb 很合适,但是没有原生的集群方案
Timescaledb 基于 pg,很合适

druid,clickhouse 等功能也满足,更重量级
David1119
2021-09-27 11:36:42 +08:00
flink 啊,mysql 数据聚合一下,再存 mysql 就好了,批流一体实时性也好
ETiV
2021-09-27 11:52:07 +08:00
0. 不要自己写代码
1. 数据库用你熟悉的。比如 MySQL 的话,每条数据再加一个字段:日期—YYYYMMDD,同时给它做一个索引
2. 报表用 metabase (其他 BI 工具都行),目标就是:你只需要写 SQL 就行了,不要自己写界面
3. 了解一下 with XXX as (select ...), YYY as (select ...) select * from XXX left join YYY 这种写法

然后你就无敌了~
yuan101010
2021-09-27 11:54:19 +08:00
@BiChengfei 数据量就是差不多每天 50w 的流水数据,还不少的
leafre
2021-09-27 13:36:13 +08:00
一天 50w,一年将近两亿,mysql 这数据量索引性能稍差,但也不是不能用,想要极致性能上 es
azkaban
2021-09-27 13:44:47 +08:00
flink 打成宽表,往 druid,ck 里灌就行了
james2013
2021-09-27 17:17:06 +08:00
直接用 mysql 也没有问题,按月份分表,搞个定时任务,每天 00:10 统计前一天的记录
nl101531
2021-09-27 18:15:38 +08:00
mysql 就足够了,每天 50w 后,第二天产生结果表数据,然后清理历史数据。
securityCoding
2021-09-27 18:49:02 +08:00
clickhouse 挺好用
cxsz
2021-09-27 21:49:28 +08:00
我司用 Influxdb,存传感器数据,按时间提取展示图表很方便

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

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

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

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

© 2021 V2EX