《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 运用Oracle BI Beans开发企业OLAP系统
运用Oracle BI Beans开发企业OLAP系统
陆剑峰 张 浩
上海同济大学CIMS研究中心(200092)
摘要: 在介绍Oracle OLAP和BI Beans体系结构的基础上,结合一个决策支持系统的实例,论述了利用BI Beans开发企业OLAP应用系统的方法和基本过程。
关键词: 决策支持系统
Abstract:
Key words :

摘   要: 在介绍Oracle OLAP和BI Beans体系结构的基础上,结合一个决策支持系统的实例,论述了利用BI Beans开发企业OLAP应用系统的方法和基本过程。
关键词: 联机分析处理系统  商务智能组件  Oracle BI Beans  决策支持系统

   随着信息技术的发展和企业信息化的不断推进,许多企业建立了自己的信息系统。大部分信息系统是建立在传统数据库系统上的事务系统,一般称为联机事务处理系统(OLTP)。OLTP用来处理企业相关事务信息,例如:生产记录、定货记录、销售记录等。而在企业管理层的决策中,需要的是对这些事务系统的数据进行统计、加工后的分析。例如,对一个时期销售情况的统计分析和去年同一时期进行比较,寻找最热销的产品等。这就需要建立联机分析处理系统(OLAP)。
  联机分析处理的概念最早是由关系数据库之父E.F.Codd于1993年提出的。随着传统的关系数据库应用系统的不断扩大以及数据量的增多,利用SQL对大数据库进行简单查询已不能满足用户分析的需求。用户的决策分析需要对关系数据库进行大量计算才能得到结果。因此Codd提出了多维数据库和多维分析的概念,即OLAP。
  和OLTP相比较,OLAP有其自身的特点:
  (1)OLAP一般是面向“知识工人”的,用于数据分析;
  (2)OLAP一般涉及历史数据,是对历史数据的汇总和聚集基础上的分析;
  (3)OLAP不但涉及本部门的数据,还会涉及企业或组织外部的相关数据;
  (4)OLAP一般是只读访问的,和OLTP不同,它的访问可能是无计划的,而一次访问可能涉及一个复杂耗时的查询;
  (5)OLAP一般基于多维的数据仓库进行。
  随着企业对OLAP系统的需求不断增大,OLAP应用系统的开发已成为目前信息系统开发的重点和热点。OLAP应用系统应该能提供给用户一个支持多维数据立方的图形化界面,能让用户针对数据立方进行各类分析活动。
  各大数据库管理系统软件提供商陆续提供了基于自己数据库管理系统的OLAP服务软件。本文将基于Oracle公司的OLAP产品,介绍其基本体系结构以及利用Oracle 的BI Beans开发OLAP应用系统的基本方法和过程,并且以某石油企业的决策支持系统的开发为背景提供一个开发实例。
1  Oracle OLAP体系结构以及开发工具
  作为一个重要的关系型数据库软件提供商,Oracle公司的OLAP产品是基于其数据库系统9i的。Oracle公司的9i数据库系统包含了OLAP、数据仓库、数据挖掘等多个服务,提供了一个集成的管理平台和服务平台。
  在数据仓库中,星形模式是建立高性能查询数据结构最为普遍的方法。它的逻辑模式不同于关系型数据库的关系模式,而是使用事实表和维表来表示多维数据。由于数据的多维性,一个事实表和多个维表相关联,类似于星型,因此,这种逻辑模式称作星型模式。星形模式有一个变体叫雪花模式,它实际上是一个具有规范化维表的星形模式。
  Oracle为OLAP应用系统的开发提供了二个层次的工具。一个是Java OLAP API,它提供了对OLAP所有功能最底层的操作支持,具有很强的功能和很好的柔性。另一个是商务智能组件BI Beans(Business Intelligence Beans)。通过BI Beans,开发人员能够快速地开发出OLAP应用程序。和OLAP API相类似,BI Beans也是基于Java平台的,但具有很好的封装,它提供了一般OLAP应用系统常用的功能,其层次结构如图1所示。

  BI Beans分成表示Bean、OLAP Bean和目录服务的三大类。表示Bean分成表(Table)、交叉表(Crosstab)和图(Graph)三个类别。表示Bean用来向用户提供OLAP查询结果,可以用来表示多维的数据立方,可以进行上卷、下钻、旋转等操作。对于一些关键数据,可以用不同的颜色来着重显示。此外,还提供了二维、三维的柱装、条形、点、饼图等形式,形象化地展示数据。
  表示层Bean可以分成Java客户端和Web端二种形式,分别对应于客户/服务器应用(C/S)和浏览器/服务器应用(B/S)二种软件结构。
  OLAP Bean用来建立用户查询感兴趣的查询数据(Query)。通过计算构建器,用户可以自定义对于事实数据的计算方式,用来分析数据。例如,对销售数据的移动平均计算、最大最小计算、百分比计算等。OLAP Bean还包括对OLAP服务器连接的支持。
  目录服务类BI Beans是对用户自己建立的查询立方的持久化管理。Oracle为查询结果提供BI Bean目录(BI Bean Catalog)服务。用户自己定义的查询结果可以存放在服务器的BI Bean目录下。Oracle BI Bean目录是存放在Oracle数据库中的,可以为所有能访问数据库的人员共享。通过权限设置,可以限定查询被访问的人的范围。
2  用BI Beans开发OLAP应用
  由于BI Beans很好地封装了数据的显示和管理功能,因此,利用BI Beans能快速地开发出OLAP应用而不涉及OLAP底层的细节。图2是一个典型的利用BI Beans开发的OLAP应用系统的结构。
在图2中,BI目录(BI Catalog)用来存放用户查询,实际是存在于Oracle 9i数据库中。在数据库中,用户的查询以XML形式存放。

  用户的界面可以分成二种。一种是基于Java的应用程序,也就是所谓的胖客户应用。该应用是基于客户/服务器(C/S)模式的。另一种是基于JSP的BI应用,是瘦客户应用,基于浏览器/服务器(B/S)模式。基于JSP应用客户端只需要一个浏览器即可。
  用户的查询可以以交叉表(Cross Table)、图形(Graph)及表格(Table)的形式显示。在JSP应用中,BI Beans提供的用户图形化界面是PNG格式的图片而不是Applet应用,是一种纯HTML的应用形式。
由于目前B/S模式的应用是热点,所以在本文后面给出的实际例子中,所建立的某石油天然气公司决策支持系统也是基于B/S模式的。因此,下面讨论BI Beans就以B/S模式为主。基于C/S结构的BI Beans开发类似,可以参考相关文档。
  BI Beans的JSP应用可以支持各类J2EE服务器。Oracle 9i JDeveloper支持直接向BEA Weblogic和Oracle 9iAS服务器的发布功能。发布时不需要自己写配置文件,利用内置的对话框即可完成。
  图2中应用的J2EE服务器是Oracle公司的OC4J(Oracle9iAS Containers for J2EE)。它可以独立运行,也可以包含在Oracle 9iAS中运行。如果独立运行,只需要下载一个OC4J程序包即可。OC4J服务器是一个纯Java的服务,可以运行在各类平台,需要Jdk 1.3的支持。
  在Oracle 9i Jdeveloper中已经包含了OC4J独立运行版本。可以在IDE开发环境中进行调试。
3  开发实例
  本实例涉及的OLAP系统是某石油天然气公司决策支持系统的一个重要组成部分。它需要对公司的生产计划、实际产量、生产费用、库存等数据提供一个OLAP查询系统。
  整个OLAP应用核心是DSS数据仓库。该数据仓库的数据来源是公司生产管理信息系统和实时数据库系统。原始数据通过数据抽取、转换和装载(ETL)模块从OLTP应用系统以及实时数据库装载到数据仓库中。OLAP查询针对数据仓库的数据进行。
  数据仓库建立后,可以利用Jdeveloper 9i提供的查询构建器建立查询。查询是构建BI Beans应用的一个基础。在构建查询时,需要确定显示对象是交叉表、图形还是普通表格,然后选择需要显示的事实数据以及维数据,最后将该查询保存到BI Catalog中。
查询建立后,建立相关的JSP页面。由于BI Beans已经封装了图形显示、OLAP数据访问、人机操作响应等细节,因此,JSP网页很简单。下面是一个典型的JSP页面代码:
  

  

  

  其中,<orabi:Presentation />标记就是控制所要显示查询的。本例中查询的名称是plan(location=″plan″)。该查询保存在BI目录中。
  <orabi:Render />标记是控制显示的。由于用户要在界面上进行操作(上卷、下钻、统计等),因此,显示界面都在一个Form中,用户对界面的操作转化成HTTP GET请求,由BI Beans自动处理这个GET请求。Render标记可以显示各类元素。通过id属性与前面定义的Bean进行关联。
4  结  论
  由于技术的发展,企业得到海量信息的能力已经越来越强,但对信息的分析、理解以及再利用的能力却没有实质性的提高。针对这种情况,利用Oracle 的BI Beans结合数据仓库,为企业处理海量信息、建立有效的决策支持系统提供了一种快捷的方法。通过OLAP在不同领域中的应用,能帮助企业决策者面对商业环境的快速变化作出敏捷的反应和更科学、更合理的商业决策。它有助于提高企业的运作效率,建立有利的客户关系,增加产品的销售,帮助企业从现有的知本中提炼更多的价值。
  用BI Beans开发应用是比较耗内存的。如果发布到应用服务器OC4J上,需要提高应用服务器的默认最大内存,否则会引起内存溢出的错误。例如,对于独立的OC4J服务器,默认的启动命令是:“start java -jar oc4j.jar”,需要修改成:“start java -Xmx256M -jar oc4j.jar”,以提高最大内存。特别是在应用发布后,最好重新启动一次OC4J服务。服务器至少配置512MB内存,否则运行速度会很慢。不过,随着硬件价格的不断降低,这个问题也变得容易解决了。
参考文献
1   Jiawei H,Kamber M.数据挖掘:概念与技术.北京:机械工业出版社,2001
2   Inmon W H.数据仓库.北京:机械工业出版社,2000
3   Oracle9i Business Intelligence Beans,An Oracle White Paper,http://otn.oracle.com,2002,9
4   Oracle9i OLAP:A Scalable Web-Based Business Intelligence Platform  An Oracle White Paper,http://otn.oracle.com,2001,4
 

此内容为AET网站原创,未经授权禁止转载。