adventure项目总结

最近刚刚做的adventure项目,接下来把我做项目的过程和步骤展示出来,方便大家学习理解。

以下先展示本次项目的结果:



adventure项目总结_第1张图片

一、项目概述

1.背景介绍

Adventure Works Cycle是国内一家生产和销售自行车及和相关配件的制造公司。利用每日商品销售及相关客户信息数据,获取商品销售趋势、地域分布情况以及简单用户画像,进行可视化展示,为运营人员提供自主分析工具。

公司主营业务有自行车,服装,配件,这里主要分析的是自行车业务。

2.指标情况

从整体的角度:分析2019.1—2019.11自行车整体销售表现 

从地域的角度:分析11月每个区域销售量表现、11月TOP10城市销售量表现 

从产品的角度:分析11月类别产品销售量表现、11月细分产品销售量表现 

热销产品:分析11月TOP10产品销量榜、11月TOP10销量增速榜 

从用户的角度:分析11月用户年龄分布及每个年龄段产品购买喜好、11月男女用作者

3.数据获取来源

1)ods_sales_orders 订单明细表:       

2)ods_customer 每日新增用户表:

3)dim_date_df 日期维度表:


dw_order_by_day       每日环比表   

输出:dw_order_by_day销量订单聚合目标及日期维度表


dw_customer_order    时间地区产品聚合表

输出:每日新增用户表,销售订单表,日期维度表的订单聚合


dw_amount_diff          当日维度表 

输出:订单数量和金额的同期变化

二、python数据处理

1.生成dw_order_by_day表

创建MySQL数据库引擎

读取ods_sales_orders(订单明细表),根据create_date聚合,求总销量/订单量/客单价

adventure项目总结_第2张图片

利用空列表及循环生成对应随机值,与销量订单聚合表合并形成sum_amount_order_goal(销量订单聚合目标表)


adventure项目总结_第3张图片


adventure项目总结_第4张图片

读取dim_date_df日期维度表


adventure项目总结_第5张图片

连接(sum_amount_order_goal销量订单聚合目标表)和(date_info日期维度表), 输出:(dw_order_by_day销量订单聚合目标及日期维度表)


adventure项目总结_第6张图片

2 生成dw_customer_order表

创建MySQL数据库引擎

读取数据ods_sales_orders和ods_customer、dim_date_df



adventure项目总结_第7张图片


adventure项目总结_第8张图片


adventure项目总结_第9张图片

把需要用到的字段用数据聚合提取,并且合并三表,最后输出:dw_customer_order


adventure项目总结_第10张图片

3 生成dw_amount_diff表

创建MySQL数据库引擎

读取数据dw_order_by_day到dw_ods_sales_orders

求取各阶段的总金额和订单数(当天,昨天,当月,当季度,当年)与同期的数据作对比


adventure项目总结_第11张图片



adventure项目总结_第12张图片

最后输出dw_amount_diff

三、使用powerbi来搭建可视化看板

1.使用poweibi连接mysql数据库

获取数据 --- 选择mysql数据库


adventure项目总结_第13张图片

2.可视化报表布置与展示

运用切片器来联动不同地区和城市的展示情况,KPI、卡片图主要展示销售量金额的变化,运用表格、环形图,地图根据不同地区和城市展示

利用书签跳转各阶段的对比展示


adventure项目总结_第14张图片


adventure项目总结_第15张图片

这里就先展示两个阶段的看板,后面几个的展示跟这个差不多


四、 使用Hive和SQL完成ETL过程

1.Sqoop抽取数据到hive

通过shell脚本,在Linux运行,将mysql中的数据转移至hive

adventure项目总结_第16张图片

sqoop_dim_date_df.sh

sqoop_ods_sales_orders.sh、sqoop_ods_customer.sh与上述方式相同

2 hive中数据聚合

shell脚本代码写hivesql语句做聚合,聚合内容主要是根据实际业务需要自主分析一些指标

在shell脚本基本框架:hive -e''hive sql语句''


五、 报告输出

1.指标搭建

1.1目的

如何制定销售策略,调整产品结构,才能保持高速增长,获取更多的收益,占领更多市场份额,是公司最关心的问题。

报告通过对整个公司的自行车销量持续监测和分析,掌握公司自行车销售状况、走势的变化,为客户制订、调整和检查销售策略,完善产品结构提供依据。

1.2数据来源

数据来源与表名,基础表存于Mysql数据库

数据库名:adventure_ods

dw_customer_order 产品销售信息事实表

ods_customer 每天新增客户信息表

dim_date_df 日期表

ods_sales_orders  订单明细表

1.3 指标制定

a.从整体的角度:分析2019.1—2019.11自行车整体销售表现

b.从地域的角度:分析11月每个区域销售量表现、11月TOP10城市销售量表现

c.从产品的角度:分析11月类别产品销售量表现、11月细分产品销售量表现

d.热销产品:分析11月TOP10产品销量榜、11月TOP10销量增速榜

e.从用户的角度:分析11月用户年龄分布及每个年龄段产品购买喜好、11月男女用户比例及产品购买喜好

2. pandas、numpy加工数据

部分代码如下:

从数据库读取源数据:dw_customer_order

查看数据类型

adventure项目总结_第17张图片

增加create_year_month月份字段。按月维度分析时使用

adventure项目总结_第18张图片

筛选产品类别为自行车的数据

自行车整体销售量表现


adventure项目总结_第19张图片

计算order_num环比增长

将环比增长数值添加到overall_sales_performance中

计算sum_amount环比增长

查看数据


adventure项目总结_第20张图片

将数据存入数据库

通过上述数据加工,将存入mysql的数据接入powerbi与Excel,分别绘制图像与表格,通过python把以下5个方面围绕销售表现情况进行处理

a.整体销售表现

b.地域销售表现

c.产品销售表现

d.热品销售分析

e.用户行文分析

5个方面,完成线上自行车业务分析报告


adventure项目总结_第21张图片
adventure项目总结_第22张图片


你可能感兴趣的:(adventure项目总结)