Adventure 业务分析可视化案例分析

本文是对Adventure Works Cycle业务分析可视化案例分析的总结。

目录如下:

项目背景

项目任务

分析过程

分析报告:Adventure业务分析可视化

一.项目背景

Adventure Works Cycle是国内一家制造公司,该公司生产和销售金属和复合材料自行车在全国各个市场。销售方式主要有两种,前期主要是分销商模式,但是2018年公司实现财政收入目标后,2019就开始通过公司自有网站获取线上商户进一步扩大市场。

二.项目任务

随着线上业务的开展,需要增强公司数据化方面的治理,让前线的业务同学能够实现自主分析从而能实现对市场的快速判断。

业务需求:查看最新的销量,销售额趋势以及自行车的占比,获取当天,前一天,当月,当季,当年的各区域各城市销量销售额,以及同比数据

三.分析过程

要实现用户自主分析,必须具备两点:

(1).用户具有可视化操作页面

(2).数据能自动更新

Power BI可以实现用户的可视化操作,只要把相关的表聚合后展示需要的信息到Power BI上即可。但聚合后的数据是固定的,所以要把聚合表的代码部署到linux服务器上,让系统自动去运行聚合表的代码,更新数据,从而实现自主分析。

整体分析流程如下图所示:

Adventure 业务分析可视化案例分析_第1张图片

准备工作:mysql 数据源,Hive数据库,工具:Sqoop,Power BI   服务器:linux

1.mysql数据源中观察数据

数据库中一共有26张表,根据业务需求,梳理出要使用到的三张表:

ods_sales_orders(订单明细表):时间_地区_产品聚合表——用于从整体、地域和产品维度反映销售概况。

dim_date_df(日期维度表):每日新增用户表——用于形成用户画像。

ods_customer(每日新增用户表):订单明细表——用于用户行为分析。

数据字典含义梳理如下:

Adventure 业务分析可视化案例分析_第2张图片
Adventure 业务分析可视化案例分析_第3张图片
Adventure 业务分析可视化案例分析_第4张图片

2.数据指标分析

指标拆解:

(1)从整体的角度:销量,销售额,平均金额,同比值

(2)从地域的角度:城市,区域

(3)从产品的角度:热销产品,产品占比

(4)时间的角度:今天,昨天,当月,当季,当年

数据源和指标的对应关系梳理如下:

Adventure 业务分析可视化案例分析_第5张图片

3.Sqoop抽取Mysql数据到Hive

Sqoop:SQL-to-Hadoop,Sqoop是连接传统关系型数据库和分布式数据库Hadoop之间的的工具,用于在关系型数据库与Hive等之间进行数据转换。

(1)脚本解释

--hive-import : import工具从RDBMS向Hive 的HDFS导入单独的表

--connect:告诉jdbc,连接mysql的url

--driver: 指定要使用的JDBC驱动程序类

--username: 连接mysql的用户名

--password: 连接mysql的密码

--query : 构建sql语句 执行

--fetch-size n:一次从数据库读取 n 个实例,即n条数据

--hive-table:导入到Hive时要使用的表名

--hive-drop-import-delims: 在导入数据到hive时,去掉数据中的\r\n\013\010这样的字符

--delete-target-dir : 如果目标文件已存在就把它删除

--target-dir:目标HDFS目录

-m 1  ## 迁移过程使用1个map(开启一个线程)

(2)将日期维度表,订单明细表,每日新增用户表中的数据抽取到Hive数据库中

下面将演示如何导入ods_customer表(每日新增用户表),其它两张表同样操作。

Adventure 业务分析可视化案例分析_第6张图片

导入成功后,查看表在位置和数据

Adventure 业务分析可视化案例分析_第7张图片

4.建立数据仓库,做聚合数据处理

聚合流程如下:

Adventure 业务分析可视化案例分析_第8张图片

(1)编写Hive SQL,放到shell脚本中,聚合生成上述图中的dw_order_by_day,dw_amount_diff,dw_customer_order表。

下面展示dw_order_by_day表的聚合过程:

这里使用的是with as 创建一个临时表,后面的查询可以多次使用,简化操作。

Adventure 业务分析可视化案例分析_第9张图片

检查聚合后表的位置和数据:

Adventure 业务分析可视化案例分析_第10张图片

5.Sqoop从Hive导出数据到mysql

(1)导出步骤

- 步骤1:Sqoop与数据库Server通信,获取数据库表的元数据信息;

- 步骤2:并行导入数据:

- 将Hadoop上文件划分成若干个split;

- 每个split由一个Map Task进行数据导入

(2)脚本解释

sqoop export :将数据从Hadoop(如hive等)导入关系型数据库导中

--connect :

--username:数据库账号

--password :密码

--table dw_order_by_day:数据库建好的表 

--export-dir /user/hive/warehouse/ods.db/dw_order_by_day :hive数据库数据路径,这个用show create table ods.dw_order_by_day 查hive表的路径

--columns:抽取的列

--fields-terminated-by '\001' :hive中被导出的文件字段的分隔符

(3)将dw_order_by_day,dw_amount_diff,dw_customer_order抽取回Mysql数据库。

下面展示的是dw_order_by_day的抽取代码,其它两张表同此操作。

Adventure 业务分析可视化案例分析_第11张图片

6.linux上做定时部署

linux的定时任务使用crontab文件来实现

(1)编写shedule.sh文件,按执行顺序添加文件

Adventure 业务分析可视化案例分析_第12张图片

(2)添加定时任务,设定每天早上6点执行

编辑crontab 文件 :vi /etc/crontab

添加定时任务:0 6 * * * /home/frog005/adventure_sunnyxhd/schedule.sh

7.Power Bi展示,部署上线

连接mysql数据源中聚合后的三张表,制作Power BI报表。在Power BI制作部分,要使用到多种图形,例如切片器,卡片图,地图,环形图,柱状图等。尤其切片器的使用,让业务人员自行选择需要查看的区域或产品的相关数据。

四.分析报告

可视化报表链接:Adventure业务分析可视化

将Power BI做成的报表发布到web中,报表基本结构如下:

主页: 基本销售指标情况

(1) 时间维度下的基本指标情况(总销售额、目标达成金额、总订单量,平均交易金额)

(2) 不同地区下的销售情况

(3)产品分类下的销售情况

Adventure 业务分析可视化案例分析_第13张图片

趋势:销售金额,销量与目标达成金额的比较

Adventure 业务分析可视化案例分析_第14张图片

区域:按地区划分的销售金额、目标金额、订单量,用户数

Adventure 业务分析可视化案例分析_第15张图片

你可能感兴趣的:(Adventure 业务分析可视化案例分析)