1.1 OLAM(On-Line Analytical Mining)的发展和应用
近年来随着计算机技术的迅猛发展和计算机应用的普及,企业中的数据环境有了较大的变化,这主要体现在两个方面:一方面,需要处理的数据量越来越大,以Gigabyte为数量级的数据存储在实际应用中己经变得越来越普遍,Terabyte数量级的商业应用也越来越多,在科学计算领域还出现了Petabyte级的应用[1]。而且数据存储量增加的势头十分迅猛,形成了和计算机集成芯片发展中的“摩尔定律(Moor' s law)”相似的“数据积累摩尔定律”,即企业中的数据量平均经过18个月就会翻一番。另一方面,对于数据的操作越来越复杂,建立在数据库基础上的联机事务处理(OLTP---On Line Transaction Processing)技术通常只对数据进行存取和建立在报表基础上的对数据较为简单的分析处理。而日益激烈的市场竞争则要求企业能够尽快地获得对现有数据的全面理解和把握,从中分析、发掘出对于企业运作和市场发展有现实指导意义的知识,从而把它们作为在市场上保持较强竞争力的秘密武器。这种需求就要求改变现在企业中对数据的利用只是停留在简单存取操作阶段的局面,需要对企业中现有数据进行深入的发掘和分析。数据仓库技术DW(DataWarehouse)、联机分析处理技术OLAM(OnLine Analytical Processing)、数据挖掘技术DM(Data Mining)以及数据库中的知识发现技术KDD(Knowledge Discovery in Database)就是针对这种需求发展起来的新技术,这些技术在企业中的应用不同程度上满足了企业数据环境变化所产生的需求。
数据仓库是“一个能支持管理部门决策过程的、面向主题的、集成的、时变的、非易失的数据集合。”[20]数据仓库技术通过对事务型数据库中数据的加工、整理和重组,完成事务型数据向分析型数据的转换,形成一个综合的、面向分析的分析型数据存储,从而实现对历史数据和现有数据的综合管理,并为数据的深入分析处理提供数据基础。
联机分析(OLAP)是由关系数据库之父E.F.Codd于1993年提出的一种数据动态分析模型,建立在数据仓库基础上的OLAP技术通过对多维数据的聚合计算和聚合结果的预存储,支持对数据多角度、多侧面的统计和观察,从而达到对数据更为全面的把握和理解的目的。OLAP技术主要对数据仓库中的数据进行表层的聚合统计,力图以统一的应用逻辑和数据模型,在短时间内响应非数据处理专业人员的复杂查询要求。在异常信息的发现方面[12],当前的OLAP系统支持数据立方体的假设驱动(Hypothesis-Driven exploration)模式的操作,例如:下钻、上卷、查询。分析人员使用这些操作,独立地在巨大的搜索空间中浏览数量众多的数据来发现异常信息。
数据挖掘技术DM有很多意思相同或者差别细微的术语名词,例如:数据库知识挖掘(knowledge mining from database),知识抽取(knowledge extraction),数据模式分析(data/pattern analysis),数据考古学(data archaeology),and 数据捕捞(data dredging)[21]。通过Wikipedia,数据挖掘被定义为:隐含的、先前未知的、潜在有用数据的、非平凡的数据抽取,从大型数据集和数据库中抽取有用信息的科学(Data mining has been defined as "the nontrivial extraction of implicit, previously unknown, and potentially useful information from data" and "the science of extracting useful information from large data sets or databases")。数据挖掘技术和知识发现技术KDD都是利用复杂的数据模型和数据分析算法对数据库中的数据进行更深层次上的发掘和理解,从而发现数据中隐含的、以前末知的、新颖的、有趣的知识。
从上面的定义可以看出,虽然OLAP技术和数据挖掘技术均属于数据分析技术,但是更深入的分析,他们在数据的处理手段和分析方法上有着显著的不同,文献[22]做出了总结,但是应该指出两种技术之间是没有可比性的,而是各有特点的,这主要体现在以下几个方面:
1.对分析数据的要求:OLAP通过数据仓库的多维数据模型访问经过聚合和组织整理的数据,因面临的需要处理的数据库中的海量数据严峻挑战,数据挖掘应运而生,其对数据的要求是根据实际情况灵活确定的,可以raw data,也可以基于数据仓库的数据。
2.应用系统的运行方式不同:OLAP系统按用户提出的问题或假设,从上至下地提取出关于给定问题或假设的详细信息,并以用户可理解的形式呈现给用户。这是一种经验型的分析过程。通常由于用户领域和思维模式的局限性,限制了问题和假设的设定范围,从而影响OLAP最终的分析结果。而数据挖掘的自动化程度较高,在数据分析和挖掘之前,用户通常对数据中所蕴涵的知识了解较少,挖掘的结果更多的依赖于数据挖掘算法,它能自动地从大量数据中发现隐藏的数据模式(Pattern)并经用户测试后形成有用的知识。
3.所用的技术和对数据的分析方法不同:OLAP借用分析技术中的概要(summarization)、合并(consolidation)、聚合(aggregation)功能,通过上卷(Roll-up)、下钻(Drill-down)、切片和切块(Slice and dice)等操作,来完成多维分析;而DM不是这样,数据挖掘远远超出了狭隘的范围概括式的分析处理的数据仓库系统,而是集成了更多的先进技术为数据的理解(“data mining goes far beyond the narrow scope of summarization-style analytical processing of data wharehoue systems by incorporating more advanced techniques for data understanding”)[21]。其使用的方法比较多,包括:统计学、机械学习、模式识别、神经网络、等各种方法和数学模型。
4.对用户群的要求不同:OLAP技术和数据挖掘技术所解决问题的不同决定了两者的用户群不同。OLAP通常为初中级决策人员服务,进行战术级的决策分析;而数据挖掘则面对中高级决策人员,辅助他(她)们进行战略级的决策。
1993年,“数据库之父”E.E.Codd提出了OLAP的概念,并给出了OLAP产品评价的十二条基本准则。尽管这些准则引起了不少的争论,但OLAP的概念却开拓了数据库应用的新领域。自此之后,OLAP的技术得到了广泛地关注和研究,OLAP产品层出不穷,OLAP应用在商业领域也越来越普及。数据挖掘的概念虽然提出的比较晚,但是其使用的技术起源是很早的,应用主要集中在科研领域,在这个方面我们可以追溯人工智能(artificial intelligence)、机械学习(mashine )的发展史,并且随着数据库技术和数学模型的发展,数据挖掘的技术在不断的进步,其应用在不断扩展。随着数据分析活动,如决策支持系统在商业领域需求增加,商业用户只是通过OLAP技术分析数据,已经不能满足他们的要求,迫切需要融入新的技术手段来解决面临的问题。OLAM(On-Line analytical Mining)技术的提出是问题解决的一种手段,将OLAP技术和数据挖掘技术有机的结合在一起。
1997年 Jiawei Han提出了OLAM的概念[23] [24][25],同时他也把OLAM定义为OLAP Mining,指将OLAP和数据挖掘技术结合起来,在多维数据模型的基础上对提供数据分析和知识发现的应用。其实在提出OLAM概念之前,将OLAP和DM结合起来提供更加优秀的数据分析和决策支持的思路早就有之。目前大部分的提供商业智能解决方案的软件公司,都在其推出的产品中集成了OLAP和DM技术,例如:Microsoft SQL Server Analisys services在OLAP基础上集成了决策树算法、聚类分析算法、时序算法、Naive Bayes 算法、关联算法、神经网络算法等,还有SAS的SAS Enterprise BI Server、SPSS的SPSS Report OLAP和SPSS Report OLAP产品、Hyperion、bussiness miner等。DBMiner是加拿大Simon Fraser大学(简称SFU)智能数据库研究所(Intelligent Database Systems Research Laboratory)开发的商品化数据仓库与知识发现集成系统。DBMiner是真正基于OLAM概念开发的系统,在大型关系数据库和数据仓库中,可以实现多层次的交互挖掘,其最主要的特征就是:OLAP与多种数据挖掘的功能紧密集成,其中包括特征化(characterization)、关联(assocation)、分类(classification)、预测(prediction)、聚集(clustering)。这实际上是在OLAP系统的基础上,对数据分析算法进行扩充,把数据挖掘算法引入到多维数据模型的数据环境中来,并把这种思想在DBMiner系统中予以实现。
从OLAM提出和发展可以看出,OLAM本身就是从实际应用的需求演变过来的一种融合技术,所以造成了理论基础研究相对来说还比较滞后。目前也有一些文献在个方面做了相应的研究,其中有基于影响域建立OLAM模型的研究[26];为OLAM系统的进一步研究和应用提供理论基础和设计参考[22];介绍和改进了数据立方体探查方法(Discovery-Driven Exploration)[27],提出其将OLAP工具带入了一个智能化交互式操作的新阶段。总的来说目前OLAM还涉及很多问题,比如:OLAM系统的概念、逻辑和物理体系结构的设计、OLAM任务/事务模型、任务的优化和调度、OLAM语言的设计和语法、语义分析与优化、智能的用户分析导航和系统监控、QoS的保证、系统的可扩展性等问题都需要进行深入的研究和探讨。这些问题并没有得到学术界足够的重视和深入的研究。
1.2 基于Pentaho构建OLAM应用模型
在开源社区里,Pentaho是一个优秀的BI产品
1.2.1 Pentaho的体系结构
Pentaho服务器由一个BI平台和传送最终用户BI能力的库组成。服务器运行于一个 J2EE 兼容的 web 服务器(如 Apache,JBOSS AS,WebSphere,WebLogic 和 Oracle AS)上。这些也可嵌入进其他服务器或应用程序中。后面的图显示了服务器中较大组件间的关系。
Pentaho服务器使得BI平台的很多功能以一种一致的,熟悉的外观和行为展示给用户。例如,一个组件产生了用户可以访问的报表列表,另一个以日历的方式列出了任务相关的最终期限,第三个显示了用户需要完成的当前任务。每个组件产生的内容和每个用户的角色相关。组件内容可以 XML,HTML 的形式获取或在被包含的 JSR 168 portlets 中显示。Pentaho portlets 可被嵌入进任何支持 JSR 168 标准的 portal,例如 IBM WebSphere,OracleAS Portal 和 BEA WebLogic Portal。组件用于生成在线报表内容的 XSL 和 CSS 样式单是可访问的,可被完全定制。
Pentaho服务器包含用于报表,分析,商业规则,email 和桌面通知以及工作流的引擎和组件。这些组件被集成在一起,用于解决商业智能问题。在一个解决方案(Solution)中,每个子系统的行为,相互作用和用户交互被解决方案(Solution)定义文档的一个集合所定义。 解决方案(Solution)定义文档是 XML文档,它包含: 业务流程的定义(XPDL标准) ,活动的定义,这些活动按需作为部分流程执行,或被 web 服务调用,其包含以下定义:数据源,查询,报表模板,传送和通知规则,商业规则,仪表盘和分析视图。
服务器中的组件依赖于一个解决方案(Solution)引擎,可获得可用解决方案(Solution)文档,安全支持,报表,工作流项,数据,和审计信息。在服务器上可以执行多于一个的解决方案(Solution)。解决方案(Solution)定义文档可从一个服务器复制到另一个,并可被自由分发。Pentaho 服务器包含了提供高级系统管理的基础设施。这包括系统监控(SMNP)服务,使用报表,Web服务支持,配置确认工具,和诊断工具。Pentaho 服务器包含了提供高级流程性能报表和分析的系统和组件。这包括工作流任务上涉及到的工作流项目,单独任务,employees 和 services 上属性的切片和切块(slice-and-dice),what-if 和数据挖掘能力。Pentaho 服务器也支持Enterprise Application Integration (EAI),用于和operational 应用live 集成,以及 Extract, Transform, and Load (ETL) 能力,用于创建数据仓库和数据集市。
帮助您充分利用数据挖掘提高组织的优势,Pentaho BI 项目组的工作是结合研发与商业社区,融入主流BI性能与先进的数据挖掘。Pentaho数据挖掘技术的不同之处在于:他的开放、标准兼容的性质,使用weka数据挖掘技术,并紧密结合为核心的商务智能功能,包括报表,分析和仪表.其他数据挖掘产品缺乏这种复杂程度和一体化(见图3‑1)。
目前Pentaho BI平台中,weka可以说是一个相对独立的系统,Pentaho BI的Roadmap要求:通过Pentaho Data Integration可以方便的将多种数据源的数据合并到Pentaho Data Mining解决方案中。
1.2.2 OLAM应用模型
目前基于OLAM,领域专家提出的体系结构主要集中在将数据仓库、联机在线分析、数据挖掘三种技术融合,也就是:OLAM=DW+OLAP+DM,或者是OLAM=OLAP+DM。这个两个表述区别不大,因为OLAP本身就是基于数据仓库(DW)多维分析的数据分析方法。
由图3‑2可以看出,OLAM模型中加入了OLAP和数据挖掘的功能,可以提供以多维数据集为数据源的算法分析。因为OLAM模型可以完成多种数据挖掘任务,例如:concept description、association、classification、prediction、clustering、time-series analysis,等等,他一般由多种数据挖掘模型集成,要比OLAP模型更加复杂。
虽然提出这个公式,但是最终目的不是将这些技术简单的堆砌。目前有些研究领域就是建立统一体系结构,符合OLAM发展的需要。虽然现有的应用中实现的手段不同,但是总体上没有都没有提出一套完整的、成体系的OLAM体系结构,在个方面的工作还需要长期的研究和总结。本文中借用Pentaho平台的体系机构,来建立OLAM应用模型。
目前Pentaho开源项目中集成了Mondrian和Weka组件,分别实现OLAP和数据挖掘的功能,他们分别在各自分析领域有突出的表现。Mondrian主要侧重数据的展示和统计,Weka集成了很多先进的数据算法,可以完成深入的数据分析。Weka目前只能分析二维表数据,在建立完成OLAP后,数据的表现方式提高了一个层次,用cube方式来表现,这就需要weka不仅可以分析二维表,还可以分析cube数据。目前这是比较复杂的课题,本文论中在这个方向做了一个初步实践,初步思路是将cube数据通过切片操作转换成二维数据,然后在通过weka来进行分析,目前来说此中方法可以解决的论文中涉及到的分析问题。