一、项目概述
1、成果预览
最近回顾了Adventure项目,在此记录、总结分析实现过程。该项目主要任务是利用python的pandas、numpy包从MySQL数据库中读取原始数据进行加工、聚合、分析,再利用Power BI进行dashboard的搭建。再以聚合后的数据为基础制作PPT,汇报分析结果,为业务团队自主分析提供数据支持,改进工作。
dashboard预览:Dashboard看板链接
2、背景介绍
1)公司背景
Adventure Works Cycle是国内一家生产和销售自行车及和相关配件的制造公司。利用每日商品销售及相关客户信息数据,获取商品销售趋势、地域分布情况以及简单用户画像,进行可视化展示,为运营人员提供自主分析工具。
2)产品介绍
公司主营业务有自行车(主要产品),服装,配件
- 自行车:包括公路自行车、山地自行车、旅游自行车三大类
- 服装:包括帽子、手套、袜子、背心、运动衫等
- 配件:包括头盔、挡泥板、车架、清洁工、瓶子和笼子、车胎等
这里主要分析的是自行车业务。
3、数据来源
1)ods_sales_orders 订单明细表二、python处理数据
1、生成dw_order_by_day表
导入相关模块,连接数据库step 1:读取ods_sales_orders(订单明细表),生成sum_amount_order(销量订单聚合表),求总销售金额/客单价
2、生成dw_amount_diff表
step1:读取dw_order_by_day表3、生成dw_customer_order表
step1:读取最新日期的ods_sales_orders(订单明细表)三、搭建Dashboard
1、可视化看板布置
1)可视化工具:此处使用的可视化图表有切片器、卡片图、KPI图、环形图、子弹图、表格、地图等;
2)筛选器:用于区域、日期等字段信息的筛选;
3)书签:将按钮操作与书签相结合,完成不同页面的导航、跳转功能
2、报表展示
1)主页
- 展示今日销售金额及目标完成情况、订单量、客单价以及同比情况;
- 表格列明详细销售情况
- 环形图展示各个种类产品销售占比情况- 利用地区和城市切片可以动态展现不同城市的销售情况
-
地图和气泡图结合展示各个城市销售情况
2)趋势详情页
- 通过切片器筛选最近一段时间的销售变化趋势
- 动态展示最近15天销售订单量完成情况
- 动态展示最近15天销售金额以及目标完成情况
-
动态展示最近15天客单价变化趋势
3)城市详情页
-
切片筛选区域和城市,动态展示不同地区销售情况
四、报告输出
1、指标搭建
1)目的
- 优化销售策略,调整产品结构,才能保持高速增长,获取更多的收益,占领更多市场份额
- 根据需求分析2019年11月自行车销售情况,为精细化运营提供数据支持
2)数据来源
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表亦同样处理