我在数据存储系列 的第一部分中提到数据仓库中数据存储的结构与传统的在线事务处理系统(OLTP)完全不同其原因在于OLTP 系统拥有许多用户通常在给定会话中处理不同的数据对象而在线分析处理系统(OLAP)用户较少但通常引入大量的数据因此从设计角度来看创建一种能让相关数据存入物理上相近空间的结构是非常重要的以至于能用最少的读取次数将其取出
此类存储的理想结构应当是星型模式用多维数据集实现在这样的结构中表格并非用关系数据库系统(RDBMS)中的关系模式关联而是通过一个中央键表以定义了数据从逻辑相关的表中搜集的维数为了达到此目的数据必须被非常规化在这种组织方法中中央表会产生冗余经验规律表明在配置 OLTP 数据库中需要做的一切正好与应在 OLAP 数据库中需要做的相反以下讲述的是其在 Microsoft SQL Server 中的实现方法
装载 搜索 MOLAP 数据
MOLAP 的意思是多维 (Multidimemsional) OLAP这不过是多维分析数据库 (analytical cube database) 的另一种说法SQL Server 有一套名为 Analysis Services 的工具实现了多维分析数据库的构建同时提供了管理工具与用户访问软件这套工具原先是为 SQL Server 的 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 实现 OLAP 的有利性在于当创建多维数据集时同时创建了一个与数据集匹配的可持续访问的对象因此你可以通过 Analysis Manager 的 Browse Data 选项浏览多维集或者查询数据库获得大批量的数据然后就可以通过对维度的拖放操作建立需要分析的任何数据体
这是高效率的代表用优化过的结构存储与获取数据而该结构创建了对分析过程最有用数据的视图表格的无规律相关降到了最小数据在物理空间中顺序存储读取次数也最少化了这对 IT 顾问与他们的客户来说都是有用而高效的选择
其他平台
如果在使用一个基于 ERP 系统建立的数据仓库如 SAP R/ 或 Oracle你会发现在构建工具方面会有所不同但基本概念与结构都是一样的仔细斟酌这些系统在您环境中的表现将会使您的规划更加高效灵活