首页  ·  知识 ·  大数据
基于工作仓库的OLAM缓存替换算法
马治国 郑洪源 丁秋林  万方数据  实践应用  编辑:德仔   图片来源:网络
0 引 言 联机分析处理(On-Line Analytical Processing,OLAP)是共享多维信息的,针对特定问题的联
0 引 言

    联机分析处理(On-Line Analytical Processing,OLAP)是共享多维信息的,针对特定问题的联机数据访问和分析技术。OLAP分析虽然可给用户提供不同角度,不同抽象级别的视图,但是由于事先对用户需求的了解可能不全面,视图中常常缺少统计分析应有的维度,容易错误的引导决策者而导致遗漏数据之间重要的模式和联系,因此很难发现数据中隐含的深层次的信息。

    数据挖掘(Data Mining,DM)是目前人工智能和数据库领域研究的热点问题,所谓数据挖掘是指从大墩结构化和非结构化的数据巾提取有用的信息和知识的过程,它是知识发现的有效手段。但是数据挖掘中数据的分析是完全自动化的,分析过程不需要用户的参与,这使得分析出来的数据有些是决策者并不需要的,并且动态选择决策算法也比较困难。另外由于数据挖掘使用的是产品化的工具集,用户一般很难掌握每种算法的思想以及适当的分析类型。

    鉴于OLAP和DM的优缺点,如果能将两者结合起来,发展一种建立在OLAP和数据仓库基础之上的数据挖拙技术,将更能适合实际的需求。本文通过分析传统的OLAM架构,针对其在处理海量数据时,数据重复利用率低,执行时间长,服务器的负担重的缺陷,提出了一种基于工作仓库的新的OLAM架构,把立方体缓存和块缓存引入到工作仓库中,同时运用改进的缓存替换算法,大大减少了磁盘的I/O操作,提高了重复数据的利用效率,加快了数据分析的速度,具体内容将在下文中给出。

1 基于工作仓库的OLAM体系架构设计

    虽然传统OLAM技术集成了OLAP和DM的功能,综合了OLAP多维分析的在线性,灵活性和DM的智能性特点,提高了传统模型的灵活性和智能化程度,但是也存在一些不足与困难,主要表现在以下几点:

    1)信息表示难度大。数据的表示、知识的表示以及元数据的表示等内容是OLAM技术的关键问题,虽然研究历史上提出许多表示方法,但问题仍然没有得到很好地解决。

    2)系统体系结构复杂多样。研究OLAM系统的整体组织结构,以便支持灵活高效的OLAM应用、提供良好的扩展性和伸缩性,仍旧是研究的热点。

    3)挖掘算法效率低。由于一般的挖掘算法复杂并且耗时,因此在执行效率和挖掘的准确性之间不能很好地协调,并且OLAM与用户频策高速的交互,必须要求系统具有选择合适的挖掘算法和数据空间的能力。

    4)由于决策支持系统的开发环境和开发目的可能各不相同,数据管理方法和数据结构也可能各不相同,这就要求OLAM在数据方面有很强的包容性;另一方面,尽管OLAM系统中异构数据库的访问和不同数据类型的综合可以通过数据仓库技术来解决,但OLAM系统在决策分析过程中依然有对多种数据类型和数据组织方式的支持的需求。

    针对以上分析,本文在传统OLAM模型和数据仓库的基础之上,建立了面向特定应用,特定分析方法的数据集合,着重将数据缓存技术引入到工作仓库之中,构建了一种基于工作仓库和OLAP的联机分析挖掘模型(图1)。


图1 基于工作仓库的联机分析挖掘摸型


    1)数据存储层。又叫事务数据库层,是企业底层数据源的真实汇总,主要包括一些业务系统数据、外部数据、文档资料等等。这些基础数据主要来自企业内外部的操作性应用系统,也可以是外部数据源中的已经经过数据处理的数据仓库。

    2)多维数据库层。本层以一定的粒度以及分割方案,存储了经过处理的适用于OLAP查询和数据挖掘功能的数据源。针对系统数据分析的不同目标,建立相应的具有多维数据模型的数据立方体;建立、更新和维护数据挖掘算法;更新和维护元数据及元数据知识库。

    3)OLAP/OLAM层。这一层主要包括OLAP引擎,DM引擎以及作为本文重点的工作仓库。OLAP引擎是组织和管理多维资料结构的高性能、多客户的资料处理引擎,通过一定的数据库服务器组件,对数据立方体进行切片,切块,旋转,向下钻取,向上汇总等操作,同时也可以调度数据挖掘的结果,通过立方体计算对挖掘结果做进一步分析;DM引擎是一个相对独立的应用程序,通过数据库接口与多维数据库连接,应用系统自身的数据挖掘算法进行处理,并把数据挖掘结果保存在多维数据库和工作仓库中。

    值得一提的是,为了提高系统中OLAP分析和数据挖掘分析的效率,在本架构中引入了工作仓库的系统部件(见图1灰色框架部分),这是本架构的主要特点。在工作仓库中,使用立方体缓存和块缓存来存储OLAP统计和数据挖掘分析的处理结果,以减少对多维数据库的连接和I/O操作,提高响应速度。系统处理流程如图2所示。数据缓存替换算法将在后文给出。
 


图2 OLAM系统处理流程


    4)用户界面层。这一层是用户与OLAM引擎和OLAP引擎之间相互通信的接口,主要完成向OLAM引擎和OLAP引擎发送指令,选择挖掘算法,以及接收从OLAM引攀和OLAP引擎返回的挖掘信息,然后负责将其送到挖掘结果文件中保存。通过用户接口,用户可以指定相应的参数,选择挖掘算法,以加快挖掘过程。

    以上各层中,OLAP/OLAM层为本架构的核心,而工作仓库为本层的核心。在工作仓库中利用数据缓存技术,加快了OLAP多维数据计算和深层次维度挖掘。
2 工作仓库中数据缓存机制的设计

    2.1 基于工作仓库的数据缓存技术的提出

    数据缓存技术是针对系统运行过程中数据的即席处理技术。为了提高程序的整体性能,采用数据缓存这种“以空间换时间”的典型应用模式。
    目前提出的一种基于回报值ROI的缓存替换算法,并取得了很好的成效。该算法中的ROI和数据访问的频率与数据获取的代价成正比,与需要的空问成反比,通过比较回报值的大小而决定替换哪些数据。但该算法也存在一定的不完备性,除以上影响因素外,还存在其他一些重要因素甲对是否进行缓存替换起着至关重要的作用,比如缓存数据的存在时间等等。

    2.2 缓存替换算法的改进

    本系统中,工作仓库的数据缓存实现方式是在内存中开辟一块空间,作为立方体缓存和块缓存。在进行OLAP数据汇总和OLAP挖掘分析时,依据一定的缓存替换算法,将必要的数据分别存储于立方体缓存和块缓存。当需要进行反复的数据统计分析时,对于能够直接在工作仓库中检索到的数据,系统就不会对硬盘做低效率的I/O操作,有效地提高了系统的处理效率。当然,在处理缓存数据时,需要一定的算法来保证缓存中数据的时效性。本文在缓存算法的基础上,提出了一种改进的缓存替换算法,在新算法中运用了价值度(Valuable)的的权衡因子,使数据缓存替换更加合理和完备。如式(1)、(2)所示:

    Value=f(d)×rf(d)/size(d)     (1)

    Rf(d)=(Tu(d)-Tm(d))/(Tn-Tu(d))     (2)

    定义  数据缓存C可以用如下三元式表示:C=(D,Q(d),P(d))。

    其中:D为缓存数据的集合,D={d1,d2,…,dn}。

    Q(d)为缓存数据对应的查询集合,Q(d)={Q(di)︱di∈D},Q(di)={q1,q2,…,qm}。

    P(d)为缓存数据的属性集合,P(d)={p(di)︱di∈D},p(di)=(flag(di),v(di),μ(di),σ(di),f(di),cost(di),size(di),time(di),rf(di),Value(di))。

    Flag(di)为缓存数据的类型,包括立方体缓存数据和块缓存数据两种,time(di)为缓存数据的时间集。也是一个二元式:time(di)={Tu(di),Tm(di),Tn(di)}。

    v(di)为缓存数据di的被访问次数。

    f(di)为缓存数据di的被访问频率,f(di)=v(di)/Σv(di),Σv(di)为所有缓存数据被访问次数之和。

    μ(di)为缓存数据di的获取时间。

    cost(di)为获取数据di的获取代价,cost(di)=μ(di)/Σμ(di),Σμ(di)为所有缓存数据的获取时间。

    σ(di)为缓存数据di所占空间的大小。

    size(di)为缓存数据di的空间代价,size(di)=σ(di)/Σσ(di),Σσ(di)为所有缓存数据所占的空间之和。

    Tu(di)为缓存数据的下次更新时间。

    Tm(di)为缓存数据的上次修改时间。

    Tn(di)为当前时间。

    rf(di)为缓存数据的剩余寿命,rf(di)=(Tu(di)-Tm(di)/(Tn(di)-Tu(di))。

    Value(di)为缓存数据价值度。若某缓存数据被访河频率越高,剩余寿命越长,数据获取代价越小,数据空间代价越小,期该缓存数据价值度就越高,故Value(di)=f(di)×rf(di)/cost(di)×size(di))。

    由上面的缓存定义可知,数据缓存中的存储对象主要分两部分:查询结果集和对结果集的属性描述信息,因此缓存数据可以根据绪果集的属性描述信息进行缓存替换。具体的缓存算法思想如下:用户提出OLAM决策请求,调用相应的决策引擎进行数据分析并产生一定的结果集,当结果集请求进入相应的缓存空间时,如果该缓存空间已满,则根据空间中每个查询数据di的价值度Value(di)来决定替换哪个结果集为新的结果集提供空间时,并且定时的对缓存数据的空间进行管理。本文在缓存算法的基础上,进行了一定的改进,得出一种基于价值度的缓存替换算法。原文中算法仅考虑了缓存数据的保存代价和收益值,而没有考虑缓存数据本身的因素,比如剩余寿命等,该算法是在基于这样一种假设的情况下提出的:新的文件比旧的文件更频繁地被修改。因此,每次根据访问的缓存数据,计算缓存数据的价值度,如果价值度小于事先设定的价俏极限,则删除该缓存数据而替换为新的待缓存数据。图3给出经过改进后的缓存处理算法流程描述。
 

 


图3 缓存替换算法的处理流程


    在本算法中,主要依据价值度Vatue(que)作为缓存替换的主要准则,充分考虑了影响缓存数据的各种数据,提高了缓存替换的准确性,为后续的决策分析提供了高效的数据保障。虽然加入了判断缓存数据的剩余寿命计算,但对整体运行效率的影响是可以忽略的。
3 应用实例及结果分析

    本文以某市的医疗保险信息系统中审计数据为例,将研究成果应用其中。医疗保险一方面涉及部门广泛,另一方面在系统的运行过程中积累有大量的数据这些数据如果不进行进一步的处理,很难为医疗保险的审计和决策提供帮助。此系统利用先进的信息技术,决策支持技术,建立利于决策分析的数据仓库,通过对数据仓库信息的审计,分析和挖掘,为决策者提供各种形式的决策支持洁息,辅助决策者进行日常审计管理和制定相应的医疗保险政策。图4给出基金征缴的数据审计分析结果。页面左半部分以树形结构给出基金征缴主题各维的层次结构,右半部分展示了。OLAM多维统计结果,在该结果图表上可以进行下钻和上卷等操作,同时可以运用数据挖掘中的关联规则算法进行决策分析。
 

 


图4 医保决策系统基金征缴数据审计分析结果


    由于文章篇幅限制,本文仅对图4的基金征缴统计分析,在取舍工作仓库两种情况下分别做了性能测试,通过比较得出,在系统架构中加入工作仓库模块之后,系统的性能和审计结果的准确度明显得到了提高。图5为系统改进前后性能比较。从中可以看出,当并发用户超过30之后,系统的数据检索效率有明显提高,当并发用户达到250左右时,系统时间缩减了将近4/5。
 


图5 并发用户请求时间比较


4 结 语

    本文在传统OLAM系统架构的基础之上,提出了一种基于工作仓库的新的架构,在工作仓库中运用数据缓存技术加快了OLAM决策分析中的数据检索和统计能力,特别是对于需要反复进行数据存取的挖掘决策分析减少了对数据库的I/O操作,同时在并发用户增多的情况下减轻了服务器的负荷。目前对于OLAM系统数据仓库的优化技术研究正日渐受学者关注,工作仓库中数据缓存技术的提出仅仅是工作仓库结构组织的一种形式,对于工作仓库中数据的其他存储方式和组织方式,比如索引技术的引入,将是以后研究的重点。
 

 
本文作者:马治国 郑洪源 丁秋林 来源:万方数据
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读
也许感兴趣的
我们推荐的
主题最新
看看其它的