系统 :Centos7.4
编辑器:Vim
Java 环境:JDK8
Mysql 环境:Mysql5.1
===================================================================
疫情数据准确
疫情数据实时性高
能直观看到现在疫情的情况
能多角度的学习到疫情的现状
疫情数据需要来源
要有精确且有效数据
数据需要存储到安全的地方
存储的数据需要能被高效获取
有效数据需要再分类成独立数据集
数据集需要制作图表进行可视化
===================================================================
整体分成四个模块
monitor 模块: 负责监听疫情动态数据,实现数据实时更新,保证数据的实时性,降低系统资源利用率
Data mining 模块: 负责抓取所有与疫情相关的数据 并 挖掘出有用的数据,实现数据的“无中生有”,保证数据的准确性与有效性,降低数据冗余
Database 模块: 负责存储 Data mining 模块生成的数据,实现数据的存储,保证数据的安全性、高可用性,降低数据的不稳定性
Data visuallzation 模块: 负责将存储在 Databases 模块的有效数据 变成直观的数据,实现数据可视化,保证数据的可读性,降低某些数据被当作多余的可能
monitor模块与其他模块区别存储/使用
monitor模块负责其它模块整体的使用及调度
Data mining 模块分成三个功能区
Data collection:负责数据的收集,收集疫情相关的数据
Data cleaning: 负责数据的清洗,清洗出有效数据
Data storage: 负责数据的存储,将数据存储到数据库
对 Data mining 模块存储的数据进行简单分类
Data visualization 模块分成三个功能区
Data Extraction:负责数据的提取,从数据库中提取出数据,并进行简单处理
Data Classification:负责数据的分类处理,这是对疫情数据最后的一步处理
Generate Webpage code: 负责将分类过的数据,并生成 web 页面
Data mining 模块分成两个组件,三个功能区
data collection: 负责数据的收集
Data monitoring: 负责监听 data collectiong 收集的数据,如果监听到数据发生变化,立即作出反应
Process monitoring: 负责监听 Data monitoring 组件,如果监听到该组件有所变化,立即执行整个项目,将上述架构实现
===================================================================
使用的语言和文件分布、代码工程量:
文件目录:
所有文件将会被打包成:
两个 jar 包: > COVID19.jar 文件: index.java 目录:Data*mining DATA_visualization > Data_monitoring.jar 文件:Data_monitoring.java
一套 Linux Shell 脚本: > Main: Monitor_process.sh 分支文件: runcovid.sh COVID19UPDATE.sh
一个 Web 访问目录: > 目下分支两个目录 */Log _/Run
包含已/待生成的 Web 文件: Form_theme.js index.html */Log/诸多日志文件 > > > > index.html 文件为 COVID19.jar 将生成的文件 内包含已编写的两个远程 Javascript 文件,协助可视化的制作
文件目录:
共分成五个类
mining_transfer 类
作用:资源池
功能:存储数据 Data_mining 模块中所有需要被使用的数据,并对外提供接口
代码:
Scraping 类
作用:数据爬虫
功能:爬取网页 JSON 数据,并进行简单处理,将 JSON 数据变成一段连续的字符串,之后将这一次处理生成的数据记录下来
`因为疫情数据不能出现一点差错,所以仍和一
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
次对数据的处理都需要存储为日志文件,提高可维护、可控性`
包的使用:
重要变量:
简单正则处理去除特殊字符:
构造方法 & 爬取 JSON 数据:
生成日志文件:
Cleaning 类
作用:数据清洗
功能:按数据的不同特征,清洗出有用数据数据
包的使用:
依旧需要将每一次处理都记录下来,方便后期维护:
自编的一个正则处理的模板,能大大提高代码的整洁性,和程序的运行速度
只需要拟定好需要的正则规则使用模版即可
示范:
这一段能将国内所有地区,包括其名称、累计确诊、治愈、死亡人数都找出
再例如:
这一段能把国内整体的一个疫情数据都找出
最后就是构造方法了:
Submission 类
作用:数据存储
功能:将需要存储的数据存储到 Mysql 数据库中,并对 Mysql 数据库进行简单管理
包的使用:
重要的变量,包含 Mysql 不同版本的连接方式,以及用户名和密码:
使用 JDBC,编写 sq 语言 l,对数据库表进行管理
动态生成会变化部分的 sql 代码,使用 sql 语言将数据插入数据库中(仅示范部分)
构造方法,连接数据库,调度其它方法
Run_mining 类
作用:资源调度
功能:调度 Data_mining 模块中所有资源,包括类的使用、数据的传递
代码:
小结
如果,数据挖掘模块刚爬取到的 JSON 数据是这样:
那么,数据挖掘模块完整使用后,在 Mysql 数据库中的数据为:
文件目录:
共分成五个类
visualization_transfer 类
作用:资源池
功能:存储数据 Data_visualization 模块中所有需要被使用的数据,并对外提供接口
代码:
Extraction 类
作用:数据提取
功能:提取出 Mysql 数据库中需要的数据,存储到资源池中
和Data_mining模块的Submissionl类的许多相似功能不再赘述
包的使用:
对 Mysql 表进行最大限制,并提取其表名:
根据表名,提取出其存储的数据:
Generation_Javascript 类
作用:Javascript Code 生成
功能:根据已经设计好的数据可视化代码,生成其可能会发生变化的 Javascript 代码
为了不偏移以Java实现的核心思想,仅介绍核心功能
生成疫情在地图上的地区分布的主要数据,包括地区名称,确诊人数等关键数据
(仅为范例):
Generation_HTML 类
作用:HTML Code 生成 与 插入
功能:根据已经设计好的数据可视化代码,结合 Generation_Javascript 类生成的 Javascript 代码,生成其可能会发生变化的 HTML 代码,再将其存储为一个可被访问的 web 页面
为了不偏移以Java实现的核心思想,仅介绍核心功能
将可被浏览器所编译的 Javascript 数据,疫情地区分布图、新增人数地区分布图等。。。
读者福利
========
由于篇幅过长,就不展示所有面试题了,想要完整面试题目的朋友(另有小编自己整理的2024大厂高频面试题及答案附赠)