navicat导数据速度_Adventure项目数据分析

9bb7e59fe318b3816a1c6cbeedfbb5cf.png

本文就adventure项目做一个总结,主要记录了,对项目需求分析,需求建模以及实现过程,还有hive SQL,shell脚本和python代码实现自动ETL过程,最后用power bi实现可视化dashboard,具体体现了个人对项目分析的思路和一些想法。

以下是dashboard部分内容展示:

c29bafe569b54a8c5a98e1a7b8d3f334.png

b6084c559ba91e5896ee7cc91af92a4a.png

4be988e75c37d83899f3d867ac974f7c.png

本文目录:

1.业务分析报告制作

  • 业务需求分析
  • pyhton代码实现
  • powerbi分析报告制作

2.数据仓库实现可视化看板

  • 业务需求分析
  • python代码实现
  • 查询优化
  • 自动化ETL和定时任务实现

一,业务分析报告制作

1.1业务需求分析

通过数据库可视化软件navicat观察相关表的字段信息,并制作数据字典便于分析

ac696da8ec4912e0a832e0a503d029a7.png

根据业务实际情况制定分析框架和分析指标,主要体现adventure11月自行车产品的销售表现,具体如下:

21baf09a5e918d527512abf9f0ea998f.png

通过对数据字典和分析框架之间的逻辑梳理,并整理出分析思路具体如下:

7e9bbf9d3d7304f89ea426c190688ec9.png

1.2.pyhton代码实现

分析思路和分析指标已建立,本文用jupyter实现python代码

1.2.1整体销售表现

导入聚合表,筛选出自行车的销售记录

eae23b73d0fbbc540e3c9db8674da731.png

处理缺失值和日期字段,筛选出1至11月份销售记录

14a94f4c138aa734543ea00fce8f3df1.png

汇总1至11月销量和销售额

921ef1c4126f1345c3d7456756bea30e.png

计算1-11月自行车的月销量和月销售额的环比

1b6271284e9f7ada36c52bcde25a4edc.png

将表gather_territory_diff_lyh存储到数据库中

cb08612815e8e2f775e199ae670d33e4.png

1.2.2区域销售表现

计算区域11月销量和销售额环比

c0300fa1f9cd6a59c020046f7e1eb3db.png

计算11月销量TOP10城市的销量和销售额环比

c99d7411a9617e8539b7a6809f73da6b.png

7baf6356880fdd5b993cb91422ee275b.png

1.2.3产品销售表现

1—11月自行车各类别的销量占比情况呈现

15010bfde5dacf470f162b1428680a11.png

在每个类别中,求1—11月各产品型号在类别中的销量占比情况

  • 公路自行车中,产品型号占比

f53287f7af693d6d884c5f262ca1a24a.png

a49132be73a0101cd192289afa0eb63b.png
  • 山地自行车中,产品型号占比

948d44d11297c18d04dcc8a57cd7a911.png
  • 旅游自行车中,产品型号占比

49f89987f120f8bc4c3dd7c7cec9c263.png
  • 存储数据

0da70360bf74fe1724b13e5e38d4b6b4.png

求每个产品型号11月销量环比和1—11月的累计销量

42f6ae55646edee514be9588a829991b.png

1.2.4热销产品销售表现

11月TOP10产品销量榜

c9c7ae5df9ba20c1677cb8a744330f2a.png

11月TOP10销量增速榜(环比)

dba3f9e0ef4b7aa67409b0e31c5013e2.png

1.2.5用户行为分析

导入数据

40130ca9c67f151eda43754787f91006.png

用户年龄分析

连接聚合表和用户信息表,并删除缺失值和得到用户年龄

54e8a1247eef95a33c7faf1fe30388d2.png

年龄分组[30,35,40,45,50,60,65]和['<=29', '30-39', '>=40']

1305063edb61ad7c56499afff49138b1.png

用户性别分析

15f22d276245d6ff9451db465f5175e3.png

1.3powerbi分析报告制作

通过pyhton代码将分析指标所需数据表存储在数据仓库中,然后通过powerbi连接mysql数据库制作可视化报告,报告部分内容如下:

e29790f8f2cada7ee062d6a46a97890e.png

7d131ee49b7ecd5bc589117a9f19f001.png

ee20854db0388fa6227a9b38062b3515.png

db75f2e57aa6bc2c6809ae31582a4a91.png

二,数据仓库实现可视化看板

业务分析报告已整理完成,但因业务需要,需要每天更新可视化看板,因此需要实现自动ETL更新数据仓库数据,从而更新每日Dashboard

2.1需求分析

Dashboard可视化需要如下数据表:

7fd80741b8be8538904c6edb57743f82.png

根据数据字典观察可知上述表生成逻辑如下:

fc4ba620138605dadc5199bb3368201c.png

输入与输出如下:

618eca66a3b1e10ddad1260ab328ad72.png

2.2python代码实现

代码编写思维导图如下:

50b242764d09184319cb730b35f09c93.png

代码附件:

dw_order_diff.py
6.3K
·
百度网盘
order_by_day_test.py
5.2K
·
百度网盘
updata_sum_data_test.py
5.7K
·
百度网盘

2.2查询优化

数据量较大,查询读取存储数据时间较长,因此需要对代码进行优化,优化主要分两方面:

  • 在mysql追加索引优化查询速度
  • 在python读取sql和存储至sql增添多进程

在mysql追加索引优化查询速度

给order_by_day_lyh表增加一个index_date索引,长度为7,将日期列字段前7个字符作为索引,这样查询时,就不用遍历整个数据表

a6cbf77104109954e8ba2d8912dc1438.png

在python读取sql和存储至sql增添多进程

多进程代码思维导图:

7777765a16215bca1c879d62d2387e63.png

多进程代码附件:

insert_data_by_multiprocessing.py
1.9K
·
百度网盘
select_data_by_multiprocessing.py
2.3K
·
百度网盘

2.4自动化ETL和定时任务实现

主要任务:

  • 定时执行命令
  • 能够跳出命令窗口输入 python xxx.py 文件使其运行
  • 将这个文件挂在后台,等时间一到,自动执行

为了实现功能,前两个可以通过python模块库实现:

  • 定时执行模块:import schedule
  • 与命令窗口交互模块: import os 的 os.system()
  • 第三个挂在后台功能则是利用linux系统自带的 & 挂后台。

代码思维导图如下:

6da3aaa8a9552a05fa22295dca1c3d9e.png

34d26b58265659fc3773781401fbb397.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值