前言
本文将讨论DB2 OLAP 服务器和 Essbase 方面的重要实施体验。涵盖OLAP 的数据立方体存贮原理,设计要点到OLAP,但并非是详尽无遗的,并且结合一个具体项目介绍在实施OLAP应用时需要注意的一些情况,也当是笔者从中得到的经验或者教训,希望本文能够对相关技术人员实施OLAP应用有所帮助。本文在参考Essbase联机文档和IBM DB2 OLAP红皮书,再结合自身开发过程写出的。由于自身水平有限,请各位同行能够指出不足之处,欢迎大家都来交流。
本文中的OLAP服务器是指IBM DB2 OLAP Server 版本 7(包含多维存储选项)和 Hyperion Essbase OLAP Server 版本 6.0。
下表 1 列出 IBM DB2 OLAP Server 和 Hyperion Essbase OLAP Server 的版本 Hyperion IBM Essbase Server 5.0 DB2 OLAP Server 1.0 Essbase Server 5.0.2 DB2 OLAP Server 1.1 Essbase Server 6.0 DB2 OLAP Server 7.1 第1章 DB2 OLAP简介 1.1 OLAP简介 联机分析处理(OLAP)的概念最早是由关系数据库之父E.F.Codd于1993年提出的。当时,Codd认为联机事务处理(OLTP)已不能满足终端用户对数据库查询分析的需要,SQL对大数据库进行的简单查询也不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果,而查询的结果并不能满足决策者提出的需求。因此Codd提出了多维数据库和多维分析的概念,即OLAP。
1.2 多维数据库 多维数据库(Multi-Dimesional Database,MDD)可以简单地理解为:将数据存放在一个n维数组中,而不是像关系数据库那样以记录的形式存放。因此它存在大量稀疏矩阵,人们可以通过多维视图来观察数据。多维数据库增加了一个时间维,与关系数据库相比,它的优势在于可以提高数据处理速度,加快反应时间,提高查询效率。
目前有两种MDD 的OLAP产品:基于多维数据库的MOLAP和基于关系数据库的ROLAP。DB2 OLAP Server(Hyperion Essbase OLAP Server)是一种典型的MOLAP。
1.3 DB2 OLAP Server结构 DB2 OLAP Server客户-服务结构支持企业分析应用。
服务器端:所有的OLAP应用组件,包括多维数据库大纲,计算脚本,规则文件和数据库信息都存在服务器端。OLAP Server通常运行在UNIX服务器上。
客户端: DB2 OLAP客户端从服务器上分析和返回数据主要是通过几种方式来实现的:Lotus 1-2-3, Microsoft Excel, 客户应用程序接口和各种专业的前端展现工具(Hyperion Analyzer,BO,Brio,Cognos Powerplay etc.)。
DB2 OLAP提供丰富的API,开发人员可以用VB,VC和C等语言访问OLAP的API实现用户的各种需求,如自动调度,用户权限等任务。
第2章 DB2 OLAP多维数据库的存贮原理 DB2 OLAP 存储结构作为矩阵(或数组)实施数据存储的概念也许是DB2 OLAP 开发人员应该学习的最为重要的概念。对矩阵管理的完全了解包括理解稀疏性的推论概念。也就是说,添加到矩阵中的维越多,矩阵中实际包含值的交点(或单元)所占比例就越小。
将二维数组的商业示例看作是含有“度量”维的三个成员,分别称为销售额、销售成本及利润(销售额减销售成本),按照“时间”(第二个维)每天进行记录,持续一年。随着时间的推移(日复一日),我们通常能够直观地测量销售额和销售成本,并生成利润。此模型会有1,095 个交点(365 天乘以3 个度量- 参见图 1)。“日”和“度量”紧凑迁移的描述十分容易理解。对于给定日期,如果有一个销售额数字,您可能也有销售成本信息,并可因此计算出利润度量。除非有销售信息季节波动剧烈,否则多数时间里都会有销售信息,因此,可能在所有时间内矩阵被“紧凑”填充以进行“度量”。