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

如何实现业务数据的实时响应

  •  
  •   wld · 331 天前 · 1105 次点击
    这是一个创建于 331 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.背景:我是写 php 的,负责的业务是广告数据的采集和展示,公司这边需要看年度报表,年数据大概一年 1 亿用户量左右,消耗流水大概几亿

    2.目的:能够让老板实时的准确的看到年度,月度,日度的数据。

    第 1 条附言  ·  331 天前
    1.问题:我是写 php 的,负责的业务是广告数据的采集和展示,公司这边需要看年度报表,年数据大概一年 1 亿用户量左右,消耗流水大概几亿;老板想在各个不同的页面看到财务相关的数据,之前我们是做了跟多统计表(基本上时间维度是日维度),对年度数据的时候,数据对不上的就需要改动很多数据,所以想问下,如何更优的处理下统计的业务报表

    2.目的:能够让老板实时的准确的看到年度,月度,日度的数据。

    3.目前的解决方案:把老板看到的数据直接使用基础数据表读取出来(响应慢,但是数据对)

    4.疑惑
    4.1 是否需要压缩数据到月表,年表这种(改起来很累)
    4.2 是否需要去学习下大数据相关的内容,初步了解到涉及到业务报表相关的是使用 python 或者 R 语言写一些自动化报表,感觉不是很符合现在需求,是否有了解的伙计帮忙解答一下哈
    4.3 别的公司是如何处理年度财务相关的数据统计的
    lsk569937453
        1
    lsk569937453  
       331 天前
    提个问题需求都讲不清楚。让别人怎么回答?

    1.单表多少数据?需要查几个表?年度,月度,日度的数据计算时长是多少?
    2.每天 0 点定时任务把报表算好可否满足你的"实时"需求?
    3.最后,我只会给你推荐 clickhouse,因为他 100%可以满足你的需求。
    shen13176101
        2
    shen13176101  
       331 天前
    bi 报表?实时响应---WebSocket 考虑数据量大查询耗时的话,年月度每天凌晨计算归档,也就日度的数据,话说 navicat 里有个图表功能直查数据库出图表
    JIAOSHOUv587
        3
    JIAOSHOUv587  
       331 天前
    doris ,flinkcdc ,datart 一类的
    Ericcccccccc
        4
    Ericcccccccc  
       331 天前
    异步跑定时任务, 所有数据 15 分钟更新一次符合老板需求不?
    wbrobot
        5
    wbrobot  
       331 天前
    2012 年我做日 30 亿访问量的 http 日志分析
    我们的方案是 storm+插件,把统计好的数据丢到 MySQL ,然后 PHP 展示就行了
    能做到 3 分钟内的伪实时数据
    wld
        6
    wld  
    OP
       331 天前
    @lsk569937453 不好意思,第一次发帖,没写完按到快捷键直接发出来了

    1.问题:我是写 php 的,负责的业务是广告数据的采集和展示,公司这边需要看年度报表,年数据大概一年 1 亿用户量左右,消耗流水大概几亿;老板想在各个不同的页面看到财务相关的数据,之前我们是做了跟多统计表(基本上时间维度是日维度),对年度数据的时候,数据对不上的就需要改动很多数据,所以想问下,如何更优的处理下统计的业务报表

    2.目的:能够让老板实时的准确的看到年度,月度,日度的数据。

    3.目前的解决方案:把老板看到的数据直接使用基础数据表读取出来(响应慢,但是数据对)

    4.疑惑
    4.1 是否需要压缩数据到月表,年表这种(改起来很累)
    4.2 是否需要去学习下大数据相关的内容,初步了解到涉及到业务报表相关的是使用 python 或者 R 语言写一些自动化报表,感觉不是很符合现在需求,是否有了解的伙计帮忙解答一下哈
    4.3 别的公司是如何处理年度财务相关的数据统计的
    bthulu
        7
    bthulu  
       331 天前
    就你老板一个人看, 整这么复杂干嘛.
    两个简单方案
    1. 先把当前数据统计好. 再通过类似阿里云的 DTS 订阅相关数据的增删改, 实时统计即可.
    2. 在数据库查询上优化一下, 该分库的分库, 该分表的分表, 该分区的分区, 每个分库分表分区开一个协程同时去查, 再汇总计算.
    bthulu
        8
    bthulu  
       331 天前
    才看到你的目的是:能够让老板实时的准确的看到年度,月度,日度的数据。
    正常来说每天晚上 0 点统计一边完事.
    难道你今天上午 10 点跟今天下午 2 点的年度, 月度, 日度报表数据差异会很大吗?
    就算差异很大, 也很好解决.
    还是晚上 0 点统计一边.
    老板查的时候, 再把从 0 点到老板查的这个时间点之间的数据, 折算到 0 点的统计数据里面去就行了.
    thinkershare
        9
    thinkershare  
       331 天前
    不要打算搞实时统计,做日结&周结&月结&年节,如果需要细化,就继续细分时间段。然后用计划任务来调度。看看银行怎么搞得,各个银行的账单系统都不是实时的。除非你的系统没几个人,实时统计最终会搞挂掉你的数据库。
    wld
        10
    wld  
    OP
       331 天前
    @bthulu 感谢回复哈。
    广告系统的数据有个最大的难处就在于数据不在于自己这边,是分散在各个其他的平台的,数据获取过来会有各种各样的问题导致数据的准确度总是差点,比如说自身的 bug,对方的 bug ,网络问题,配置问题,服务器问题等等。

    所以到年底的时候总是需要去把这些数据补回来,当然吃过亏后,我们也都每天和每月都会去补一遍昨天,上个月的数据,但如此,也依然会有一些漏掉的数据,结果就是补的操作不可避免。

    但总的来说,需要弥补的来源数据也只有用户表,订单表和各平台*消耗表,大概 7-8 张,然后在统计成各维度的统计表,就十来张了。每张数据表一年的数据都需要核对一下的话,如果每一种都还要分割成日 周 年等,统计方案的工作量和心理压力就有点顶不住了。
    wld
        11
    wld  
    OP
       331 天前
    @thinkershare 好的 感谢回复哈
    flmn
        12
    flmn  
       330 天前
    感觉后台定时算,把结果存 mysql 供查询就够了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2770 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 12:50 · PVG 20:50 · LAX 04:50 · JFK 07:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.