码迷,mamicode.com
首页 > 其他好文 > 详细

数据仓库ETL案例学习(一)

时间:2019-11-16 23:41:19      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:一个   产品   led   包含   数据源   目标   决定   项目   度量   

来自课程案例学习  

某跨国食品超市的信息管理系统,每天都会记录成千上万条各地连锁超市的销售数据。基于大数据的背景,该公司的管理层决定建立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],才可以运行成功

 技术图片技术图片技术图片

 欢迎小伙伴的批评指正~

 

数据仓库ETL案例学习(一)

标签:一个   产品   led   包含   数据源   目标   决定   项目   度量   

原文地址:https://www.cnblogs.com/EVA-YANG/p/11874447.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!