大型电商日志分析
任务及要求:
本项目以电商平台为背景,通过数据产生、数据收集、数据存储、数据清洗、数据分析、结果展示等过程来详细剖析电商日志分析的整个过程
00-项目环境
1、编程工具:idea
2、构建/管理项目工具:maven
(1) 构建maven仓库
3、版本控制系统工具:git(GitHub)
(1) git@github.com:clownAdam/GraduationProject.git
(2) address:https://github.com/clownAdam/GraduationProject
4、代码规范检查工具:Alibaba Java Coding Guidelines plugin(《阿里巴巴Java开发规约》插件)
5、idea中web热部署:jrebel插件
6、关系型数据库:mysql5.x
7、数据库可视化工具:navicat premium
7、java-version:jdk1.8
8、web应用服务器:tomcat9.x
01-项目设计
1、项目名称:GraduationProject(utf-8)
2、功能模块化设计
(1) 文档模块、数据产生、数据收集、数据存储、数据清洗、数据分析、结果展示模块
3、数据库设计
(1) 数据库名:graduation
(2) 字符集:UTF-8 Unicode
4、表设计
02-模块设计
001-文档模块(clown-doc)
功能:编写与项目所有相关的文档及文件
论文(graduation.docx)
需求分析文档
概要设计文档
详细设计文档
编码文档
002-setup模块(clown-setup)
功能:存放安装包
003-公共模块(clown-common)
功能:通用工具类、常量、接口、枚举类等。
java
>cn.clown.common存放公共通用类、接口、枚举的包
>constant:存放定义常量的包
>util:存放工具类的包
>JdbcUtil.java:连接数据库工具类
>bean:定义通用接口和规范
>Val:值对象接口,设置和获取值
>AbstractData:数据对象抽象类,实现Val值对象接口,对数据对象内容进行赋值。
>DataIn:数据来源接口,必须设置数据来源和数据的读取
>DataOut:数据输出接口,必须设置数据输出和数据的写出
>Producer:数据的生产,必须设置数据来源,数据的写出,数据的生产
>DataIn:
resources
>jdbc.properties:数据库连接配置文件
>log4j.properties:日志文件
配置文件
jdbc工具类(JdbcUtil.java)
功能:获取数据库连接对象,释放资源。
主要code:
/**
* 获取数据库连接
*
* @return 返回数据库连接对象
*/
public static Connection getConnection() {
if (connection != null) {
return connection;
}
try {
Class.forName(driverClass);
connection = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.out.println("class.forname()中driverClass not found");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("DriverManager.getConnection 获取连接异常");
}
return connection;
}
主要测试code:
@Test
public void getConnection() {
if (connection != null) {
System.out.println("mysql 连接成功,connection为:" + connection);
}
}
004-数据产生/生产者模块(clown-producer)
功能:电商日志数据的生产者。负责生产日志数据。
005-数据分析结果展示模块(clown-web)
功能:电商日志分析展示。
需求1:根据商品记录,统计商品销量/分类中的商品销量