Adventure项目总结
一、项目概述
1、成果预览
最近回顾了Adventure项目,在此记录、总结分析实现过程。该项目主要任务是利用python的pandas、numpy包从MySQL数据库中读取原始数据进行加工、聚合、分析,再利用Power BI进行dashboard的搭建。再以聚合后的数据为基础制作PPT,汇报分析结果,为业务团队自主分析提供数据支持,改进工作。
dashboard预览:Dashboard看板链接
文章图片
PPT预览
文章图片
2、背景介绍
1)公司背景
Adventure Works Cycle是国内一家生产和销售自行车及和相关配件的制造公司。利用每日商品销售及相关客户信息数据,获取商品销售趋势、地域分布情况以及简单用户画像,进行可视化展示,为运营人员提供自主分析工具。
2)产品介绍
公司主营业务有自行车(主要产品),服装,配件
- 自行车:包括公路自行车、山地自行车、旅游自行车三大类
- 服装:包括帽子、手套、袜子、背心、运动衫等
- 配件:包括头盔、挡泥板、车架、清洁工、瓶子和笼子、车胎等
这里主要分析的是自行车业务。
1)ods_sales_orders 订单明细表
文章图片
2)ods_customer 每日新增用户表
文章图片
3)dim_date_df 日期维度表
文章图片
二、python处理数据 1、生成dw_order_by_day表
导入相关模块,连接数据库
文章图片
step 1:读取ods_sales_orders(订单明细表),生成sum_amount_order(销量订单聚合表),求总销售金额/客单价
文章图片
step2:利用空列表及循环生成对应随机值,与销量订单聚合表合并形成sum_amount_order_goal(销量订单聚合目标表)
文章图片
step3:读取dim_date_df日期维度表
文章图片
step4:对数据进行融合,生成dw_order_by_day表
文章图片
step5:删除旧的dw_order_by_day(每日环比表),存储新的dw_order_by_day
文章图片
2、生成dw_amount_diff表
step1:读取dw_order_by_day表
文章图片
【Adventure项目总结】
step2:求取各阶段的总金额
文章图片
step3:求取各阶段的总订单数
文章图片
step4:求取各阶段的总金额、订单数的同期对比数据
文章图片
step5:删除旧的dw_amount_diff表,存储新的dw_amount_diff表
文章图片
3、生成dw_customer_order表
step1:读取最新日期的ods_sales_orders(订单明细表)
文章图片
step2:读取每日新增用户表ods_customer
文章图片
step3:读取日期维度表dim_date_df
文章图片
step4:对数据进行聚合
文章图片
step5:存储数据
文章图片
三、搭建Dashboard 1、可视化看板布置 1)可视化工具:此处使用的可视化图表有切片器、卡片图、KPI图、环形图、子弹图、表格、地图等;
2)筛选器:用于区域、日期等字段信息的筛选;
3)书签:将按钮操作与书签相结合,完成不同页面的导航、跳转功能
2、报表展示 1)主页
- 展示今日销售金额及目标完成情况、订单量、客单价以及同比情况;
- 表格列明详细销售情况
- 环形图展示各个种类产品销售占比情况- 利用地区和城市切片可以动态展现不同城市的销售情况
- 地图和气泡图结合展示各个城市销售情况
文章图片
2)趋势详情页
- 通过切片器筛选最近一段时间的销售变化趋势
- 动态展示最近15天销售订单量完成情况
- 动态展示最近15天销售金额以及目标完成情况
- 动态展示最近15天客单价变化趋势
文章图片
3)城市详情页
- 切片筛选区域和城市,动态展示不同地区销售情况
文章图片
- 优化销售策略,调整产品结构,才能保持高速增长,获取更多的收益,占领更多市场份额
- 根据需求分析2019年11月自行车销售情况,为精细化运营提供数据支持
dw_customer_order 产品销售信息表
ods_customer 每天新增客户信息表
dim_date_df 日期表
ods_sales_orders 订单明细表
3)分析思路
从整体的角度:分析2019.1—2019.11自行车整体销售表现
从地域的角度:分析11月每个区域销售量表现、11月TOP10城市销售量表现
从产品的角度:分析11月类别产品销售量表现、11月细分产品销售量表现
从用户的角度:分析11月用户年龄分布及每个年龄段产品购买喜好、11月男女用户分布情况
热销产品:分析11月TOP10产品销量榜、11月TOP10销量增速榜
文章图片
2、python加工数据
文章图片
1)整体销售表现
读取数据
文章图片
观察字段属性信息
文章图片
增加月份字段以便于进一步分析
文章图片
筛选自行车数据
文章图片
用groupby进行分组,求出每月订单量和销售金额总和,并进行排序
文章图片
求每月订单量环比
文章图片
转为dataframe形式
文章图片
同样求出每月销售金额环比,并转为dataframe,同时对两个环比字段进行重命名
文章图片
存入数据库
文章图片
2)地域销售表现
筛选10月、11月数据后进行分组求和
文章图片
求出不同区域销售环比情况
文章图片
存入数据库
文章图片
按城市分组并筛选销量前十的城市
文章图片
筛选10月、11月数据并计算月销售金额
文章图片
文章图片
计算环比
文章图片
存入数据库
文章图片
3)产品销售表现
求出月销量并合并表格
文章图片
计算细类产品销售占比情况并重命名
文章图片
查看自行车产品种类
文章图片
求出山地自行车具体型号销售数量以及种类月销量,并进行合并
文章图片
文章图片
同样方法对公路自行车和旅游自行车进行处理
计算销量环比
文章图片
计算累计销量
文章图片
合并表格并存储
文章图片
文章图片
4)用户行为分析
读取信息
文章图片
用户年龄
合并表格,截取年份信息
文章图片
文章图片
计算用户年龄并进行分层
文章图片
计算年龄比率,以便统计各年龄段占比情况
文章图片
文章图片
用户性别
观察性别分布情况并进行字段关联
文章图片
5)热点产品分析
11月产品销量TOP10产品,销售数量及环比
计算产品销量并排序
文章图片
切片、筛选信息,找出本月销量top10产品
文章图片
11月增速TOP10产品,销售数量及环比
切片、筛选信息
文章图片
合并表格
文章图片
存储数据
文章图片
3、PPT制作 通过上述加工,将存入MySQL数据库的数据接入Power BI,绘制图像,从而完成自行车业务分析报告
文章图片
五、尝试使用Hive和SQL完成ETL过程 1、使用sqoop导数到hive数据库生成 ods 层数据
以生成dim_date_df表为例
文章图片
文章图片
ods_sales_orders表、ods_customer表亦同样处理
2、使用hive库进行数据汇总加工生成dw层数据
以ods.dw_order_day为例进行数据加工
文章图片
3、sqoop导出分析结果到mysql
以导出dim_date_df表为例
文章图片
推荐阅读
- 7.9号工作总结~司硕
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 17|17 关山松 第二课作业#公众号项目# D20
- RxJava|RxJava 在Android项目中的使用(一)
- 数据库总结语句
- 周总结|周总结 感悟
- 周总结43
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- 参加【21天写作挑战赛】,第七期第14天,挑战感受小总结
- 第二阶段day1总结