本文是基于实现第一阶段的业务目标后,使用python、数据仓库实现的自主更新可视化看板。
项目目录
- 项目介绍
- 分析思路
- 数据自动化处理过程
- 可视化报表搭建
一、项目介绍
基于已经实现第一阶段的业务需求后,公司希望业务部门能够实现自主分析,从而实现对市场的快速判断,因此,要求数据部门和业务部门沟通需求的自主分析的数据指标,从而实现可视化看板。
二、分析思路
(一)项目操作流程
(二)项目解决思路
三、数据自动化处理过程
(一)聚合生成dw_order_by_day表
从mysql数据库中获取ods_sales_orders订单明细表并按日期分组聚合,得到每日销量和每日销售额。读取日期维度表,与上表合并,得到dw_order_by_day每日环比表。
代码如图所示(部分):
(二)聚合生成dw_order_diff表
因为在上一步中已经得到了dw_order_by_day每日环比表,将当前时间维度和去年同期维度下相同字段进行聚合,在计算销售额,销售量,和客单价的同比。
代码如图所示(部分):
(三)聚合生成update_sum_data表
获取ods_sales_orders订单明细表和ods_customer,并进行连接,按照订单日期/产品名/产品子类/产品类别/所在区域/所在省份/所在城市分组聚合,在获取日期维度表,进行连接,得到sum_customer_order
代码如图所示(部分):
(四)在Linux上做定时部署
把定时更新的任务写到schedule.py上,然后将我们写好的schedule.py文件挂到后台
(1)定时更新dw_order_by_day,dw_order_diff,dw_customer_order表的schedule.py文件,导入schedule 模块实现定时更新,设定时间是早上6:00更新
代码如图所示(部分):
(2)定时任务挂到linux服务器后台,等待更新
nohup python3 schedule_job.py > schedule_job.log 2>&1 &
nohup :不挂断地运行命令
2>&1 将错误输出到终端,这里将输出定向到日志文件
& 放在命令到结尾,表示后台运行
(3)验证schedule程序是否顺利挂在后台
ps aux| grep schedule_job.py
四、可视化报表搭建
(一)总体销售情况展示
(二)最近21天销售趋势图
(三)区域销售详情图
`