OLAP研究及其在现代企业中的应用
近年来,随著信息技术的高速发展,OLAP(联机分析处理)技术逐渐成为人们研究的重点,并且众多OLAP工具产品已经走向市场。在国外,许多大公司纷纷积极参与数据仓库和OLAP系统的开发和研究,在公司内部建立起数据仓库,并且利用OLAP以及其他工具进行决策支持,在实践中取得了很好的效果。在国内,OLAP技术已经引起广大科研技术人员的兴趣,但是企业界还未对OLAP技术给予应有的重视。本文结合烟草公司销告系统的OLAP应用实例,探讨在现代企业中实施OLAP的实用技术。
2 从OLTP到OLAP
过去几十年中,数据库技术特别是OLTP(在线事务处理)发展得比较成熟,它的根本任务就是及时地、安全地将当前事务所产生的记录保存下来。随着时间的推移,历史数据不断堆积,总量不断变大,人们已经不满足于仅仅处理当前数据,怎样将日益堆积的数据进行有效的管理,挖崛其中埋藏的信息宝库成了新的问题。数据仓库、OLAP以及数据挖掘技术相继诞生。OLAP是以数据库或数据仓库为基础的,其最终数据来像与OLTP一样均来自底层数据库系统,但由于二者面向的用户不同,OLTP面对的是操作人员和低层管理人员,OLAP面对的是决策人员和高层管理人员,因而数据的特点与处理也明显不同(见表1)。
3 OLAP在现代企业中的应用
目前企业应用OLAP方案大体上分为两类:一是利用诸如Informix的MetaCube、Oracle的Discover以及Express等OLAP工具创建,二是利用开发工具简单的将分析需求多维化处理。这两种方案各有特色。第一种方案由于采用著名数据库厂商的从数据库到数据仓库管理,从一般分析到OLAP成熟产品,所以能够创建完善的基于数据仓库的DSS系统,特别适用于大型数据仓库,缺点是不灵活,对用户要求较高且由于其英文界面不适合国内用户操作,另外投资也大;第二种方案功能有限,只能进行小型应用,但可根据用户的实际情况定制,比较灵活。下面提供的解决方案有机地结合了两者的优点。
3.1 一个销售系统的结构与工作原理
某省烟草公司梢咨分析系统的数据库结构如图1所示。其中:各分公司的OLTP数据库位于各分公司的PC机上,DBMS为Oracle,主要用于各分公司的日常事务处理包括接收下级子公司的销咨情况,回款等诸多方面;通过ISDN或拨号网络与总公司的OLTP数据库进行数据交换。销售总部OLTP位于总公司的数据服务器上,DBMS为Oracle,主要用于公司销售总部的日常事务处理,包括业绩考核、日常计划的指定以及自身的销售业务等。
随着市场的变化和行业竞争的加剧,迫切需要公司决策人员能够根据销咨信息合理调整销售计划和政策以得到最大的利润回报。仅通过以往的OLTP分析、报小工具操纵销售总部OLTP数据库大量的历史数据已显得力不从心,通过建立OLAP应用能够使决策人员充分利用这些数据作出科学的决策。
3.2 OLAP实施方案
3.2.1 系统设计
考虑到用户想要在原有OLTP基础上构建OLAP应用,主要是用来分析销售情况,所以在选择产品上应该本着适用原则,而不是可以迫求大而全。OLAP引擎选择Microsoft OLAP Server、Micorsoft OLAP Service是Micorsoft SQL Server 7.0附带的一个组件,Microsoft OLAP Server只能提供高端MOLAP产品(如Essbase)的60%-80%的能力,但注册和维护费用要低得多。Microsoft OLAP Server可以处理大公司的部门级需求,也可以处理小型和中型企业的整个组织需求。OLAP部分系统结构如图2所示。 #p#page_title#e#
从图2可以看出,整个OLAP系统分为四部分:一是销售总部OLTP基层数据库,存储全省下级公司上报的梢誉细节数据。二是数据仓库细节数据,这些致据是通过DTS以及专用程序将原始细节数据进行抽取井进行处理,装入到Microeoft SQL Server 7.0创建的OLAP数据库中。三是OLAP服务器是一个经过特殊设计,用于支持和管理多维致据结构的高性能、多用户的数据处理引攀。多维数据结构是将原始数据按维度进行盛理后所得的结果,该结构中的数据项的访问需根据定义该项的维度成员来访问。科用Microsoft OLAP Server创建的多维数据结构称为Cube,该多维数据结构具有良好的性能能够灵活、快速地处理原始数据,并满足对各种查询具有一致的响应速度。四是客户端应用程序;通过OLAP服务器提供的统一的访问接口,灵活地访问多维数据,也可以调用某些数据接口直接从致据库获取数据。该系统利用PivotTables(透视表)服务通过Excel以及VB对Cube进行访问,采用OLAP技术,包括drill技术、导航技术、旋转技术、切片技术和遥历技术等,同时结合各种灵活、用户友好的显示技术,最终将结果以多维的形式呈现给用户。
3.2.2 OLAP数据库设计
OLAP数据库的实现主要有两种方式,多维OLAP(MOLAP)和关系OLAP(ROLAP),多维OLAP利用一个专有的多维数据库来存偏OLAP分析所禽的数据,多维数握库存而言之就是以多维方式组织数据,以多维方式存偏数据。在MOLAP结构中分散在企业内部各OLTP数据库中的经过提取、清洁、转换等步毅后提交给多维数据库。尽管MOLAP具有占用存储空间较小、数据综合、访向速度快的优点,但是数据组织,操作起来比较复杂,所以该系统采用ROLAP方式组织数据。我们采用橄行的星型模式(Star Scheme),星型模式是基于关系型数据库,面向OLAP的一种多维化的数据组织方式。关系数据库将多维结构划分为两类表:一类是事实表,用来存储事实的度量值和各维的码值;另一类是维表,对于每一维来说,至少有一个表用来保存该维的元数据,即维的描述信息。在相关事实表中,这些值会衍生出该维的列。事实表是通过每一维的码值同维表联系在一起的,这种结构称之为“星型模式.。有时,对于内部层次复杂的维,可以用多张表来描述一个维。比如,产品维可以进一步划分为类型表、颜色表、商标表等,这样,在“星”的角上又出现了分支。这种变种的垦型模式被称为“雪片模式”(Snow Flake Scheme)。对于层次复杂、成员较多的维采用多张表来描述,而对于较为简单的维可以用一张表来描述。本系统“雪片摸式”如图3所示。该系统维表由时间维、产品维、客户维、销售商维构成,事实表中存储维码和由各维码确定的销咨数据。其中产品维可以分为产品地区(厂家)、产品名称两个表描述,销售商、客户分别由相应的地区、县市、钥售商(客户)名称三个表描述,时间维由单表描述,各主从表间通过主键连接。
3.2.3 多维立方体的创建和维护
以ROLAP方式建立OLAP效据库后,使用Microsoft OLAP Service在Microsoft OLAP Server上创建多维立方体cube。使用Microsoft OLAP Service还有一个优点,可以以多维的方式对cube进行存储,即在OLAP Server上存偏事实表基本数据和汇总。这样可以提商系统晌应速度。OLAP Server可以进行预汇总,在数据库中存储永久的汇总数据,而不是在创建MD缓冲立方体时任意产生汇总数据,这样可以提高性能效益。
创建的多维立方体只反映当时的数据结构,当用户向OLAP数据库中添加新采集的数据后需要进行更新,仅仅添加事实表数据时界用增量更新以节省时间,当维表增加成员时采用刷新处理,当对维结构进行改变时书进行完全处理。数据的备份可利用Microsoft SQL Server 7.0进行。 #p#page_title#e#
3.2.4 数据的采集和可视化呈现
数据采集是OLAP关性所在,在数据采集实现中必须重视两个问题:一是采集的周期和时机。二是净化、集成数据,生成纯净、统一的企业数据视图。数据采集的初始可以采用DTS服务从OLTP数据库中抽取,维护时采用前端程序。数据的采集包括新维成员的添加和事实数据的抽取,本系统在销咨总部OLTP数据库中设置了临时区,将新的数据暂存,OLAP决策人员在需要时将这些数据提取,并清空临时区以节省资源。填充新数据后OLAP Server中的多维立方体Cube需要进行维护。
直观、多维的数据呈现是OLAP类工具所必不可少的特征之一。在普通的ROLAP解决方案中,用户对致据的多维呈现要求采用标准SQL语句进行解释、组织,事实的提取需要通过对维表和事实表的连接操作完成,因而响应速度较慢,而且对多维请求的解释比较复杂。采用Mioroeoft OLAP Service创建的Cube可以通过OLE DB很方便地连接,并使用客户端程序粗过ADO/MD对象进行访问。用户对Cube的多维访问可以采用MDX语句很容易地进行,MDX语句是专门用于对多维对象进行访间的语言它沿袭了SQL语言的形式并对其进行了扩展。另外用户可以使用Excel辅助分析,对数据进行切片、切块、上钻、下钻、旋转等操作,并可以通过图形、报表的形式直观地呈现。
4 结束语
本文所提出的OLAP解决方案采用了OLAP引擎,并根据用户需要定制数据抽取、分析程序,该方案完全能够满足企业的OLAP要求,由于可以进行二次开发,可以满足用户的特殊要求,并具有灵活、投资小的优点,非常适合国内企业,具有一定的推广价值。