一种基于自适应遗传算法的物化视图选择方法
【专利摘要】本发明公开了一种基于自适应遗传算法的物化视图选择方法,本发明输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,按照映射规则将其映射到多维数据格中的节点,构建多维数据格模型并定义其下的物化视图的开销模型,然后利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,最后引入自适应调整交叉概率和变异概率的机制来改进遗传算法,并利用改进的遗传算法求解物化视图选择问题,在求解大规模物化视图选择问题时,与没有采用自适应机制的遗传算法及采用贪心策略的传统算法相比,采用本发明所述的方法所得的结果较优,可以选择合适的视图进行物化,最小化物化视图的总开销。
【专利说明】一种基于自适应遗传算法的物化视图选择方法
【技术领域】
[0001]本发明属于数据仓库【技术领域】,具体涉及到一种基于自适应遗传算法的物化视图选择方法。
【背景技术】
[0002]借助数据仓库及在线联机分析处理技术对数据进行全面、科学的管理和多角度、深入的分析和挖掘己成为当今企业决策分析的必要手段。通过OLAP查询可以快速发现数据背后隐藏的信息以用来辅助决策,但是OLAP查询在执行过程中往往需要对大量的数据进行选择、连接及投影操作,这是一个非常耗时的过程。为了实现快速联机分析处理操作,可以引入物化视图来解决这个问题。
[0003]通过物化视图,数据仓库的性能可以成倍提高,它也构成了实现OLAP在线分析的重要手段。不过物化视图的引入又会带来新的问题,一方面保存物化视图需要额外的存储空间,另一方面物化视图的维护操作也成为了一个亟待解决的问题。特别是对包含海量数据的物化视图,随着原始数据的变化,物化视图中的汇总信息会与原始数据出现不一致,导致物化视图失效,此时物化视图就需要根据原始数据的变化,刷新其数据,保持与原始数据的一致性,对于基于海量数据的物化视图,维护开销是非常大的。物化视图选择问题就是如何选择合适的视图进行物化,最小化其总开销。
[0004]物化视图选择问题已经被证明为NP完全问题,如果候选物化视图的个数为n,那么总共有2n种选择方案。采用枚举算法显然可以求得最优解,不过该算法开销太大,采用贪心算法求解往往得到局部最优解,而遗传算法适用于求解NP完全问题,经过有限次数的迭代可以获得问题的近似最优解甚至是最优解。
【发明内容】
[0005]本发明针对现有技术的不足,提供了一种基于自适应遗传算法的物化视图选择方法。
[0006]本发明一种基于自适应遗传算法的物化视图选择方法,具体包括以下步骤:
[0007]步骤(I).输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将其映射到多维数据格中的节点;
[0008]映射规则定义如下:SQL定义语句中包含分组属性最多的视图对应于多维数据格中的根节点,对于候选物化视图集中的任意两个视图,两个视图分别设为a和b,如果a视图SQL定义语句中包含的分组属性是b视图SQL定义语句中包含的分组属性的真子集,那么a视图所对应的节点是b视图所对应节点的子节点,多维数据格模型中,除根节点没有父节点外,其它的节点有且仅有一个直接父节点;
[0009]步骤(2).计算多维数据格模型下的物化视图的总开销;
[0010]设Q为多维数据格模型中所有待物化的候选视图集,q为Q中的一个视图,fq(q)表示q所对应的查询频率,M为物化视图集,QueryCost (Q, M)为物化视图的查询开销,MaintenanceCost (M)为物化视图的维护开销,Storage (M)为物化视图的存储开销,TotalCost (Q, M)为物化视图的总开销,avg, e Q {f, (q)}为视图查询频率的均值,α为比例系数,TotalCost (Q, Μ) =QueryCost (Q, Μ) + α X (MaintenanceCost (M) +Storage (M)),其中α =0.5XavgqeQ{fq(q)}。
[0011]步骤(3).利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数组,并将步骤(2)所得的物化视图总开销的倒数作为遗传算法中个体适应度的大小;
[0012]多维数据格模型中节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为I表示该元素索引所对应节点的视图需要物化,数组元素为O表示该元素索引所对应节点的视图不需要物化。
[0013]步骤(4).设定初始种群规模η、最大迭代次数max_number,根据步骤(3)所得的0-1整型数组,利用随机算法产生η个个体作为初始种群;
[0014]步骤(5).进行选择操作,通过筛选保留种群中适应度高的个体,淘汰种群中适应度低的个体depopulation为种群,k为种群中的个体,Fit (x)为个体x所对应的适应度,则个体X被选择进入下一代的概率Ps的计算函数如下所示:
【权利要求】
1.一种基于自适应遗传算法的物化视图选择方法,其特征在于,该方法具体包括以下步骤: 步骤(1):输入带视图大小及访问频率属性的基于同一个事实表及其维表的候选物化视图集,根据候选物化视图SQL定义语句中group-by子句所包含的分组属性,按照映射规则将其映射到多维数据格中的节点; 映射规则定义如下=SQL定义语句中包含分组属性最多的视图对应于多维数据格中的根节点,对于候选物化视图集中的任意两个视图,两个视图分别设为a和b,如果a视图SQL定义语句中包含的分组属性是b视图SQL定义语句中包含的分组属性的真子集,那么a视图所对应的节点是b视图所对应节点的子节点,多维数据格模型中,除根节点没有父节点外,其它的节点有且仅有一个直接父节点; 步骤(2):计算多维数据格模型下的物化视图的总开销; 设Q为多维数据格模型中所有待物化的候选视图集,q为Q中的一个视图,f,(q)表示q所对应的查询频率,M为物化视图集,QueryCost (Q, M)为物化视图的查询开销,MaintenanceCost (M)为物化视图的维护开销,Storage (M)为物化视图的存储开销,TotalCost (Q, M)为物化视图的总开销,avgq e Q {fq (q)}为视图查询频率的均值,α为比例系数,TotalCost (Q, Μ) =QueryCost (Q, Μ) + α X (MaintenanceCost (M) +Storage (M)),其中α =0.5XavgqeQ{fq(q)}; 步骤(3):利用二进制编码将基于多维数据格模型的候选物化视图集转换成遗传算法可以处理的0-1整型数 组,并将步骤(2)所得的物化视图总开销的倒数作为遗传算法中个体适应度的大小; 多维数据格模型中节点的编号对应于数组的索引,数组元素的值决定是否对视图进行物化,数组元素为I表示该元素索引所对应节点的视图需要物化,数组元素为O表示该元素索引所对应节点的视图不需要物化; 步骤(4):设定初始种群规模η、最大迭代次数maX_number,根据步骤(3)所得的0_1整型数组,利用随机算法产生η个个体作为初始种群; 步骤(5):进行选择操作,通过筛选保留种群中适应度高的个体,淘汰种群中适应度低的个体depopulation为种群,k为种群中的个体,Fit (x)为个体x所对应的适应度,则个体X被选择进入下一代的概率Ps的计算函数如下所示:
F'it(x) Ps= Σ
ksPopuJation 步骤(6):计算交叉概率p。,为种群中的每个个体随机生成一个O到I之间的判定值flag_c,如果flag_c的值小于等于p。,则该个体要进行两点交叉操作,否则该个体不用进行两点交叉操作,P。的计算公式如下所示:
1-1.2 X Fitavg / (Fitjmx + Fitam) O < Fitavv / (Fitvmx + Fitwm) <0.5 P = i [0.4c/sc Fitniax为种群中个体的最大适应度,Fitniin为种群中个体的最小适应度,Fitavg为种群中个体的平均适应度;两点交叉操作的过程如下: 为两个要进行交叉操作的个体随机设置两个不同的交叉点,两个交叉点分别设为pointl和point2,将两个个体pointl和point2之间的基因码进行交换产生新的个体; 步骤(7):计算交叉概率Pm,为种群中的每个个体随机生成一个O到I之间的判定值flag_m,如果flag_m的值小于等于pm,则该个体要进行变异操作,否则该个体不用进行变异操作,Pffl的计算公式如下所示:
【文档编号】G06F17/30GK103761308SQ201410031880
【公开日】2014年4月30日 申请日期:2014年1月23日 优先权日:2014年1月23日
【发明者】俞东进, 朱智祥, 袁友伟 申请人:杭州电子科技大学