开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):统计分析模块需求描述】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11503
统计分析模块需求描述
目录:
一、统计分析模块需求
二、生成统计数据
三、使用图标显示统计数据
四、总结
一、统计分析模块需求
首先分析统计分析模块的需求需要做什么功能,包括如何去做。
在我们的在线教育项目中,在网站运营过程中,每天会产生很多的数据,可以对这些数据做一个具体分析,用图表做展现,利于网站后期的运营等等一系列事情。
在功能中以一个数据为例,其他数据与它基本相同
1、比如需要做的功能
1)统计在线教育项目中,每天一天有多少注册人数
2)把统计出来的注册人数,使用图表显示出来
而功能应如何去做?
要先知道一个总体介绍,现在要统计有多少注册人数。
比如三月一号有10个人,三月二号有100个人,三月三号有1个人,三月四号没有人等等,把这些统计出来,并把这些数据用图表做出展现,不论是柱状图饼状图还是折线图,我们可以做出一个显示。
二、生成统计数据
1、创建表存储统计数据
做一些准备工作,首先需要创建一张表,这张表用来存储统计数据,这个表称为统计数据表。
(1)表的做法
在资料里面提供了数据库脚本,在数据库脚本中有一张表,名字为 guli_statistic,是一张统计数据表,按照这个表做出统计数据。
已经创建好了 statistics_daily,是每个日期中的统计数据表,表格中有字段。
i d是主键,ata_calculated 是统计日期,比如是2020年3月1号,这是统计日期,下面是统计数据,比如在3月1号那天有多少注册人数,多少登录人数,多少视频播放数,register_num 是注册人数,以此类推。
表中的数据,第一个值是id,第二个值是统计日期,后面是统计出来的值。
这个数据的含义是在2020年1月1日,有10个注册人数,111个登陆人数等等,这是需要存的数据,即存的统计数据。
假设有一个2020年1月2日,又有其他的的相关值,最后这些值用图表形式表示出来,做个展现。第一件事情是要建一张表,表中添加数据,而这个数据就是需要的效果。
做好后即开启下一步,做好功能。
因为想做这个部分,只是想统计每天的注册人数,只想把这个做出来,这个功能应如何去做。
2、 统计某一天的注册人数
要先看表,有一张表叫 newcente
r member,这张表称为用户表,或者叫会员表,如果需要统计某一天的注册人数应该查询这张表,只有查这张表才能查到。
现在打开这张表,先写段语句做个测试,为了明显,把里面的值稍微改一下,比如改成3月9日和1月1日。比如现在想写这样一个语句,考虑一下应该怎么写。
比如查询2020年3月9日这一天有多少注册人数,想把这个做查询,这个语句应该怎么写。
分析一下,每次注册在表中都有一条记录,那想统计3月9日,如果以3月9日的日期作为统计标准,那么这个日期里有多少条记录则是注册人数。
利用查询语句的聚合函数,count 表示查询里的聚合数,在 count 里面可以加一个1,或者一个*,再来个 from,按照这个表叫 ucenter_member。
有表之后有条件,用日期做查询,条件用 where。根据时间做查询。如果用日期做查询,则本来有两条记录,却查不出来。没有查出来的原因是存的日期是带了时间分秒,但查询时只有年月日。如果不想加时间应该如何做?因为两条日期都是3月9日而无法查出来。
解决问题有两种方式。
第一种方法是用 like 语句,like 不用查询,加一个百分号的规则,但现在不建议这么写,这不运用在日期中,是根据昵称做查询。所以用 like 不合适
在 curcle 语句中有一个函数,这个函数可以做到,名字为 date,把日期放到date函数里面,执行后得到数量2,即在3月9日有两台记录。
通过在语句中的作用看出,date 的作用是获取时间格式里面的日期部分,或者称为日期格式里面的年月日部分取到,而小时分秒称为时间,年月日称为日期,date 可以把日期部分取到用来比较。查询时即可查到。
#查询2020-03-09有多少注册人数
#DATA 获取日期时间格式里面日期部分
SELECT COUNT(*) FROM ucenter_member uc WHERE DATA (uc.gmt_create )=’2020-03-09
’
3、 最终实现过程
把用户表查询出来的注册人数存储到统计分析数据表中,即生成统计数据。
现在需要做统计分析功能,要把通过这张表得到的数据放到统计数据表中,比如现在查的是3月9日,那么在这张表上存一个3月9号,后面是一串数据,比如注册人数是2,包括其他值,时间等等,这是需要做的过程。
比如从用户表中查询出两个人,那么把查询到的人数数据存储到统计分析数据表中,把 ucenter member 中查到的数据存储到 guli statistics 数据表中,而这个过程是统计数据的第一个功能,叫做生成统计数据,最后在统计数据表中做数据显示。
三、图标显示数据
把统计分析表里面存储的数据,使用图表显示。比如刚才3月9号有一个值,里面也可能有别的值,现在手动加一个值,比如订单 id 是1,日期是2020年3月1日,其余的值也填数据,目前表中有两个记录,把这两个记录用图表形式表示出来,可以用柱状图,折线图,饼状图等等,目前表中有两条记录,再把表中的两条记录用图表形式表示出来,只需要用一种形式表示出来即可。这是做统计分析的基本需求。
主要做的是两个功能,
第一个功能是生成统计数据,把 ucenter 中得到的数据存到统计表中,
第二个功能是图表显示,把得到的数据用图表显示出来。
四、总结
在 service_ucenter 中写接口,再建一个统计分析模块,通过统计分析模块调 ucenter 模块中的数据进行存储
在实际公司里面写代码占的时间不是最多的,占时间最多的是分析需求,讨论需求该如何实现,这个需求是占的比例最多的。
建立两个模块,第一个模块是 ucenter 模块,创建一个接口,查询某一天的注册人数,再创建另一个模块,service sta 模块,通过 sta 模块去调用 ucenter 模块,把里面的注册人数得到,得到后存到统计表中。