来自课程案例学习  

某跨国食品超市的信息管理系统,每天都会记录成千上万条各地连锁超市的销售数据。基于大数据的背景,该公司的管理层决定建立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.设置每周六晚24时自动执行装载新业务数据

要把所有者改为[sa],才可以运行成功

数据仓库ETL案例学习(一)的更多相关文章

  1. 数据仓库ETL案例学习(二)

    来自案例学习 数据仓库经过ETL成功创建之后,就可以对数据仓库进行多维分析任务. 任务主要分为: 1.设置数据源,并添加分析时所需表到数据视图. 2.创建并设置维度. 3.设置时间维. 4.设置度量属 ...

  2. Storm入门2-单词计数案例学习

     [本篇文章主要是通过一个单词计数的案例学习,来加深对storm的基本概念的理解以及基本的开发流程和如何提交并运行一个拓扑] 单词计数拓扑WordCountTopology实现的基本功能就是不停地读入 ...

  3. angular的splitter案例学习

    angular的splitter案例学习,都有注释了,作为自己的备忘. <!DOCTYPE html> <html ng-app="APP"> <he ...

  4. 8.3 ContosoMVCWeb官方案例学习

    1. 分页案例学习 2. 排序搜索案例学习 3.使用Configuration.cs中的Seed方法 在数据库迁移过程中,使用update-database,会运行seed方法.seed方法能够将初始 ...

  5. sql server 内置ETL工具学习(一) BCP篇

    sql server 内置ETL工具学习 常用的导入方式:bcp, BULK INSERT,OPENROWSET和 SSIS. BCP BCP全称BULK COPY PROGRAM 有以下特点: 命令 ...

  6. 通过 Autostereograms 案例学习 OpenGL 和 OpenCL 的互操作性

    引言 在过去的十年里, GPU (图形处理单元)已经从特殊硬件(特供)转变成能够在数值计算领域开辟新篇章的高性能计算机设备. 很多算法能够使用拥有巨大的处理能力的GPU来快速运行和处理大数据量.即使在 ...

  7. GIS案例学习笔记-三维生成和可视化表达

    GIS案例学习笔记-三维生成和可视化表达 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:针对栅格或者矢量数值型数据,进行三维可视化表达 操作时间:15分钟 案 ...

  8. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  9. 面图层拓扑检查和错误自动修改—ArcGIS案例学习笔记

    面图层拓扑检查和错误自动修改-ArcGIS案例学习笔记 联系方式:谢老师,135_4855_4328,xiexiaokui#139.com 数据源: gis_ex10\ex01\parcel.shp, ...

随机推荐

  1. Mac上Charles抓包iOS的https请求

    介绍一款抓包工具,一般我在windows下使用Fiddler抓包,Fiddler使用教程这里就不讲了,重点介绍使用mac时的抓包工具----Charles. 进入官网 :Charles官网地址官网下载 ...

  2. GUI tkinter (pack、grid、place)布局篇

    """1.其实我们已经接触过 tkinter 的一种布局,就是 pack 布 局,它非常简单,我们不用做过多的设置,直接使用一个 pack 函数就可以了.2.grid 布 ...

  3. 为什么要实现 IDisposable 接口?

    一.背景 最近在精读 <CLR Via C#>和 <Effective C#> 的时候,发现的一个问题点.一般来说,我们实现 IDisposable 接口,是为了释放托管资源和 ...

  4. MYSQL事件隔离级别以及复读,幻读,脏读的理解

    一.mysql事件隔离级别 1未提交读(READUNCOMMITTED) 另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)( 隔离级别最低,并发性能高 ) 2 ...

  5. PHP 数组转json格式,key的保存问题

    <?php $arr = [ 2, 3, ]; echo print_r($arr,true); echo json_encode($arr); echo "\n\n"; $ ...

  6. tinyxml2

    网上下载tinyxml2:tinyxml2.h和tinyxml2.cpp 加载xml XMLDocument doc;   doc.LoadFile("test.xml");   ...

  7. 推荐几个IT交流社区

    博客园,csdn,掘金,StackOverflow(境外),v2ex,开源中国,简书,头条

  8. 2.Linux Bash认识

    虚拟机快照操作 1.什么是Bash shell? 它就是命令解释器,将用户输入的指令翻译给内核程序,内核处理完成之后将结果返回给Bash 2.Bash shell的用途? 几乎能完成所有的操作: 文件 ...

  9. javascript学习 first-day

    1.javascript是一种客户端语言,设计它的目的是在用户的机器上而不是服务器上执行任务. 1.1 javascript不允许写服务器机器上的语言:   1.2 Javascript不能关闭不是由 ...

  10. 基准测试了 ArrayList 和 LinkedList ,发现我们一直用 ArrayList 也是没什么问题的

    ArrayList 应该是 Java 中最常用的集合类型了,以至于我们说到集合就会自然而然的想到 ArrayList.很多同学都没有用过除了 ArrayList 之外的其他集合,甚至于都已经忘了除了 ...