CN103793467B - 一种基于超图和动态规划的大数据实时查询优化方法 - Google Patents
一种基于超图和动态规划的大数据实时查询优化方法 Download PDFInfo
- Publication number
- CN103793467B CN103793467B CN201310716665.8A CN201310716665A CN103793467B CN 103793467 B CN103793467 B CN 103793467B CN 201310716665 A CN201310716665 A CN 201310716665A CN 103793467 B CN103793467 B CN 103793467B
- Authority
- CN
- China
- Prior art keywords
- cost model
- plan
- implement plan
- dynamic programming
- cost
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据实时查询技术领域,尤其涉及一种基于超图和动态规划的大数据实时查询优化方法,该方法通过采用基于最佳代价的连接顺序优化方法来提升查询效率,在大数据环境下满足用户的实时查询需求。本发明的有益效果在于:针对执行计划搜索空间过大的问题,构建满足左线性树的搜索策略,大大降低了搜索的空间,提升了基于超图和动态计划算法运行的效率;构建满足大数据环境的最佳代价模型,综合考虑了大数据环境下传输代价及哈希连接算法运行特性等因素,确保了优化方法生成的计划是最佳的。
Description
技术领域
本发明涉及大数据实时查询技术领域,尤其涉及一种基于超图和动态规划的大数据实时查询优化方法。
背景技术
大数据实时查询是重要的大数据技术,现有的大数据查询系统有Google Dremel、Cloudera Impala、Berkeley Shark、Apache Drill等。大数据实时查询一般采用分布式计算架构,由于弱化了对事务等功能的支持,所以相对于关系型数据库集群具有更高的可扩展性。同时由于大数据实时查询能很好的满足实时查询的用户需求,因此其在互联网、智慧城市等领域有广阔的应用空间。
查询优化是数据库管理系统的重要组成部分,查询优化方法一般由代价模型和优化方法两部分组成。一般的代价模型需要考虑I/O、数据传输代价及具体连接算法运行特性等因素,但实际的查询优化中为了简化模型的构建通常只是考虑单个因素,现有的代价模型如对Hive查询性能进行优化工作时采用的基于连接结果和最小化的代价模型,其能够很好的应用于Hive数据仓库并一定程度的优化其查询效率。但是其只考虑连接中间结果读写产生的I/O代价这一因素,因此存在很大的系统局限性,这样便很难保证产生高效的执行计划,从而影响查询的实时响应能力。
现有的优化方法可以分为两类:一类是获得最优查询计划的方法;如基于记忆的优化方法及基于动态规划的优化方法。基于记忆的优化方法,其工作原理是以一种自顶向下的方式生成计划,如自顶向下分区搜索方法,该方法的核心是利用最小割集以一种自顶向下的形式生成连通子图,由于在枚举过程中结合了一些搜索策略如分支限界进行剪枝,故其算法的执行效率有很大程度的提升。但是其只能处理简单的二值连接谓词及内连接,而不能处理外连接以及反连接。基于动态规划的优化方法,由于能够有效的处理复杂的连接谓词,所以能解决自顶向下优化方法存在的问题,但是一般动态规划方法存在搜索空间会随着关系数的增加而指数增长的问题。
另一类是获得次优查询计划的方法,如基于遗传算法的优化方法。基于遗传算法的方法,其工作原理是从一组随机产生的种群开始搜索,种群中的每个个体都是问题的一个解,其根据适应值的大小选择部分后代同时淘汰部分后代,算法不断迭代直到收敛,该方法虽然较高效,但找到的解一般是次优解,同时存在过早收敛等问题。
发明内容
本发明为克服上述的不足之处,目的在于提供一种基于超图和动态规划的大数据实时查询优化方法,通过采用基于最佳代价的连接顺序优化方法来提升查询效率,在大数据环境下满足用户的实时查询需求。
本发明是通过以下技术方案达到上述目的:一种基于超图和动态规划的大数据实时查询优化方法,包括:最佳代价模型构建过程和执行计划空间搜索过程,最佳代价模型构建过程包括以下步骤:
a)分析元数据服务器中表数据,构建生成细粒度的列级统计信息直方图,并将其存储在元数据服务器中;
b)利用统计信息,构建相应最佳代价模型供生成计划时使用;最佳代价模型如下式所示:
其中,i∈[1,n-1],n代表参与连接的关系数,Ti代表已经计算出代价的一棵子树,Rj表示可以与Ti能够进行连接且不在Ti子树中的一个关系;表示左右子树连接后得到的中间结果,取其最大值作为连接顺序优化算法的代价模型;
执行计划空间搜索过程包括以下步骤:
1)解析数据库查询语句,将结果保存于查询超图G=(V,E)数据结构中,查询超图G=(V,E)满足两个条件:第一,V是一个非空的顶点集,即所有参与连接的关系的集合;第二,E是一组超边集合,即代表关系间连接操作的集合,其中超边是一个无序对(u,v),u和v是属于顶点集V的非空子集,并且
2)为单个关系初始化设置执行计划,将其保存在相应动态计划表中,其它元素值全部置为
3)定义好计算枚举策略:每个连通子图及连通补集对只被生成一次;
4)通过计算领域以枚举连通子图;
5)为每个连通子图找到合适的连通补集;
6)为每对连通子图和连通补集构成的执行计划计算其代价,依照代价模型更新其相应执行计划;
7)重复执行步骤4)——步骤7),直到整个左线性树构成的执行计划空间搜索完毕,生成执行计划树。
本发明的有益效果在于:
1)针对执行计划搜索空间过大的问题,构建满足左线性树的搜索策略,大大降低了搜索的空间,提升了基于超图和动态规划算法运行的效率;
2)构建满足大数据环境的最佳代价模型,综合考虑了大数据环境下传输代价及哈希连接算法运行特性等因素,确保了优化方法生成的计划是最佳的。
附图说明
图1:基于超图和动态规划的大数据实时查询优化方法查询优化总体流程图;
图2:连通子图枚举流程图;
图3:执行计划生成流程图。
具体实施方式
本发明提出了基于超图和动态规划的大数据实时查询优化方法,该查询优化方法的总体流程如图1所示,以查询超图为输入参数,通过元数据服务器获取相关表统计信息,并以此构建代价模型;其利用左线性树构建执行计划,而不是使用浓密树构建执行计划,动态规划算法迭代中无需扩展右子树,从而避免不必要的连接顺序空间搜索带来的巨大开销,每次都将一个单一关系作为右子树,与已生成的左子树进行连接,将其连接构成的连接顺序树作为下一次扩展连接顺序的左子树。生成计划树的过程中,选择满足构建的代价模型的最佳计划,直至整个计划树生成完毕,即找到了最佳的连接顺序,最后生成执行计划树。
本发明提出的方法分为最佳代价模型构建过程和执行计划空间搜索过程,最佳代价模型构建过程的主要步骤包括:
1)元数据服务器通过分析表相关统计信息,生成直方图;
本步骤主要通过统计分析表相关的聚合信息,以此构建生成细粒度的列级统计信息直方图,并将其存储在元数据服务器中。
2)利用相关统计信息,构建相应最佳的代价模型供生成计划时使用。
为了得到最佳的连接顺序,不采用只考虑由中间结果写入或读取所带来的I/O开销这一因素的传统代价模型,如式(1)所示。式中n代表参与连接的关系数,Ti-1代表左子树,Ti代表右子树。
而是采用本发明提出的代价模型,其综合考虑大数据环境下数据传输代价及哈希连接算法执行等特点,并根据已生成的统计信息直方图,构建适用于大数据实时查询系统的代价模型,作为基于超图和动态规划获得最佳计划的动态规划状态转移方程,其具体模型如式(2)所示。
其中,i∈[1,n-1],n代表参与连接的关系数,Ti代表已经计算出代价的一棵子树,Rj表示可以与Ti能够进行连接且不在Ti子树中的一个关系。 表示左右子树连接后得到的中间结果,具体实现中取其最大值作为连接顺序优化算法的代价模型。
执行计划空间搜索过程包括以下步骤:
1)解析数据库查询语句,将分析后的结果保存于查询超图G=(V,E)数据结构中。其中,满足以下两个条件的图称为查询超图G=(V,E):第一,V是一个非空的顶点集,即所有参与连接的关系的集合;第二,E是一组超边集合,即代表关系间连接操作的集合,其中超边是一个无序对(u,v),u和v是属于顶点集V的非空子集,并且u∩v=。对于一条超边(u,v)若满足|u|=|v|=1时,则该超边就是简单的边,当超图所有的超边都是简单的边时,则该超图也是简单图,即普通的无向图。
2)为单个关系初始化设置执行计划,将其保存在相应动态规划表中,其它元素值全部置为;
3)定义好计算枚举策略:每个连通子图及连通补集对只被生成一次。为了确保整个枚举过程中不会出现重复的情况,所有的关系需要按照一定的策略排好序,即每个(连通子图,连通补集)对只被生成一次,与其对称的在枚举过程中不会被再次生成。其中,连通子图G’=(V’,E’)中的同时E’构成的超边顶点均属于V’;对于一个查询超图G,假设V’和V”是V的两个子集,并且有当超边(u,v)∈E同时则V”就是V’一个连通补集。
4)通过计算领域以枚举连通子图,如图2所示。
a)对于给定的连通子集V’及排斥集X,计算V’的领域。其中,V’的领域为可以从V’可达(可达:即存在一条超边 的领域)但不在排斥集X中所有的关系集构成,排斥集中的关系被排除在领域计算之外;
b)对于所有在领域中的关系N,且N≠,如果V’∪N在动态规划表中的值≠,则将V’∪N作为新扩展出的连通子图;否则继续循环判断直到遍历完;
c)对于所有在领域中的关系N,且N≠,则继续以V’∪N作为需要扩展的连通子集、X∪V’的领域作为排斥集继续重复a)~c)过程进一步枚举连图子图,直到遍历结束。
5)为每个连通子图找到合适的连通补集。
a)对于给定的连通子图,其顶点集为V’,找到其相应的排斥集X;
b)计算(V’,X)相应的领域;
c)对于其领域中的每个关系v,令V”={v},如果存在超边(u,v)∈E,并有那么则以(V’,V”)对生成相应的执行计划。这里令V”为单元素集合,而不继续扩展V”,这样确保生成的执行计划满足左线性树的特征,其搜索空间为n!,避免整个浓密树构成的计划空间过大的问题,浓密树构成的计划空间大小如式(3)所示,从而建立在左线性树之上的搜索策略能够极大的提升算法执行的效率,从算法层次上满足实时查询的需求。
6)为每对连通子图和连通补集构成的执行计划计算其代价,依照代价模型更新其相应执行计划;
7)重复执行步骤4)——步骤7),直到整个左线性树构成的执行计划空间搜索完毕,生成执行计划树。
该过程的执行流程如图3所示:
a)对于给定连通子集V’及相应的连通补集V”,生成包含两者的集合S=V’∪V”,并计算S中所有的连接谓词p,即在E中的超边;
b)从动态规划表中分别获取与V’和V”相关的执行计划plan’、plan”;
c)根据连接谓词p,生成S的新执行计划
d)根据最佳代价模型,计算新的执行计划所需的代价,并与动态规划表中的代价比较,如果原来S相应的代价为或没有新执行计划好则更新,反之则不变;
5)重复2~4等步骤,直到整个左线性树构成的计划空间搜索完毕。
以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。
Claims (1)
1.一种基于超图和动态规划的大数据实时查询优化方法,其特征在于包括:最佳代价模型构建过程和执行计划空间搜索过程,最佳代价模型构建过程包括以下步骤:
a)分析元数据服务器中表数据,构建生成细粒度的列级统计信息直方图,并将其存储在元数据服务器中;
b)利用统计信息,构建相应最佳代价模型供生成计划时使用;最佳代价模型如下式所示:
其中,i∈[1,n-1],n代表参与连接的关系数,Ti代表已经计算出代价的一棵子树,Ri表示可以与Ti能够进行连接且不在Ti子树中的一个关系; 表示左右子树连接后得到的中间结果,取其最大值作为连接顺序优化算法的代价模型;
执行计划空间搜索过程包括以下步骤:
1)解析数据库查询语句,将结果保存于查询超图G=(V,E)数据结构中,查询超图G=(V,E)满足两个条件:第一,V是一个非空的顶点集,即所有参与连接的关系的集合;第二,E是一组超边集合,即代表关系间连接操作的集合,其中超边是一个无序对(u,v),u和v是属于顶点集V的非空子集,并且u∩v=;
2)为单个关系初始化设置执行计划,将其保存在相应动态计划表中,其它元素值全部置为;
3)定义好计算枚举策略:每个连通子图及连通补集对只被生成一次;
4)通过计算领域以枚举连通子图;
5)为每个连通子图找到合适的连通补集;
6)为每对连通子图和连通补集构成的执行计划计算其代价,依照代价模型更新其相应执行计划;
7)重复执行步骤4)——步骤7),直到整个左线性树构成的执行计划空间搜索完毕,生成执行计划树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310716665.8A CN103793467B (zh) | 2013-09-10 | 2013-12-16 | 一种基于超图和动态规划的大数据实时查询优化方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013104210019 | 2013-09-10 | ||
CN201310421001 | 2013-09-10 | ||
CN201310421001.9 | 2013-09-10 | ||
CN201310716665.8A CN103793467B (zh) | 2013-09-10 | 2013-12-16 | 一种基于超图和动态规划的大数据实时查询优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793467A CN103793467A (zh) | 2014-05-14 |
CN103793467B true CN103793467B (zh) | 2017-01-25 |
Family
ID=50669133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310716665.8A Active CN103793467B (zh) | 2013-09-10 | 2013-12-16 | 一种基于超图和动态规划的大数据实时查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103793467B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504018B (zh) * | 2014-12-11 | 2017-09-08 | 浙江大学 | 基于浓密树和自顶向下的大数据实时查询优化方法 |
US10496643B2 (en) | 2016-02-08 | 2019-12-03 | Microsoft Technology Licensing, Llc | Controlling approximations of queries |
CN107102995B (zh) | 2016-02-19 | 2020-02-21 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
CN108509453B (zh) * | 2017-02-27 | 2021-02-09 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN109284411B (zh) * | 2017-07-19 | 2022-03-18 | 哈尔滨工业大学深圳研究生院 | 一种基于有监督超图离散化图像二值编码方法 |
CN108388662A (zh) * | 2018-03-09 | 2018-08-10 | 重庆邮电大学 | 面向天文数据实时查询逻辑计划建立动态优化算法 |
CN109033204B (zh) * | 2018-06-29 | 2021-10-08 | 浙江大学 | 一种基于万维网的层次积分直方图可视查询方法 |
CN109951468B (zh) * | 2019-03-12 | 2020-08-28 | 清华大学 | 一种基于f值优化的网络攻击检测方法与系统 |
CN111563101B (zh) * | 2020-07-11 | 2020-12-29 | 阿里云计算有限公司 | 执行计划优化方法、装置、设备及存储介质 |
CN114661930B (zh) * | 2022-05-24 | 2022-08-26 | 深圳顶匠科技有限公司 | 基于可拓展标记语言的位图处理方法、装置及设备 |
CN116501743B (zh) * | 2023-06-21 | 2023-11-24 | 中国电信股份有限公司 | 联表代价生成、重排方法和数据处理方法及装置、系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739398A (zh) * | 2008-11-11 | 2010-06-16 | 山东省标准化研究院 | 分布式数据库多连接查询优化算法 |
CN102081678A (zh) * | 2011-03-14 | 2011-06-01 | 华中科技大学 | 一种数据库查询中最优执行计划的搜索方法 |
CN102270232A (zh) * | 2011-07-21 | 2011-12-07 | 华中科技大学 | 一种存储优化的语义数据查询系统 |
-
2013
- 2013-12-16 CN CN201310716665.8A patent/CN103793467B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739398A (zh) * | 2008-11-11 | 2010-06-16 | 山东省标准化研究院 | 分布式数据库多连接查询优化算法 |
CN102081678A (zh) * | 2011-03-14 | 2011-06-01 | 华中科技大学 | 一种数据库查询中最优执行计划的搜索方法 |
CN102270232A (zh) * | 2011-07-21 | 2011-12-07 | 华中科技大学 | 一种存储优化的语义数据查询系统 |
Non-Patent Citations (2)
Title |
---|
Query optimization using column statistics in hive;Gruenheid A等;《ACM》;20111231;第97-105页 * |
浅谈分布式数据库系统查询优化;李英;《电脑知识与技术》;20100430;第790-792页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103793467A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793467B (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN107291807B (zh) | 一种基于图遍历的sparql查询优化方法 | |
CN103294831B (zh) | 列存储数据库中基于多维数组的分组聚集计算方法 | |
CN106021560B (zh) | 面向数据流的低时延内存b+树索引构建方法 | |
CN105630881B (zh) | 一种rdf的数据存储方法和查询方法 | |
CN104137095B (zh) | 用于演进分析的系统 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
JP2006012173A5 (zh) | ||
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN102945283B (zh) | 一种语义Web服务组合方法 | |
CN102722531A (zh) | 一种云环境中基于分片位图索引的查询方法 | |
CN107491476B (zh) | 一种适用于多种大数据管理系统的数据模型转换及查询分析方法 | |
CN110909111A (zh) | 基于知识图谱rdf数据特征的分布式存储与索引方法 | |
CN107491508B (zh) | 一种基于循环神经网络的数据库查询时间预测方法 | |
CN105654187A (zh) | 控制系统中点定位方法之网格二叉树法 | |
CN116244333A (zh) | 一种基于代价因子校准的数据库查询性能预测方法及系统 | |
CN105512046B (zh) | 基于粒子群优化算法的Android自动化测试方法 | |
Das et al. | Plan before you execute: A cost-based query optimizer for attributed graph databases | |
CN103377236B (zh) | 一种用于分布式数据库的连接查询方法及系统 | |
CN110457490A (zh) | 一种基于领域本体的语义工作流索引构造及检索方法 | |
CN104462610B (zh) | 结合本体的分布式rdf存储与查询优化方法 | |
CN108197186B (zh) | 一种应用于社交网络中的动态图匹配查询方法 | |
CN106970840A (zh) | 一种结合任务调度的软硬件划分方法 | |
Zhang et al. | Skyline queries with constraints: Integrating skyline and traditional query operators | |
CN109241024A (zh) | 一种业务过程模型的特征提取方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |