统计分析模块需求描述 | 学习笔记

简介: 快速学习 统计分析模块需求描述

开发者学堂课程【微服务+全栈在线教育实战项目演练(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、 最终实现过程

image.png

把用户表查询出来的注册人数存储到统计分析数据表中,即生成统计数据。

现在需要做统计分析功能,要把通过这张表得到的数据放到统计数据表中,比如现在查的是3月9日,那么在这张表上存一个3月9号,后面是一串数据,比如注册人数是2,包括其他值,时间等等,这是需要做的过程。

比如从用户表中查询出两个人,那么把查询到的人数数据存储到统计分析数据表中,把 ucenter member 中查到的数据存储到 guli statistics 数据表中,而这个过程是统计数据的第一个功能,叫做生成统计数据,最后在统计数据表中做数据显示。


三、图标显示数据

把统计分析表里面存储的数据,使用图表显示。比如刚才3月9号有一个值,里面也可能有别的值,现在手动加一个值,比如订单 id 是1,日期是2020年3月1日,其余的值也填数据,目前表中有两个记录,把这两个记录用图表形式表示出来,可以用柱状图,折线图,饼状图等等,目前表中有两条记录,再把表中的两条记录用图表形式表示出来,只需要用一种形式表示出来即可。这是做统计分析的基本需求。

主要做的是两个功能,

第一个功能是生成统计数据,把 ucenter 中得到的数据存到统计表中,

第二个功能是图表显示,把得到的数据用图表显示出来。

image.png


四、总结

service_ucenter 中写接口,再建一个统计分析模块,通过统计分析模块调 ucenter 模块中的数据进行存储

image.png

在实际公司里面写代码占的时间不是最多的,占时间最多的是分析需求,讨论需求该如何实现,这个需求是占的比例最多的。

建立两个模块,第一个模块是 ucenter 模块,创建一个接口,查询某一天的注册人数,再创建另一个模块,service sta 模块,通过 sta 模块去调用 ucenter 模块,把里面的注册人数得到,得到后存到统计表中。

相关文章
|
前端开发 算法 数据可视化
可拖拽流程图组件开发
可拖拽流程图组件开发
348 0
|
存储 编译器 C语言
深度:用10000字总结了嵌入式C语言必学知识点
深度:用10000字总结了嵌入式C语言必学知识点
571 1
|
Unix Linux 程序员
Linux必知词汇:GNU通用公共许可证 GPL(GNU General Public License)
Linux必知词汇:GNU通用公共许可证 GPL(GNU General Public License)
3140 0
|
开发工具 git
Git - Smart Checkout、Force Checkout 区别
Git - Smart Checkout、Force Checkout 区别
2120 0
Git - Smart Checkout、Force Checkout 区别
|
数据库
如何解决逻辑删除is_del与数据库唯一约束冲突
如何解决逻辑删除is_del与数据库唯一约束冲突
438 0
|
人工智能 运维 搜索推荐
软件定制开发与标准化产品的比较及选择
随着信息技术的不断发展,软件已经成为企业运营中不可或缺的一部分。而在选择软件时,企业用户通常面临两个选择:软件定制开发和标准化产品。软件定制开发和标准化产品各有其优缺点,以下是对两者的比较和选择:
|
存储 人工智能 Serverless
通义千问大模型
在数字化时代,企业面临海量客户对话数据处理的挑战。阿里云推出的AI大模型助力客户对话分析方案,通过整合多种云服务,实现对话内容的自动化分析,提升服务质量和客户体验。本文将深入评测该方案的优势与实际应用效果。
|
存储 固态存储 Windows
|
监控 Linux
cento如何查看网口
【6月更文挑战第23天】cento如何查看网口
603 4
|
C++ 计算机视觉
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)
566 0
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)