V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuan101010
V2EX  ›  数据库

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

  •  1
     
  •   yuan101010 · 2021-09-27 10:14:00 +08:00 · 2440 次点击
    这是一个创建于 1138 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    然后你就无敌了~
    yuan101010
        14
    yuan101010  
    OP
       2021-09-27 11:54:19 +08:00
    @BiChengfei 数据量就是差不多每天 50w 的流水数据,还不少的
    leafre
        15
    leafre  
       2021-09-27 13:36:13 +08:00
    一天 50w,一年将近两亿,mysql 这数据量索引性能稍差,但也不是不能用,想要极致性能上 es
    azkaban
        16
    azkaban  
       2021-09-27 13:44:47 +08:00
    flink 打成宽表,往 druid,ck 里灌就行了
    james2013
        17
    james2013  
       2021-09-27 17:17:06 +08:00
    直接用 mysql 也没有问题,按月份分表,搞个定时任务,每天 00:10 统计前一天的记录
    nl101531
        18
    nl101531  
       2021-09-27 18:15:38 +08:00 via iPhone
    mysql 就足够了,每天 50w 后,第二天产生结果表数据,然后清理历史数据。
    securityCoding
        19
    securityCoding  
       2021-09-27 18:49:02 +08:00
    clickhouse 挺好用
    cxsz
        20
    cxsz  
       2021-09-27 21:49:28 +08:00
    我司用 Influxdb,存传感器数据,按时间提取展示图表很方便
    sunmacarenas
        21
    sunmacarenas  
       2021-09-28 09:04:23 +08:00 via Android
    不差钱就 SAP HANA
    mingl0280
        22
    mingl0280  
       2021-09-28 10:34:59 +08:00 via Android
    MSSQL + PowerBI,国外现在用这个挺多的
    RangerWolf
        23
    RangerWolf  
       2021-09-28 20:28:13 +08:00
    推荐 clickhouse 快到让你上瘾 但是应用逻辑跟 mysql 会有不一样的地方 需要调研
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1099 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:59 · PVG 02:59 · LAX 10:59 · JFK 13:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.