记一个大数据量统计分析
前几天主管在培训的时候,提了一个统计需求,具体需求是:有一个订单表数据量非常大,每年都新增上亿的数据量,现在要求按年、季、月、日来统计交易金额,并且最长5秒钟出数据。第一眼看到这个需求,我相信大多数人是按要求写一条SQL语句进行分组统计。各种sum求和、按照年、季、月、日分组再union。最后功能是实现了也能正确统计出要的数据来,但在时上却不知道要多久。
数据分析四个关键环节
桑文锋把数据分析分为四个环节,数据采集、数据建模、数据分析、指标。他提出了一个观点,要想做好数据分析,一定要有自底向上的理念。很多公司的数据分析自顶向下推动,用业务分析指标来决定收集什么数据,这是需求驱动工程师的模式,不利于公司长久的数据采集。而一个健康的自底向上模式,可以帮助公司真正建立符合自己业务的数据流和数据分析体系。
所以这里我们第一步就要重新采集数据,首先要把数据基础建好。第二步数据建模,针对此表需求建立四张表:分别为存放年、季、月、日的数据。在创建订单的时候我们对这四张表的金额进行修改或插。
1、根据年、季、月、日创建四张表,表字段都共有年、金额。
2、在创建订单的时候分别向四张表修改或插入数据。
3、查询统计的时候就是对这几张表操作,不再操作订单表。
这里年就只有一条数据,季在一年中4条数据、月在一年中只有12条,日一年中也就365条,即使多年后数据也不会增加很多。
4、对历史数据作初始化处理,分别按年、季、月、日
按照以上几步数据不会去操作订单表,只需要对这几张作查询分析。
参考文章:https://sensorsdata.cn/blog/da-shu-ju-fen-xi-de-si-ge-guan-jian-huan-jie/