来自课程案例学习
某跨国食品超市的信息管理系统,每天都会记录成千上万条各地连锁超市的销售数据。基于大数据的背景,该公司的管理层决定建立FoodMart数据仓库,期望能从庞大的数据中挖掘出有商业价值的信息,来进一步帮助管理层进行决策。
设计一个销售数据仓库。要求:
1、至少4个维度,每个维度至少3个属性,尽量包含维层。
2、至少1个事实表。
3、数据源能获取(设计的维度和度量字段应该在数据源中直接或间接得到)。
* 以下使用SQL Server Integration Services (SSIS)
(一)设计数据仓库概念模型,设计如下:
* 可以根据自己的想法设计概念模型,可以是雪花型,可以是星型
(二)数据仓库数据源、数据视图、维度表装载
1.建立一个项目
2.将数据集导入sql server(本文将access数据库先转到sql server,再在SSIS里使用,也可以直接在SSIS里使用Access驱动)
3.建立与sql server的连接
4.依次装载数据产品维、顾客维、日期维、连锁店维、促销维。
产品维中涉及两个表product、product_class,根据生成查询获得了想要的数据
目标编辑器选择新建表来存入数据仓库。
同理装载商品维
同理装载促销维
装载客户维
同理装载时间维
这里需要将时间字符串进行分割,使用派生列和日期函数,分别建立年、月、日(ps:这里不需要手动建立时间维,数据仓库提供了建立时间维的模板,这里后面会提到)
5.装载事实表
这里需要对汇率进行转换,将saledetail表和currency分别处理(查找、派生、排序等)后通过合并转换的内连接,使得汇率与交易的地区相对应,再加派生列,计算所得的利润。具体的细节如下:
1) 需要将currency的地区和日期与saledetail地区与日期做处理,才能够相对应
2)两边的数据进行内连接
3)通过派生列计算利润
4)装载数据成功,共计251395行
6.结果如下:
在SQL数据库里可以查看装载好的数据仓库
7.在Sql数据库中设置每周六晚24时自动执行装载新业务数据
要把所有者改为[sa],才可以运行成功
欢迎小伙伴的批评指正~