1.背景:我是写 php 的,负责的业务是广告数据的采集和展示,公司这边需要看年度报表,年数据大概一年 1 亿用户量左右,消耗流水大概几亿
2.目的:能够让老板实时的准确的看到年度,月度,日度的数据。
1
lsk569937453 2023-12-21 14:52:43 +08:00
提个问题需求都讲不清楚。让别人怎么回答?
1.单表多少数据?需要查几个表?年度,月度,日度的数据计算时长是多少? 2.每天 0 点定时任务把报表算好可否满足你的"实时"需求? 3.最后,我只会给你推荐 clickhouse,因为他 100%可以满足你的需求。 |
2
shen13176101 2023-12-21 14:54:03 +08:00
bi 报表?实时响应---WebSocket 考虑数据量大查询耗时的话,年月度每天凌晨计算归档,也就日度的数据,话说 navicat 里有个图表功能直查数据库出图表
|
3
JIAOSHOUv587 2023-12-21 14:56:11 +08:00
doris ,flinkcdc ,datart 一类的
|
4
Ericcccccccc 2023-12-21 15:08:06 +08:00
异步跑定时任务, 所有数据 15 分钟更新一次符合老板需求不?
|
5
wbrobot 2023-12-21 15:12:55 +08:00
2012 年我做日 30 亿访问量的 http 日志分析
我们的方案是 storm+插件,把统计好的数据丢到 MySQL ,然后 PHP 展示就行了 能做到 3 分钟内的伪实时数据 |
6
wld OP @lsk569937453 不好意思,第一次发帖,没写完按到快捷键直接发出来了
1.问题:我是写 php 的,负责的业务是广告数据的采集和展示,公司这边需要看年度报表,年数据大概一年 1 亿用户量左右,消耗流水大概几亿;老板想在各个不同的页面看到财务相关的数据,之前我们是做了跟多统计表(基本上时间维度是日维度),对年度数据的时候,数据对不上的就需要改动很多数据,所以想问下,如何更优的处理下统计的业务报表 2.目的:能够让老板实时的准确的看到年度,月度,日度的数据。 3.目前的解决方案:把老板看到的数据直接使用基础数据表读取出来(响应慢,但是数据对) 4.疑惑 4.1 是否需要压缩数据到月表,年表这种(改起来很累) 4.2 是否需要去学习下大数据相关的内容,初步了解到涉及到业务报表相关的是使用 python 或者 R 语言写一些自动化报表,感觉不是很符合现在需求,是否有了解的伙计帮忙解答一下哈 4.3 别的公司是如何处理年度财务相关的数据统计的 |
7
bthulu 2023-12-21 15:59:15 +08:00
就你老板一个人看, 整这么复杂干嘛.
两个简单方案 1. 先把当前数据统计好. 再通过类似阿里云的 DTS 订阅相关数据的增删改, 实时统计即可. 2. 在数据库查询上优化一下, 该分库的分库, 该分表的分表, 该分区的分区, 每个分库分表分区开一个协程同时去查, 再汇总计算. |
8
bthulu 2023-12-21 16:08:22 +08:00
才看到你的目的是:能够让老板实时的准确的看到年度,月度,日度的数据。
正常来说每天晚上 0 点统计一边完事. 难道你今天上午 10 点跟今天下午 2 点的年度, 月度, 日度报表数据差异会很大吗? 就算差异很大, 也很好解决. 还是晚上 0 点统计一边. 老板查的时候, 再把从 0 点到老板查的这个时间点之间的数据, 折算到 0 点的统计数据里面去就行了. |
9
thinkershare 2023-12-21 16:20:54 +08:00
不要打算搞实时统计,做日结&周结&月结&年节,如果需要细化,就继续细分时间段。然后用计划任务来调度。看看银行怎么搞得,各个银行的账单系统都不是实时的。除非你的系统没几个人,实时统计最终会搞挂掉你的数据库。
|
10
wld OP @bthulu 感谢回复哈。
广告系统的数据有个最大的难处就在于数据不在于自己这边,是分散在各个其他的平台的,数据获取过来会有各种各样的问题导致数据的准确度总是差点,比如说自身的 bug,对方的 bug ,网络问题,配置问题,服务器问题等等。 所以到年底的时候总是需要去把这些数据补回来,当然吃过亏后,我们也都每天和每月都会去补一遍昨天,上个月的数据,但如此,也依然会有一些漏掉的数据,结果就是补的操作不可避免。 但总的来说,需要弥补的来源数据也只有用户表,订单表和各平台*消耗表,大概 7-8 张,然后在统计成各维度的统计表,就十来张了。每张数据表一年的数据都需要核对一下的话,如果每一种都还要分割成日 周 年等,统计方案的工作量和心理压力就有点顶不住了。 |
11
wld OP @thinkershare 好的 感谢回复哈
|
12
flmn 2023-12-22 11:05:20 +08:00
感觉后台定时算,把结果存 mysql 供查询就够了
|