数据仓库的构建和ETL课程设计Word格式文档下载.doc
- 文档编号:6981452
- 上传时间:2023-05-07
- 格式:DOC
- 页数:19
- 大小:1.16MB
数据仓库的构建和ETL课程设计Word格式文档下载.doc
《数据仓库的构建和ETL课程设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《数据仓库的构建和ETL课程设计Word格式文档下载.doc(19页珍藏版)》请在冰点文库上搜索。
具体的分析需求是:
l分析某商品在某地区的销售情况
l分析某商品在某季度的销售情况
l分析某年销售多少金额的产品给顾客
l分析某员工的销售业绩
任务:
确定主题域、确定系统(或主题)的边界。
设计数据模型(星型模型)的事实表和维表。
实验步骤一、主题需求分析:
主题域:
订单主题,商品主题,员工主题;
订单相关边界:
Orders,OrderDetails,Employees;
商品相关边界:
Products,OrderDetails;
员工相关边界:
Employees,Orders;
实验步骤二、构建数据模型以及相应的事实表和维度表:
1.原始关系图:
2.去除不需要的表和与需求分析无关的字段:
5.根据信息分析包以及表间关系图设计具体维度表和事实表:
Orders事实表结构以及主键字段:
字段名称
数据类型
功能描述
原表名
原字段
EmployeeID
Int
员工号码
Employees
ProductID
产品号码
Products
CustomerID
nchar
顾客号码
Customers
OrderDate
datetime
订购日期
Orders
UnitPrice
money
产品单价
OrderDetails
Total
单项总价
无
Quantity*UnitPrice*Discount
Quantity
smallint
订购数量
Discount
real
折扣
主键字段:
EmployeeID,ProductID,CustomerID,OrderDate
Employee员工维度表结构以及主键字段:
FirstName
nvarchar
员工名
LastName
员工姓
主键字段:
Product产品维度表结构以及主键字段:
功能描述
ProductName
产品名称
单价
Customer顾客维度表结构以及主键字段:
功能描述
顾客号码
ContactName
顾客姓名
Address
大致地区
City+Region+Country
Time时间维度表结构以及主键字段:
日期
Year
年
OrderDate拆分
Quarter
季度
OrderDate拆分运算
Month
月
Region地区维表结构
大致地区
City
城市
Address拆分
Country
国家
Region
地区
6.下图显示了Northwind数据库的星型雪花架构结构图:
Employees维表
Orders事实表
Products维表
employeeID
Productname
orderDate
Customers维表
实验步骤三、创建数据仓库并抽取转换导入数据:
1.首先打开SQLServerBusinessIntelligenceDevelopmentStudio,创建一个新的SQLServerIntegrationServices项目,并取名为northwind
2.点击确定后生成以下界面。
3.接下来在菜单栏中点击[项目]选择SSIS导入和导出向导,在弹出来的窗口里选择SQLNativeClient10.0作为数据源,数据库下拉选择已装好的Northwind数据库,点击下一步。
4.进入数据目标的操作界面,这里需要新建一个数据仓库,以后数据经过ETL过程后,数据存放到这个数据仓库中。
5.选择数据的复制方式,如下图所示,有两种方式,一种是直接将表复制过去,这种方式不是很灵活,对多表连接存在一定的局限性。
这里采用的第二种方法。
6.接下来输入SQL语句,目前进行提取和转换的是事实表orders,sql语句必须写正确,要不然会影响后面的导入数据。
点击分析可以查看是否有误,没有的话即可进入下一步。
7.接下来可以编辑表之间的映射关系。
当时我想把表名改成其他更形象具体的名字,可是不知道为什么,如果把【查询】改了之后,后面的数据加载就会有问题。
这也是一个有待解决的问题。
8.点击完成后即可以完成本次表格的导入。
9接下来如下图箭头所示,准备sql任务以结束,进入数据流阶段。
按照选择屏幕左边的工具箱,拖出来数据流源的OLEDB源和数据流目标的OLEDB目标两个元件到界面上。
10.右击OLEDB源选择编辑,OLEDB连接管理器那一定要看清楚是对什么进行的编辑,如果是源,就要选source..。
然后再对目标进行编辑,需要新建一个表来进行映射。
11.直到所有的与事实表相关的维表全部编辑完,右击右侧的你刚刚生成的包,设为启动项,再运行程序。
12.调试成功的话所有的元件底色都会变成绿色,如图所示:
13.此时回到NorthDW数据仓库中可以发现,全部的表已成功导入完毕,接下来回到数据库系统中给所生成的各表手动建立主键约束以及关系设置,全部操作完成之后本次数据仓库抽取-转换-导入数据宣告完成。
Product维表
Employee维表
Customer维表
实验步骤四、导出指定内容数据至Excel表格:
1.执行事实表Sales的数据导出至excel操作,首先右键单击NorthwindDW数据仓库,在弹出的菜单下依次点击任务->
导出数据。
2.接着在需要复制的数据源处选择SQLNativeClient10.0,数据库选择NorthDW,点击下一步。
3.选择目标为MicrosoftExcel,自行设置文件存放路径,Excel版本推荐选择97-2005,然后点击下一步,选择编写查询以指定要传输的数据。
4.接着使用SQL语句写出想要导出来的表以及相应的内容即可。
本次目标是导出Sales事实表的前100行
5.点击下一步后即可生成对应的Excel文件,导出任务成功,事实表前100个记录。
6.
实验结果:
1.确定主题域、确定系统(或主题)的边界。
完成了NorthDW的星型雪花结构设计,确定全部维表和事实表。
2.设计、建立创建数据仓库NorthDW。
3.将业务数据库Northwind的数据经过ETL导入(或加载)到数据仓库NorthDW。
4.将数据仓库NorthDW事实表的前100个记录导出到Excel中。
实验问题和总结:
本次实验花了我很多的心思和心血,主要是觉得自己基础太薄弱。
实验的最终结果由于时间关系跟自己最初想做的不太一样。
主要是在开始花掉了太多的时间,但是整个流程自己还是了解得挺好了,所以说做出一个更好的东西出来也只是时间问题。
在做的过程中,遇到了很多小问题。
1.创建数据仓库表的时候,到底是从原有的数据库中复制还是用sql语句创建复制。
刚开始我是用的sql语句复制,当时就因为一个小小的圆点问题耽搁了很多时间,没有解决出来,就尝试用原有数据库中的表复制,但是问题就来了,多个表连接再映射没法做,最后还是通过sql语句实现的。
2.表映射完后,对数据的加载也出现了问题。
刚开始老不成功,最后发现时表重复的原因,因为自己反复新建了很多个项目和相同的表,只要把书库仓库中的同名表删掉就可以加载了。
导出数据的时候也出现了问题,后来发现原来我的表名和关键字重复了,只需要将数据仓库的order表重新命名就好了。
3.
4.生成数据仓库表的关系图的时候,由于两张表的customerID数据类型不同,则不能添加主外键关系,本来想直接在数据库里改的,但是不允许修改,就只能借助数据转换工具,但是数据转换现在还没有研究成功。
5.其实还想做更多的任务,比如字段的拼接,由于时间关系这次没有做,但是下来会花时间来做做。
遇到的问题肯定不止这一点点,但都是些很小的问题,通过自己的研究和同学的帮助最终做出一个勉强的东西,但是下来我会接着研究的,因为通过学习,感觉数据仓库还是挺有趣的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据仓库 构建 ETL 课程设计