科技广场
2007.6
208
入 (Import 、 导出 (Export 以及转换的服务。 DTS 中最常 用的两大工具是DTS向导和 DTS设计器, 因为本文涉及的数 据转换是由多个表取得数据并转换至目的数据库, 因此选择 DTS设计器。
将Northwind数据库中的数据转移到数据仓库的目的数 据库中, 遵循以下步骤:①设置数据源;②设置数据目的地; ③设置转换方式;④将数据转移任务存储为一个包;⑤执行包 进行实际数据转移。
在正式进行数据转换之前, 首先要为Northwind的数据 仓库新建一个数据库Northwind_DW, 这样数据源和数据目的 地分别为数据库Northwind和 Northwind_DW。 然后激活
DTS 设计器并创建转移数据包
NorthwindToNorthwind_DW。 接下来便可以进行事实表和维度表的数据转换任务了, 这个过程是将源数据库中的某些表中的字段抽取出来, 进行 相应的组合和转换, 生成目的数据库中的事实表或维度表, 这些工作都可用SQL语句及VB转换脚本语句来完成。 以事实 表 Sales 为例, 在其转换数据任务属性中, 对应的 SQL 语句 如下:
SELECT e.EmployeeID,p.ProductID,s.SupplierID,c.
CustomerID,o.OrderDate,od.Quantity,od.UnitPrice,od. Discount
FROM Orders o,[Order Details] od,Employees e, Products p,Suppliers s,Customers c
WHERE o.OrderID=od.OrderID AND o.EmployeeID=e. EmployeeID AND o.CustomerID=c.CustomerID
AND
od. ProductID=p.ProductID
AND
p.SupplierID=s.SupplierID 除了以上抽取出的字段外, 事实表Sales还包含一个度 量值字段Total, 是将已抽取出的字段UnitPrice、 Discount、 Quantity进行组合转换而成, 对应的VB转换脚本语句如下 : Function Main(
DTSDestination(\"Total\"=DTSSource(\"UnitPrice\" *D T S S o u r c e (\" Q u a n t i t y \" *(1. 0-D T S S o u r c e (\"Discount\"
Main=DTSTransformStat_OK
End Function
员工维度表Employee数据转换方法同事实表数据转换方 法, 其它维度表数据转换更容易, 方法基本相同, 只是在进 行转换选项时, 不需要选择新建选项。
至此, 数据转换包设计完毕, 保存并执行, 便将数据由 Northwind数据库加载到Northwind_DW中。 最后进行设置表 的主键和外键工作。
3数据集分析
在分析数据时, 用户往往并不是以单一的维度为基准, 而是以多个维度为依据。 譬如在Northwind的数据仓库中包 括了员工、 顾客、 产品、 供货商以及时间等 5个维度, 就会 经常有查询某供应商于某年提供了多少金额的某产品或查询 某员工于某年销售了多少金额的产品给某顾客等这类查询。 正因为用户查询具有使用多重维度的特点, 所以应该将多个 维度集合在一起成为一个单位, 即构成一个数据集。 微软公司在SQL Server 2000上提供了Analysis Ser- vices [5],是数据仓库的解决方案,其主要组件是分析服务
器Analysis Server, 它是执行于 Windows 2000或Windows
NT服务器上的一个服务, 会由数据仓库中抽取信息, 并且生
成数据集 [6]。
激活管理分析服务器的工具Analysis Manager, 创建一
个存储数据集的数据库Northwind_OLAP, 设置数据源为
前面已创建好的数据库Northwind_DW, 然后按以下步骤创建
数据集:
①从数据源中选择事实数据表Sales。
②从事实表中选取字段 Total、 Quantity、 UnitPrice、 Discount作为数据集度量值。
③创建星型架构维度。 从数据源中分别选择与Sales表
呈星型架构的维度表Customer、 Supplier、 Employee、 Time
创建顾客维度、 供货商维度、 员工维度和时间维度, 其中顾
客维度包括Country、 Region、 City和CustomerName四个级
别, 前者为父级别, 后者为子级别; 供货商维度和员工维度
包括的级别分别为SupplierName和Name; 时间维度级别选
择【年,季度,月】 。
④创建雪花架构维度。从数据源中同时选中维度表 Product和Category创建与Sales事实表呈雪花架构的产品
维度, 维度级别包括Category Name和Product Name, 前者
为父级别, 后者为子级别。
创建好所有的维度后, 将数据集命名为CUBE5并存
储处理,即可浏览数据了,如图二所示。
4结束语
在进行数据仓库项目开发过程中, 数据的抽取转换工作
是重点, 直接关系到数据仓库中数据的好坏, 而如何访问数
据仓库中的数据也是用户所关心的问题, 本文以SQL Server
2000中的Northwind数据库为模板, 探讨了一个商用数据仓
库的创建以及对其进行数据集分析的一般过程。 如何对
已有的数据仓库采用适当的算法进行数据挖掘, 为高层领导
提供有用的决策信息, 是笔者下一步要研究的方向。
参考文献
[1]Inmon WH. Building the Data Warehouse[M]. USA:
By Wiley Computer Publishing,John Wiley&Sons,Inc. 1998.
[2]李超, 余昭平.基于最大模式的关联规则挖掘算法研
究[J].微计算机信息,2006, (22:2-3.
[3]罗会兰.数据提取、 转换和装载技术研究[J].计算机
工程与设计,2004, (255:761-765.
[4]郭和伟,孙德宝等.数据仓库实现过程及在线分析
[J].计算机与应用化学,2004, (212:293-298.
[5]沈兆阳. SQL Server 2000 OLAP解决方案:数据仓库
与Analysis Services[M].清华大学出版社,2001.
[6]周冬婉, 周伟等. 企业数据仓库数据模型的建
立[J]. 微机发展,2005,(6.
作者简介
严丽平, 女, 安徽桐城人, 华东交通大学信息工程学院
讲师。
数 据 仓 库 的 构 建 及 其 多 维 数 据 集 分 析