数据仓库ETL案例学习

Posted eva-yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据仓库ETL案例学习相关的知识,希望对你有一定的参考价值。

来自课程案例学习  

某跨国食品超市的信息管理系统,每天都会记录成千上万条各地连锁超市的销售数据。基于大数据的背景,该公司的管理层决定建立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案例学习的主要内容,如果未能解决你的问题,请参考以下文章

大数据数据仓库-微软BI SSIS ETL 控件与案例

ETL学习整理 PostgreSQL

ETL构建数据仓库五步法

ETL (数据仓库技术)

数据仓库之ETL

实战总结理论之——ETL与数据仓库