我在数据存储系列 的第一部分中提到,数据仓库中数据存储的结构与传统的在线事务处理系统(OLTP)完全不同。其原因在于,OLTP 系统拥有许多用户,通常在给定会话中处理不同的数据对象;而在线分析处理系统(OLAP)用户较少,但通常引入大量的数据。因此,从设计角度来看,创建一种能让相关数据存入物理上相近空间的结构是非常重要的,以至于能用最少的读取次数将其取出。
此类存储的理想结构应当是星型模式,用多维数据集实现。在这样的结构中,表格并非用关系数据库系统(RDBMS)中的关系模式关联,而是通过一个中央键表,以定义了数据从逻辑相关的表中搜集的维数。为了达到此目的,数据必须被非常规化。在这种组织方法中,中央表会产生冗余。经验规律表明,在配置 OLTP 数据库中需要做的一切,正好与应在 OLAP 数据库中需要做的相反。以下讲述的是其在 Microsoft SQL Server 2000 中的实现方法。
装载 搜索 MOLAP 数据
MOLAP 的意思是多维 (Multidimemsional) OLAP。这不过是多维分析数据库 (analytical cube database) 的另一种说法。SQL Server 2000 有一套名为 Analysis Services 的工具,实现了多维分析数据库的构建,同时提供了管理工具与用户访问软件。这套工具原先是为 SQL Server 7.0 的 OLAP 服务开发的,对 OLAP 和数据挖掘同样适用。
第一步应当是访问 Analysis Manager ,在开始 | 程序 | Microsoft SQL Server | Analysis Service 中。你会看到程序的左栏显示了所有有效的资源,右栏显示详细信息(在安装 Analysis Service 时会创立初始 ODBC 数据源名称 (DSN))。可以在控制面板 | 管理工具 | 数据源中对其进行管理。在系统 DNS 选项卡中列出了有效的数据库。在此屏幕中可以添加或者删除数据源。
数据源,为常规事务处理系统(通常为收集的数据,或在线历史表)中的数据表,储存着即将迁移指数据仓库的信息。你将利用这些数据源为数据仓库提供初始数据,如需要也会定期使用它们将数据添加至数据仓库。
当添加或移除适当的数据源之后,你已经为在 Analysis Manager 中创建 OLAP 数据库做好了准备。回到列示分析数据库服务器名字的左边窗格。在其中点击鼠标右键,选择 New Database,添加名字与描述。当然,目前数据库是空的,还没有数据结构。现在你可以为数据库添加数据,如上述的多维形式的数据表:在左窗格刚建立的数据库下方的 Cube 上点击右键,选择 New Cube,就会出现一个向导和一个编辑器。选择向导并按照它的提示进行。你会被指引选择数据源,包括设置 Data Link 属性 (提供了一系列 Microsoft 的选项),以及建立一个到数据库服务器的连接。
现在,向导将会让你定义一个“事实”表,或者叫做上下文关联序列,指定多维集的深度和方向。确定了这些,就做好了定义多维集维度的准备了。
此向导现在将协助你定义实际表的列数,多维集的维数 (通过 New Dimension 按钮打开嵌套的维度向导),以及模式选择。
维度向导将使用你所指定的数据表(以及嵌套字段)协助你继续多维数据集的构建。然后,你可以指定关键列。 最后,维度向导会给你一个存储模式的选择。请选择 Store as multidimensional OLAP (MOLAP)。当你完成此向导后,将会回到数据集向导并结束其构建过程。在 Storage Design Wizard (存储设计向导)――允许你优化数据存储以提高性能的向导中也可以使用它。其后,在 Analysis Manager 的左窗格树形目录中选择 Cube Roles 项,为多维集创建安全特性。
重述
用 SQL Server 2000 实现 OLAP 的有利性在于,当创建多维数据集时同时创建了一个与数据集匹配的可持续访问的对象。因此你可以通过 Analysis Manager 的 Browse Data 选项浏览多维集,或者查询数据库获得大批量的数据。然后,就可以通过对维度的拖放操作建立需要分析的任何数据体。
这是高效率的代表:用优化过的结构存储与获取数据,而该结构创建了对分析过程最有用数据的视图。表格的无规律相关降到了最小,数据在物理空间中顺序存储,读取次数也最少化了。这对 IT 顾问与他们的客户来说,都是有用而高效的选择。
其他平台
如果在使用一个基于 ERP 系统建立的数据仓库,如 SAP R/3 或 Oracle,你会发现,在构建工具方面会有所不同,但基本概念与结构都是一样的。仔细斟酌这些系统在您环境中的表现,将会使您的规划更加高效、灵活。