项目背景:关于adventure Works Cycles的公司信息
Adventure Works Cycles是AdventureWorks样本数据库所虚构的公司,这是一家大型跨国制造公司。该公司生产和销售金属和复合材料自行车到北美,欧洲和亚洲的商业市场。虽然其基地业务位于华盛顿州博塞尔,拥有290名员工,但几个区域销售团队遍布整个市场。 2000年,Adventure Works Cycles收购了一家位于墨西哥的小型制造工厂Importadores Neptuno。Importadores Neptuno为Adventure Works Cycles产品系列制造了几个关键子组件。这些子组件被运送到Bothell位置进行最终产品组装。2001年,Importadores Neptuno成为旅游自行车产品集团的唯一制造商和分销商。 在成功实现财政年度之后,Adventure Works Cycles希望通过下面三种方式扩大销售额,第一销售目标定位到最佳客户、第二通过外部网站扩展适用的产品、第三通过降低生产成本来降低销售成本其中关于客户类型、产品介绍、采购和供应商这三个方面来做一个简单的介绍客户类型Adventure Works Cycle这家公司的客户主要有两种:个体:这些客户购买商品是通过网上零售店铺商店。 这些是从Adventure Works Cycles销售代表处购买转售产品的零售店或批发店。产品介绍这家公司主要有下面四个产品线:Adventure Works Cycles 生产的自行车自行车部件,例如车轮,踏板或制动组件从供应商处购买的自行车服装,用于转售给Adventure Works Cycles的客户。从供应商处购买的自行车配件,用于转售给Adventure Works Cycles客户。采购和供应商方面在Adventure Works Cycles,采购部门购买用于制造Adventure Works Cycles自行车的原材料和零件。 Adventure Works Cycles还购买转售产品,如自行车服装和自行车附加装置,如水瓶和水泵。
项目数据描述:数据来源于adventure Works Cycles公司的的样本数据库,包括了公司4大应用场景的数据:Sales、Finance、Product、Manufacture
项目流程:
1.导入数据,转换数据格式,进行预处理,清洗,执行shell脚本导入到Hive数据库;
2.探索数据集并罗列分析指标;
3.提取数据并建立销售事实表,汇总数据建立数据仓库(Sales主题),每日定时任务更新数据;
4.PowerBI连接Hive导入销售事实表和维度表,建立各指标可视化图表展示并发布到web;
具体需求操作:
1.首先用Pycharm导入原数据集,原数据格式为UTF-16,这里把它转换成UTF-8,紧接着进行分隔符转换;项目文件中有一个txt文件包含所有数据的表名及表字段,这里我用了正则把每一个表名和表的字段名提取出来,然后创建一个建表脚本,把刚才提取到的表名和字段名写在脚本里面,编写建表语句,接着创建一个插入数据脚本,把每个表中的数据插入到刚刚创建的对应表格中,两个脚本创建完之后,把代码放到linux服务器上,依次执行两个脚本,导入到Hive数据库中;
2.数据处理及导入完成了,紧接着要进行数据探索;
表主要分为事实表(Fact开头的)和 维度表(Dim开头的),两种表通过主键连接,表的设计结构为星型模型;
通过对每个数据表格的探索分析,这里我罗列出5个指标:
1).今天、昨天以及最近一周、一个月、一个季度、一年每个国家的产品销售情况以及销售额完成率;
2).每个洲、每个城市的销售额情况(按地理纬度展示);
3).各年、季度、月、周的产品子类别销售趋势(期望销售额和实际销售额、期望订单量和实际订单量);
4).每个大洲、每个国家的产品销售额、订单量以及利润情况;
5).价值客户:客户订购金额top20、客户订购数量top20、客户年收入以及各年龄段订购情况;
3.建立数据仓库汇总层:
数据仓库设计分为两层,一个是 ODS 基础层,一个是 DM 汇总层 。基础层存放的是基础数据既我们导入的数据,汇总层存放的则是我根据基础层加工生成的数据;
这里我新生成了两个事实表:fact_time、fact_internet,一个是按订购时间、销售区域主键进行分组,另一个是按订购时间、产品子类主键进行了分组。新增的字段有年份、季度、月份、周(由于原数据中只有订购日期,所以要自己从中取出年、季度、月以及周生成新的字段)、期望销售额、期望订单数量、客单价、平均成本、平均税费以及平均运费;把这两个SQL写入一个脚本中,使用crontab命令每天定时执行脚本,作用就是每天模拟产生销售数据插入到ods基础层,然后更新汇总层的数据;
4.PowerBI展示数据:
首先打开PowerBI连接Hive导入数据,然后开始制作报表,制作前要把表和表之间关联建立好;这里我一共制作了8页报表,使用书签实现页面之间的跳转;
第一页展示每个国家今天、昨天、最近一周、一个月、季度、以及最近一年的销售额排名前5产品销售情况以图表展现,展示销售额完成率,一卡片形式展示客单价、产品成品、平均税费、平均运费等;
第二页按地理维度展示每个国家每个地区的销售情况(以圆圈大小形式展现);
后四页展示产品子类别销售趋势(周、月、季度、年)以及产品子类别销售额所占百分比;
第七页展示每个国家的销售趋势及利润情况(周、月、季度);
最后一页则展示价值客户,客户订购次数top20、客户订购金额top20、客户年收入以及各年龄段的订购情况;
报表完成之后最后发布到web;
项目展示链接:
https://app.powerbi.com/view?r=eyJrIjoiMTc0Y2ViNjMtY2JkMC00YjViLTg3OGMtMTdlN2QwYjNiZmExIiwidCI6IjYwM2I2OTczLWY5NzgtNDEwYS1iNjAwLTM1OTlmOGI0NWFlZiJ9
项目架构:EXCEL , Python , SQL , shell , Hive , treesoft , PowerBI,阿里云服务器;
网友评论