一种面向复杂数据仓库环境的优化策略自动生成方法

文档序号:6618789阅读:119来源:国知局

专利名称::一种面向复杂数据仓库环境的优化策略自动生成方法
技术领域
:本发明涉及计算机数据库
技术领域
,尤其涉及一种面向复杂数据仓库环境的优化策略自动生成方法。
背景技术
:大型的数据仓库系统通常会遇到性能调优问题,但是目前的数据仓库系统规模越来越庞大、结构越来越复杂、涉及到的软件技术越来越广泛。越来越复杂的应用架构和数据库产品使得调优变得更加复杂,它们的各种调优策略之间存在的复杂影响也使调优越来越困难。目前的各种调优技术大都局限在数据仓库系统某个具体细节的调优上,比如在数据仓库的性能调优中,操作系统、数据仓库系统、ETL工具、分析挖掘工具等的调优都是互相独立的,忽略了其中的互相影响和联系,使得调优的结果往往不能使用户满意。从数据仓库系统整体的角度提出调优策略,成为当前数据仓库系统调优中的一个迫切需求。另一方面,目前各种数据仓库系统针对的企业需求差异性也很大,造成的数据仓库对性能的要求也多种多样。比如有些数据仓库系统是为了宏观决策支持,对于响应时间的要求不严格,有些数据仓库系统则要求能提供实时的数据分析支持;有些数据仓库系统更关注存储成本的降低;有些数据仓库操作系统则受制于网络速度的限制,追求网络资源的利用率。现有的数据仓库通用调优策略,往往没有考虑这些差异性,这也是造成调优效果不佳的重要原因之一。
发明内容(一)发明目的本发明的目的是要客户现有技术的不足,提供一种适用于复杂的4数据仓库环境的优化策略自动生成方法,该方法可以根据具体的需求特点,面向整个数据仓库环境,提出不同的优化策略,该方法也可用于普通的数据库优化策略的自动生成。(二)技术方案针对以上问题,本发明提出的一种面向复杂数据仓库环境的优化策略自动生成方法,包括以下步骤(1)生成诊断点图,诊断点图根据诊断点的语义链接组成,每个诊断点都会链接到数据仓库语义库,数据仓库语义库用来描述数据仓库各个组成要素之间的关系;(2)根据诊断点距离;工,(^GiV力iX^,」升序排列所有诊断点DGNj,诊断点距^就i诊断点对应的语义库中元素的距离;(3)对每个处于诊断点重心的N个单元DGNj,按下述方式处理(3-1)在调优过程中加入新结点;(3-2)按诊断点距离从大到小广度优先遍历DGNj,直到语义距离小于某个限定值Dis,(3-3)若新的结点不在调优过程中,则加入它;(4)对于诊断过程中的每个诊断点,检查该诊断点,如果此诊断点异常,则使用相应的调优策略;(5)输出调优过程;其中,所述诊断点DGN是一个包含名称、对应策略和语义指针的三元组,诊断点是可能导致系统瓶颈的可疑点,名称就是诊断点的名称,对应策略是这个诊断点出现异常的时候的相应调优策略,语义指针是一个指向数据仓库系统语义库的指针,该语义指针所指向的语义用来表示该诊断点在整个数据仓库系统中的含义和作用,所述数据仓库系统语义库用于描述整个数据仓库系统中的概念及其相互关系,且每一个诊断点都含有一组不同的需求回报分数向量;所述调优过程是一个诊断点组成的序列DGN1,DGN2,......DGNn,使用不同的顺序检查这些诊断点后,不同的调优过程在语义库的支持下自动生成;所述两个诊断点DGNa和DGNb之间的语义距离用SemanticDis(DGNa,DGNb)表示,即语义指针指向的数据仓库系统语义库元素之间的最短距离;所述需求回报函数用下式来定义i=^>,*&,d代表了预先定义的需求回报的需求回报维数,Pi是对第i'ife需求回报的权重,Si是在一个诊断点中第i维的需求回报分数,该分数表示这个诊断点对整个数据仓库系统性能的重要程度;所述诊断点图是一个无向图G=(V,E),V是一组诊断点,E是一组连接两个诊断点DGNj和DGNj的边,它可以表示两个单元的语义距离;所述诊断点距离,用下式定义.-D/<Z)G7V,,JDGA^=w/"(^zVZX^,,JDGiV">)+Z)/1<JDGA^,JDGiVJr",如果DGNi和DGNj邻接,那么二者的距离则是,所述诊断点重心DGNeenter是诊断点图的一个顶点,定义如下2£fe(i)GW挂,,D(^V,)=MinJ]£fe。本发明还提供了一种利用前述方法生成的优化策略对数据仓库环境进行优化的方法。(三)有益效果本发明的技术方案更加适合复杂的大型数据仓库系统,该方法从提升整体性能的角度考虑,针对操作系统、数据仓库系统、ETL工具、分析挖掘工具自动生成完整的调优策略,充分考虑了的数据仓库系统各个组成部分的互相影响和联系,使得调优的结果达到最优。本发明的技术方案还充分考虑不同应用背景下数据仓库系统的差异性,可以针对不同的应用背景,为不同的数据仓库系统生成不同的优化策略。目前的调优工具都针对数据仓库细节进行调优,这种在宏观的角度生成调优策略的方法,目前还是空白。使用本方法可以开发出面向客户需求的数据仓库整体调优工具,作为数据仓库系统调优的决策支持工具,辅助数据仓库管理员或者调优专家从整体角度出发,作出正确有效的调优策略。该工具还可以与现有的各种针对细节的专用调优工具结合,自动实时的对数据仓库性能进行调优,及时消除数据仓库瓶颈,提升数据仓库性能。本算法也可用于普通的数据库优化策略的自动生成,作为数据库调优工具的核心算法,适当改动后的该算法,还可以用在其他系统的宏观调优上。图l为调优过程生成示意图;图2为调优过程生成流程图;图3为两种调优过程模拟实验对比图。具体实施例方式以下实施例用于说明本发明,但不用来限制本发明的范围。本具体实施方式基于一些基本概念展开,如下定义一诊断点诊断点DGN-〈诊断点名称,对应策略,语义指针>是一个数据仓库系统中的基本组成元素,也是可能导致系统瓶颈的可疑点。例如操作系统的10、存储,数据仓库软件的索引、存储空间分配,网络系统的负载,ETL过程的相应时间等,都是数据仓库系统的诊断点。一个诊断点是一个三元组,其中名称就是诊断点的名称;对应策略则是这个诊断点出现异常的时候,相应的调优策略;语义指针则代表这个诊断点的语义,也就是在整个数据仓库系统中的含义和作用,它是一个指针,指向一个数据仓库系统语义库。数据仓库系统语义库用来描述整个数据仓库系统中的概念及其相互关系,或者说数据仓库系统语义库就是一个用来表示整个数据仓库系统的规范格式的文件。数据仓库系统语义库可以是一个传统的XML树+规则的文档,也可以是其它的一些结构,比如语义邻接矩阵等。使用不同的顺序检查这些诊断点后,不同的调优过程将会在语义库的支持下自动生成。所有的诊断点都含有一个指向数据仓库系统语义库节点的指针,因此每个诊断点都具有它们自身的语义含义,这个语义含义将是我们自动生优化策略的基础。定义2:调优过程一个调优过程[DGNpDGN2,......DGNn]是一个诊断点组成的序列。使用不同的顺序检查这些诊断点后,不同的调优过程将会在语义库的支持下自动生成。这里我们试图找到最好的调优过程来生成相应的调优策略,在数据仓库语义库的支持下,来使用户需求的到最大程度的满足。每个诊断点都含有一个指向数据仓库系统语义库的指针,它代表着诊断点的语义。通过语义指针,我们可以计算不同诊断点之间的语义距离。定义3:语义距离SeanticDis(DGNa,DGNb)代表了诊断点a与b之间的语义距离,即用语义指针链接的数据仓库系统语义库元素之间的最短距离。SeanticDis(DGNa,DGNb)=Dmin(Na,Nb),Na表示DGNa的语义指针指向的结点,Nb表示DGNb的语义指针指向的结点。如何计算语义距离取决于数据仓库系统语义库的结构。对于一个基于XML树的本体,我们可以用Dijkstra算法来获得两个诊断点间的最短距离。8定义4:需求回报函数需求回报函数用下式来定义及=|>,",,其中,d代表了预先定义的需求回报的需l回报维数。Pi是用户第i维需求回报的权重。Si是在一个诊断点中第i维需求回报的分数,表示如果一个由此诊断点带来的系统瓶颈被排除了所能带来的收益。或者换句话说,分数意味着这个诊断点对整个数据仓库系统性能的重要程度。每一个诊断点都含有一组不同的需求回报分数向量,这是由相关领域的专定确定的。生成调优过程的目的是寻找一个使需求回报函数达到最大值的过程。诊断点的需求回报函数反映了针对这个诊断点的调优在不同方面造成的影响程度。例如,在数据仓库系统中有以下一些需求回报维度相应时间,内存开销,存储开销,成本、网络资源等等。不同需求回报维的权重是调优之前根据不同的用户需求类型初始化好的。定义5:诊断点图一个诊断点图是一个无向图G-(V,E),在一个无向图G中V是一组诊断点,每个单元都有一组由诊断点专家定义的用户需求回报值向量;E是一组连接两个诊断点DGNi和DGNj的边,它可以表示两个单元的语义距离。定义6:诊断点距离在一个诊断点图中,诊断点距离在两个顶点间有如下定义如果DGNj和DGNj邻接,那么二者的距离则是,实际上,DGNi和DGNj之间诊断点距离是在诊断点图中它们的最短距离,如果两个顶点是相邻的,那么它们的诊断点距离是它们语义距离与需求回报函数总和的乘积。DGNi和DGNj的诊断点距离代表了它们的关联程度。因为诊断点距离是根据用户的需求回报函数来计算的,即使是相同的诊断点,它们之间的诊断点距离也因用户的不同而有所差异,是用户个性化的体现。定义7:诊断点重心诊断点重心是诊断点图的一个顶点,代表了用户与网站诊断点中的兴趣重心。诊断点重心DGNeen^有如下定义在此定义中,诊断点重心是诊断点图中与其他所有诊断点诊断点距离之和最短的诊断点。所以,诊断点重心比其它诊断点拥有更多的紧密邻居。在调优过程中以诊断点重心作为起始节点是很重要的,因为诊断点距离是根据用户的需求回报函数来计算的,不同的用户需求拥有不同的诊断点重心,以产生不同的调优过程。根据诊断点的语义和用户的需求汇报生成调优过程,整个思路图l所示,通过此方法,可以使用一个调优过程生成方法来为不同的数据仓库和不同的用户需求生成不同的调优过程,该方法的思想包括两步1)寻找诊断点重心,也就是数据仓库的个性化性能焦点;2)以诊断点重心为起点,广度优先搜索诊断点图,结点即为调优过程。如图2所示为本发明的调优过程生成流程图,该过程可用如下伪码表示Stepl:清空诊断过程;根据ZZXy「"G7V;,,卩升序排列所有诊断点DGNj;S鄉2:For每个处于诊断点重心的N个单元DGNjdo在调优过程中加入新结点;按诊断点距离从大到小BFS(DGNj),直到语义距离小于某个限定值DismaxIf新的结点不在调优过程中,加入它;EndBFSEndfor;Step3:For诊断过程中的每个诊断点检査诊断点;如果此诊断点异常,使用相应的调优策略;Endfor;输出调优过程。此算法中存在两个阈值诊断点重心数阈值和最小距离阈值。诊断点重心数阈值决定了我们可以选择多少个诊断点重心来开始广度优先搜索,它代表了不同的诊断点重心的重要程度一个重心是最重要的或者一些重心都很重要;最小距离阈值决定了广度优先搜索的结東条件,也决定了搜索领域的大小调优过程是更细节还是更简短。这两个阈值的初试值由经验来约定,并在诊断点模型的发展中不断调上述提到的调优过程产生算法,它的时间复杂度是O(nlogn)*0(n*n2)*O(n)=0(n5logn),其中n是诊断点的个数。为了评估上节的调优过程产生算法,釆用一个模拟实验来检测它的性能和可行性。在这个实验中,在数据仓库环境下设计了很多诊断点,然后根据两种不同类型的数据仓库生成了两种不同的调优过程一种是用于在大规模数据中长期决策,另一种用于在较小规模数据集巿中支持实时分析,模拟实验过程如下选取12个诊断点进行模拟试验,这12个诊断点分别为A内存利用率B缓存利用率C网络负载DETL过程E挖掘算法F外存利用率GOLAP模型H虛拟存储利用率ICPU利用率J磁盘IOK物化视图L数据库索引根据它们在预定义的数据仓库语义库中的位置,计算各个诊断点的语义距离,具体的语义距离矩阵如下ABCDEFGHIKA11042833276B82243542C710826783D104931321E321431F318294G63321H8236I99334K2同时,定义这些诊断点的诊断对成本和响应时间这两个角度的回报,下面是这些诊断点在这两个维度上的回报成本响应时间A2812<table>tableseeoriginaldocumentpage13</column></row><table>根据本发明的调优方法,分别得到的的调优序列如下需求l:A(重心)BCDEFGHIJKL需求2:I(重心)LKCGEAHFJDB如图3所示,是用于两种拥有不同需求的数据仓库的两个调优过程一个专注于节约建设成本,另一个则更多注重反馈时间。在这个例子中,顶部诊断中心阈值是l,最小距离阈值是在所有诊断点图表中的平均距离。从这两种调优过程我们可以发现(1)过程l包括更多关于怎样花费更少的资金来建立一个数据仓库系统的诊断点;而过程2包括更多关于怎样建立一个反馈更快速的数据仓库系统的诊断点。这是因为两种不同的数据仓库系统有着不同的诊断重心和需求回报函数。2)在这两个调优过程中,有着密切联系的诊断点都被放在了一起。这是因为所有诊断点都链接到一个相同的数据仓库语义库,在这个语义库中,描述了它们的语义信息。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关
技术领域
的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由其权利要求限定。权利要求1、一种面向数据仓库环境的优化策略自动生成方法,其特征在于,包括如下步骤(1)生成诊断点图,诊断点图根据诊断点的语义链接组成,每个诊断点都会链接到数据仓库语义库,数据仓库语义库用来描述数据仓库各个组成要素之间的关系;(2)根据诊断点距离id="icf0001"file="A2009100834890002C1.tif"wi="48"he="8"top="70"left="80"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/>升序排列所有诊断点DGNj,诊断点距离就是诊断点对应的语义库中元素的距离;(3)对每个处于诊断点重心的N个单元DGNj,按下述方式处理(3-1)在调优过程中加入新结点;(3-2)按诊断点距离从大到小广度优先遍历DGNj,直到语义距离小于某个限定值Dismax;(3-3)若新的结点不在调优过程中,则加入它;(4)对于诊断过程中的每个诊断点,检查该诊断点,如果此诊断点异常,则使用相应的调优策略;(5)输出调优过程;其中,所述诊断点DGN是一个包含名称、对应策略和语义指针的三元组,诊断点是可能导致系统瓶颈的可疑点,名称就是诊断点的名称,对应策略是这个诊断点出现异常的时候的相应调优策略,语义指针是一个指向数据仓库系统语义库的指针,该语义指针所指向的语义用来表示该诊断点在整个数据仓库系统中的含义和作用,所述数据仓库系统语义库用于描述整个数据仓库系统中的概念及其相互关系,且每一个诊断点都含有一组不同的需求回报分数向量;所述调优过程是一个诊断点组成的序列DGN1,DGN2,......DGNn,使用不同的顺序检查这些诊断点后,不同的调优过程在语义库的支持下自动生成;所述两个诊断点DGNa和DGNb之间的语义距离用SemanticDis(DGNa,DGNb)表示,即语义指针指向的数据仓库系统语义库元素之间的最短距离;所述需求回报函数用下式来定义<mathsid="math0001"num="0001"><math><![CDATA[<mrow><mi>Ri</mi><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>I</mi></mrow><mi>d</mi></munderover><msub><mi>p</mi><mi>i</mi></msub><mo>*</mo><msub><mi>s</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math>id="icf0002"file="A2009100834890003C1.tif"wi="27"he="9"top="47"left="109"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>d代表了预先定义的需求回报的需求回报维数,pi是对第i维需求回报的权重,si是在一个诊断点中第i维的需求回报分数,该分数表示这个诊断点对整个数据仓库系统性能的重要程度;所述诊断点图是一个无向图G=(V,E),V是一组诊断点,E是一组连接两个诊断点DGNi和DGNj的边,它可以表示两个单元的语义距离;所述诊断点距离,用下式定义<mathsid="math0002"num="0002"><math><![CDATA[<mrow><mi>Dis</mi><mrow><mo>(</mo><msub><mi>DGN</mi><mi>i</mi></msub><mo>,</mo><msub><mi>DGN</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mi>min</mi><mrow><mi>u</mi><mo>&Element;</mo><mi>N</mi></mrow></munder><mrow><mo>(</mo><mi>Dis</mi><mrow><mo>(</mo><msub><mi>DGN</mi><mi>i</mi></msub><mo>,</mo><msub><mi>DGN</mi><mi>u</mi></msub><mo>)</mo></mrow><mo>+</mo><mi>Dis</mi><mrow><mo>(</mo><msub><mi>DGN</mi><mi>u</mi></msub><mo>,</mo><msub><mi>DGN</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo></mrow>]]></math>id="icf0003"file="A2009100834890003C2.tif"wi="114"he="5"top="119"left="32"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>如果DGNi和DGNj邻接,那么二者的距离则是,Dis(DGNi,DGNj)=SemanticDis(DGNi,DGNj)*(Ri+Rj)所述诊断点重心DGNcenter是诊断点图的一个顶点,定义如下<mathsid="math0003"num="0003"><math><![CDATA[<mrow><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><mi>N</mi><mo>,</mo><mi>i</mi><mo>&NotEqual;</mo><mi>center</mi></mrow></munder><mi>Dis</mi><mrow><mo>(</mo><msub><mi>DGN</mi><mi>center</mi></msub><mo>,</mo><msub><mi>DGN</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>Min</mi></mrow>]]></math>id="icf0004"file="A2009100834890003C3.tif"wi="63"he="8"top="155"left="30"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths><mathsid="math0004"num="0004"><math><![CDATA[<mrow><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi><mo>&Element;</mo><mi>N</mi><mo>,</mo><mi>i</mi><mo>&NotEqual;</mo><mi>j</mi></mrow></munder><mi>Dis</mi><mrow><mo>(</mo><msub><mi>DGN</mi><mi>j</mi></msub><mo>,</mo><msub><mi>DGN</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>,</mo></mrow>]]></math>id="icf0005"file="A2009100834890003C4.tif"wi="49"he="8"top="155"left="95"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>该式表示诊断点重心是诊断点图中与其他所有诊断点距离之和最小的诊断点。2、一种利用如权利要求1所述方法生成的优化策略对数据仓库环境进行优化的方法。全文摘要本发明提出的一种面向复杂数据仓库环境的优化策略自动生成方法,包括以下步骤(1)生成诊断点图,诊断点图根据诊断点的语义链接组成;(2)根据诊断点距离∑Dis(DGN<sub>j</sub>,DGN<sub>i</sub>)升序排列所有诊断点DGN<sub>j</sub>,诊断点距离就是诊断点对应的语义库中元素的距离;(3)对每个处于诊断点重心的N个单元DGN<sub>j</sub>,按下述方式处理(3-1)在调优过程中加入新结点;(3-2)按诊断点距离从大到小广度优先遍历DGN<sub>j</sub>,直到语义距离小于某个限定值Dis<sub>max</sub>;(3-3)若新的结点不在调优过程中,则加入它;(4)对于诊断过程中的每个诊断点,检查该诊断点,如果此诊断点异常,则使用相应的调优策略;(5)输出调优过程;本发明可以针对不同的应用背景,为不同的数据仓库系统生成不同的优化策略。文档编号G06F17/30GK101556604SQ200910083489公开日2009年10月14日申请日期2009年5月6日优先权日2009年5月6日发明者杨冬青,王腾蛟,琪隋申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1