一、案例简介
1.1案例背景
本案例围绕某互联网小型电商的订单业务开发。某电商公司,每天都有一些的用户会在线上采购商品,该电商公司想通过数据分析,查看每一天的电商经营情况。例如:电商公司的运营部门想要清楚的看到每天的订单笔数、订单的下单总额、不同支付类型对应的订单笔数和总额等等。
为了实现公司的数据分析业务,我们需要开发一套数据分析的系统以实现电商公司的需求。
2.技术方案
本案例基于MySQL数据库,使用Kettle、Apache Superset实现数据可视化。案例使用MySQL作为数据分析的存储以及查询引擎、以Kettle作为数据处理脚本执行工具、以及Apache Superset实现数据可视化展示。
二、案例架构
2.1 系统架构
2.2数据流程图
1.通过Kettle将MySQL业务系统数据库中,将数据抽取出来,然后装载到MySQL数据仓库中。
2.编写SQL脚本,对MySQL数据仓库中的数据进行数据分析(分组、聚合等),并将分析后的结果保存。
3.使用 Superset 将保存下来的分析结果进行可视化分析。
三、搭建数据仓库
模拟真实业务场景,分别业务数据库虚拟机和数据仓库虚拟机
3.1创建项目并建立DataGrip数据库连接
1.新建项目名:itcast_shop_bi;并连接上数据仓库虚拟机服务器主机,测试连接成功。
3.2新建数据仓库架构,存放各功能数据。
四、项目开发
4.1表结构总览
本项目业务数据库一共六张表,如下:
4.2表字段解释
TODO数据字典
4.3 抽取业务数据到数据仓库
4.3.1 抽取频率分析
1. 每一天都需要进行订单的分析,例如:2020年4月18日一共有多少笔订单、订单的总额是多少。
2. 每一天都需要进行用户的分析,例如:2020年4月18日一共注册有多少个用户。
3. 商品分类、区域的变化率很少,因为分类、区域几乎都是常年不变的。
4. 商品的数据相对变化频率较高,因为可能每天都会有商品信息的更新。
4.3.2抽取业务数据到数据仓库ods层
数据仓库的ods表是将业务系统数据库表原样抽取进来,结构几乎是一样的,只不过加了一个抽取数据的日期字段。
4.4.3 kettle抽取业务数据到数据仓库
4.4 针对指标进行业务分析
使用datagrip对数据仓库ODS层的数据进行业务分析,加工的临时表放在DW层。分析完成的结果表放在ADS层
业务1-订单金额和笔数统计
业务2:下订单的用户数统计
业务3:统计某天不同支付类型下的支付总额和支付笔数
业务4:统计2019年9月下订单最多的用户TOP5
业务5:对一级分类进行分组统计得到销售额和订单数
5.superset数据可视化
5.1 启动Superset、连接MySQL
cd /root/anaconda3/
superset run -h 192.168.88.100 -p 8080 --with-threads --reload --debugger
登录superset
http://192.168.88.100:8080/superset/welcome
用户名: admin 密码:123456
5.2 连接mysql
Superset MySQL连接URL mysql://root:123456@192.168.88.100/itcast_shop_bi?charset=utf8
5.4 实现效果图
5.5操作步骤
连接数据仓库ads层数据表格
1. 订单销售总额
2.订单数量
3.用户数
4.不同支付方式订单数饼图
5.不同支付方式总金额环形图
6.订单数Top5的用户表格
7.各品类销售额柱状图
8.各品类订单数柱状图
9.品类销售额文字云
5.7创建项目dashboard,将处理过的图表放置到看板合适位置