V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3country
V2EX  ›  程序员

求助:百万级数据报表统计有哪些解决方案?

  •  2
     
  •   3country · 2021-03-31 14:24:14 +08:00 · 4029 次点击
    这是一个创建于 1338 天前的主题,其中的信息可能已经有所发展或是发生改变。

    SQLServer 的多表查询,每个表百万条数据,增量不多,要求实时变化或者 5 分钟刷新一次,有啥好的解决方案吗?

    ES 适合做吗?(公司有 ES 集群,大数据框架我只接触过 es )

    第 1 条附言  ·  2021-04-02 13:04:36 +08:00
    今天继续了解了一下,公司应该是想做数据分析这方面的,比如实时的用户行为分析
    27 条回复    2021-04-05 14:33:27 +08:00
    zoharSoul
        1
    zoharSoul  
       2021-03-31 14:28:11 +08:00
    es 可以的,
    实际上百万级我觉得 sql 数据库也完全能抗住... 毕竟数据量少
    TimePPT
        2
    TimePPT  
       2021-03-31 14:30:54 +08:00 via Android
    试试统计可以试试 flink
    TimePPT
        3
    TimePPT  
       2021-03-31 14:31:02 +08:00 via Android
    @TimePPT 实时
    3country
        4
    3country  
    OP
       2021-03-31 14:31:32 +08:00
    @zoharSoul sql 涉及各种计算,年度统计的时候很慢,报表太多,不想优化 SQL,想找一种统计方案(具体情况我不太清楚,领导给的信息比较少)
    3country
        5
    3country  
    OP
       2021-03-31 14:32:53 +08:00
    @TimePPT flink 需要其他关联的框架吗?学习成本怎么样?
    bthulu
        6
    bthulu  
       2021-03-31 14:47:03 +08:00
    才百万数据, 全部塞内存里就行了
    TimePPT
        7
    TimePPT  
       2021-03-31 14:49:58 +08:00
    @3country 接入难度一般,官方文档还算全。实时维表统计比较方便。现在也流行这么玩。可以搜下「 flink 批流一体」,有不少大厂的经验介绍。
    imn1
        8
    imn1  
       2021-03-31 14:58:41 +08:00
    @3country #4
    年度统计不需要实时吧?截至到一个时间的统计,然后存统计结果
    3country
        9
    3country  
    OP
       2021-03-31 15:00:48 +08:00
    @imn1 定时查询然后放到 Redis ?
    imn1
        10
    imn1  
       2021-03-31 15:08:31 +08:00
    @3country #9
    你还是去问清楚详细需求吧,一般大周期(季、半年、年)的统计都是专门做报告的,实时的统计更多用于监测“异常”和分析变化趋向,年报数据每几分钟变一次是很奇怪的 —— 报告不可信
    至于用什么,那不是我擅长的
    flighter
        11
    flighter  
       2021-03-31 15:35:59 +08:00
    百万级 数据库就可以,ES 完全无压力
    kiracyan
        12
    kiracyan  
       2021-03-31 15:40:51 +08:00
    百万很小量级了
    qq1340691923
        13
    qq1340691923  
       2021-03-31 17:29:52 +08:00 via iPhone
    我就是用的 es,一个索引十几亿条数据无压力
    luoqeng
        14
    luoqeng  
       2021-03-31 17:34:22 +08:00
    flink
    ksedz
        15
    ksedz  
       2021-03-31 17:37:42 +08:00   ❤️ 1
    没有关键词查询需求的话建议 Clickhouse,简单粗暴,性能强劲
    daweibao
        16
    daweibao  
       2021-03-31 17:38:53 +08:00
    15 楼的方案可以考虑
    jenlors
        17
    jenlors  
       2021-03-31 21:30:04 +08:00
    ClickHouse +1
    xuanbg
        18
    xuanbg  
       2021-03-31 22:44:58 +08:00
    分级汇总。简单的说就是今年之前的数据是不变的,可以按需求汇总之后存起来。然后今年 1 、2 月份的数据也是不变了,也可以按月 /日汇总后存起来。剩下的也就是查当月数据罢了。或者干脆连当月的数据也按天汇总存起来,竟只需查询当日数据就够了。
    Alexf4
        19
    Alexf4  
       2021-04-01 09:25:11 +08:00
    Clickhouse +2,而且还可以帮你涉及下新的领域?
    wushigejiajia01
        20
    wushigejiajia01  
       2021-04-01 09:58:06 +08:00
    巧了,我最近就在搞报表开发,大多是百万数据表,千万表目前有一张(但是这张表涉及的统计不多)
    -------------------------------------------------
    针对报表开发,我们单独弄了个库,把原始数据同步过来专门用于报表开发,在同步的过程中会把一些必要的字段进行冗余,连缓存都没用

    现在那些百万表的关联查询,数据库完全能扛得住,适当的加些索引,当下一点问题都没有
    --------------------------------------------------

    当然你要问有没有隐患,那肯定有,过些年这些报表肯定越跑越慢,到时候肯定要优化,到时候分表、缓存之类的搞起来,基本上也能解决了,现阶段就不是我需要考虑的了,工期就这么多
    tairan2006
        21
    tairan2006  
       2021-04-01 11:23:24 +08:00
    百万级直接用关系型数据库都能扛得住…

    搞聚合查询不算是 es 专长,可以考虑 clickhouse 或者 greenplum,甚至 flink
    shanghai1943
        22
    shanghai1943  
       2021-04-01 17:32:19 +08:00
    @long2ice #17
    @Alexf4 #19 两位大哥。clickhouse 貌似不支持高并发的吧。
    leeg810312
        23
    leeg810312  
       2021-04-01 20:58:51 +08:00 via Android
    年报统计 5 分钟刷一次?定这技术需求的人是不是从来没有做过 OLAP ?月报年报根本不可能是实时报表,都是定期任务,明细数据输入截止后执行一晚上,第二天就能看所有报表了,即使单表上千万也足够。上亿数据就得用大数据计算框架,Spark/Flink 等都可以,但这得准备很多硬件资源
    Alexf4
        24
    Alexf4  
       2021-04-02 09:18:34 +08:00
    @shanghai1943 clickhouse 做 OLAP 比较合适,高并发这个要求得看具体场景,很多大厂还是有 clickhouse 的实践经验的。
    3country
        25
    3country  
    OP
       2021-04-02 13:02:58 +08:00
    @leeg810312 公司应该是想做实时数据分析,这方面用什么框架?
    leeg810312
        26
    leeg810312  
       2021-04-03 08:30:20 +08:00 via Android   ❤️ 1
    @3country Spark/Flink 都可以做实时流式计算,需要配合 Kafka,场景是类似用户行为分析(商用),交通流量分析(公共服务)这样,短时间窗口内快速计算较多数据(例如 10 秒 1000 下单的分析),几秒出结果。报表属于离线计算,针对每次几千万数亿或更多的数据量,可能要 10 几分钟甚至几小时才出结果。建议厘清实际技术需求做些调研。
    3country
        27
    3country  
    OP
       2021-04-05 14:33:27 +08:00
    @leeg810312 好的,谢谢老哥解惑
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:35 · PVG 09:35 · LAX 17:35 · JFK 20:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.