统计分析-生成统计数据接口(2)| 学习笔记

简介: 快速学习 统计分析-生成统计数据接口(2)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)统计分析-生成统计数据接口(2)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11505


统计分析-生成统计数据接口(2)


目录:

一、实现功能

二、测试结果

三、解答问题


一,实现功能

把过程通过远程调用得到某天的注册人数,把人数最终加到我们的数据库中。

实现该功能:

做添加时,直接调用 baseMapper.insert(StatisticsDaily t) 方法,里面传对象即可。

先把对象 new 出来,然后向对象中给它设置进去值:

StatisticsDaily sta = new StatisticsDaily(); //new 该对象

sta.setRegisterNum();

//设置对象:注册人数,注册人数刚刚得到了,叫 countRegister

sta.setDateCalculated(day);

//是表中统计的日期,如查3月9号,里面就存3月9号,查3月1号,里面就存3月1号,是统计的日期,day 就是统计的日期

上面是两个值,还有其他值,以注册为例,其他值做数据的模拟,直接用随机数把几个值都设置:

//RandomUtils.nextInt(100,200);  随机数范围100到200,加入到每个值中随机生成值

sta.setVideoViewNum(RandomUtils.nextInt(100,200)); //视频播放数

sta.setLoginNum(RandomUtils.nextInt(100,200));//登录数量

sta.setCourseNum(RandomUtils.nextInt(100,200)); //课程播放数量

baseMapper.insert(sta );//最后把对象放到方法中,最终加到数据库中,功能完成,即统计某天的注册人数,根据天数去远程调用 UcenterClient。

然后把该数据得到,最终把它加到我们的数据库中。初步实现完成。  


二,测试结果

最终试一下,看它最终结果怎样。

为了明显,在表里边先手动加几个记录,因为有记录,之后就查3月9号,1月1号,因为3月9号是两个值,3月1号是一个值。接口完成后,把两个服务启动,先用 swagger 测试,没有问题再找前端,把功能做上。

先检查,各部分都有,包括 nacos 配置都有,接下来启动,nacos 是醒状态,先把 UcenterApplication 启动,将该服务启动后再启动 sta 的统计服务,都启动用 swagger 做测试,等待启动后,找到 StaApplication 模块,也启动。等待它启动。

现在看 sta 用的端口号是8008,所以用8008的 swagger 做访问,测试该过程是否正确。均启动之后,把static统计表中数据先删除,重新添加,因为最终目的是表中多出一条数据。

打开 swagger:localhost:8008/swagger-ui.html ,打开之后找到/staservice/sta/registerCount/{day}方法,传入要查询的信息,如:查询日期:2020-03-09,因为它里边有数据,传入数据后,点击 Try it out! 看它返回的结果。

”message”:”成功”,返回成功。

表里默认没有值,刷新后看到数据添加成功。data_calculated:统计日期;register_num:生成人数;

login_num,video_view_num,course_num 是随机数,里面还有时间,可以加自动填充,这里不加了,各位把细节完善。

在 StatisticsDaily 中加入注解,tablebuilt,把时间也加上,现在值都有了,一个简单的功能完成。通过远程调用得到我们的注册人数,最终加到表中。


三,解答问题

问题:通过 statistics 模块调用 ucenter 模块得到操作,为什么过程要做个调用?数据直接查,做分析不可以吗,为什么还要做调的过程?即直接用 ucenter 查,做统计也可以做到,为什么要通过 spa 调该模块,存到表中才做统计?

解答:这么做也是实际工作中的场景,

举例:

(1)在实际的项目中,这种架构叫微服务模块,即每个服务由不同的团队做,如sta是你的组做的,ucenter 是另外的组做的,不同组之间是相互独立的。

实际中可以这样做:让 sta 去返一个数据库,ucenter 是另外的数据库。

每个服务访问不同的数据库。一个词叫做分库处理,比如我现在建个数据库,就叫鼓励 sta 专门做统计表。

然后另外一个库叫鼓励 ucenter 专门做用户表。在实际中一般是这样,因为咱是自己测试,所以是建立了一个数据库。但实际中不同模块不同数据库,现在的问题是 ucenter 只做用户,他跟统计无关,而统计不是由他这组做的,是由我们这组做的。但是我们还需要他的数据,那怎么做?

因为我们不可能去访问 ucenter 的数据库。没有权限,这就需要一个接口,做远程调用。

(2)有个项目叫北京移动话费管理平台呼叫中心系统,当时做的场景就是根据用户打过来的手机号,去查询该用户的姓名。用户手机号和姓名,也就是用户信息,它存在移动的数据库中。

公司没有权限去访问移动的数据库。把数据给公司让公司随便访问,是不可能的,用户信息可能泄露,那移动需要给我们开发一个接口,然后我们去调这个接口,根据手机号去查出手机号对应的姓名,然后再做操作。

这是一个实际流程,这些实际中将会来做一个接口提供数据,然后另外一个去调接口,得到信息,所以现在其实就是模拟这个过程。

用 sta 调 ucenter 得到数据,然后做统计,在实际中经常会有这种场景。

(3)每个人都有一个身份证,包括你的信息,而身份证信息是要存到国家公安部网站,比如现在我这边成立一个公司,我想做一个身份证系统,国家公安部网站数据库不可能对我这公司开放。

它可以给我开放一个接口,根据接口去调用身份证号信息,就是这样的流程。

现在是在服务间或者空调用。我们是用 spa 得到 ucenter 数据,然后把数据加到该模块的数据库中,最终做统计分析。这是一个比较符合实际的场景,在实际中一般都这么操作。


相关文章
|
Web App开发 数据挖掘 iOS开发
84 网站点击流数据分析案例(统计分析-PV统计)
84 网站点击流数据分析案例(统计分析-PV统计)
221 0
|
存储 JSON 数据可视化
数据可视化大屏电商数据展示平台开发实录(Echarts柱图曲线图、mysql筛选统计语句、时间计算、大数据量统计)
数据可视化大屏电商数据展示平台开发实录(Echarts柱图曲线图、mysql筛选统计语句、时间计算、大数据量统计)
564 0
|
数据挖掘
白话Elasticsearch38-深入聚合数据分析之案例实战 下钻分析之统计每季度每个品牌的销售额
白话Elasticsearch38-深入聚合数据分析之案例实战 下钻分析之统计每季度每个品牌的销售额
124 0
|
SQL 数据挖掘
白话Elasticsearch39-深入聚合数据分析之案例实战_搜索+聚合: 统计指定品牌下每个颜色的销量
白话Elasticsearch39-深入聚合数据分析之案例实战_搜索+聚合: 统计指定品牌下每个颜色的销量
144 0
|
SQL BI Shell
报表统计_广告投放统计_代码实现 | 学习笔记
快速学习报表统计_广告投放统计_代码实现
102 0
报表统计_广告投放统计_代码实现 | 学习笔记
|
JSON 分布式计算 大数据
行政区统计_功能实现|学习笔记
快速学习行政区统计_功能实现
121 0
行政区统计_功能实现|学习笔记
|
存储 数据采集 弹性计算
SLS 初体验:采集、加工、查询分析及可视化(二)| 学习笔记
快速学习 SLS 初体验:采集、加工、查询分析及可视化。
SLS 初体验:采集、加工、查询分析及可视化(二)| 学习笔记
|
存储 运维 监控
SLS 初体验:采集、加工、查询分析及可视化(一)| 学习笔记
快速学习 SLS 初体验:采集、加工、查询分析及可视化。
SLS 初体验:采集、加工、查询分析及可视化(一)| 学习笔记
|
SQL 数据采集 监控
网站流量日志分析--统计分析--基础指标统计分析(pv、uv)|学习笔记
快速学习网站流量日志分析--统计分析--基础指标统计分析(pv、uv)
494 0
网站流量日志分析--统计分析--基础指标统计分析(pv、uv)|学习笔记
|
XML JSON 关系型数据库
统计分析-生成统计数据接口(1) | 学习笔记
快速学习 统计分析-生成统计数据接口(1)
203 0