一種基于超圖和動態(tài)規(guī)劃的大數(shù)據(jù)實時查詢優(yōu)化方法
【專利摘要】本發(fā)明涉及大數(shù)據(jù)實時查詢【技術領域】,尤其涉及一種基于超圖和動態(tài)規(guī)劃的大數(shù)據(jù)實時查詢優(yōu)化方法,該方法通過采用基于最佳代價的連接順序優(yōu)化方法來提升查詢效率,在大數(shù)據(jù)環(huán)境下滿足用戶的實時查詢需求。本發(fā)明的有益效果在于:針對執(zhí)行計劃搜索空間過大的問題,構建滿足左線性樹的搜索策略,大大降低了搜索的空間,提升了基于超圖和動態(tài)計劃算法運行的效率;構建滿足大數(shù)據(jù)環(huán)境的最佳代價模型,綜合考慮了大數(shù)據(jù)環(huán)境下傳輸代價及哈希連接算法運行特性等因素,確保了優(yōu)化方法生成的計劃是最佳的。
【專利說明】一種基于超圖和動態(tài)規(guī)劃的大數(shù)據(jù)實時查詢優(yōu)化方法
【技術領域】
[0001]本發(fā)明涉及大數(shù)據(jù)實時查詢【技術領域】,尤其涉及一種基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法。
【背景技術】
[0002]大數(shù)據(jù)實時查詢是重要的大數(shù)據(jù)技術,現(xiàn)有的大數(shù)據(jù)查詢系統(tǒng)有Google Dremel,Cloudera Impala、Berkeley Shark、Apache Drill等。大數(shù)據(jù)實時查詢一般采用分布式計算架構,由于弱化了對事務等功能的支持,所以相對于關系型數(shù)據(jù)庫集群具有更高的可擴展性。同時由于大數(shù)據(jù)實時查詢能很好的滿足實時查詢的用戶需求,因此其在互聯(lián)網(wǎng)、智慧城市等領域有廣闊的應用空間。
[0003]查詢優(yōu)化是數(shù)據(jù)庫管理系統(tǒng)的重要組成部分,查詢優(yōu)化方法一般由代價模型和優(yōu)化方法兩部分組成。一般的代價模型需要考慮I/o、數(shù)據(jù)傳輸代價及具體連接算法運行特性等因素,但實際的查詢優(yōu)化中為了簡化模型的構建通常只是考慮單個因素,現(xiàn)有的代價模型如對Hive查詢性能進行優(yōu)化工作時采用的基于連接結果和最小化的代價模型,其能夠很好的應用于Hive數(shù)據(jù)倉庫并一定程度的優(yōu)化其查詢效率。但是其只考慮連接中間結果讀寫產(chǎn)生的I/O代價這一因素,因此存在很大的系統(tǒng)局限性,這樣便很難保證產(chǎn)生高效的執(zhí)行計劃,從而影響查詢的實時響應能力。
[0004]現(xiàn)有的優(yōu)化方法可以分為兩類:一類是獲得最優(yōu)查詢計劃的方法;如基于記憶的優(yōu)化方法及基于動態(tài)計劃的優(yōu)化方法?;谟洃浀膬?yōu)化方法,其工作原理是以一種自頂向下的方式生成計劃,如自頂向下分區(qū)搜索方法,該方法的核心是利用最小割集以一種自頂向下的形式生成連通子圖,由于在枚舉過程中結合了一些搜索策略如分支限界進行剪枝,故其算法的執(zhí)行效率有很大程度的提升。但是其只能處理簡單的二值連接謂詞及內連接,而不能處理外連接以及反連接?;趧討B(tài)計劃的優(yōu)化方法,由于能夠有效的處理復雜的連接謂詞,所以能解決自頂向下優(yōu)化方法存在的問題,但是一般動態(tài)計劃方法存在搜索空間會隨著關系數(shù)的增加而指數(shù)增長的問題。
[0005]另一類是獲得次優(yōu)查詢計劃的方法,如基于遺傳算法的優(yōu)化方法。基于遺傳算法的方法,其工作原理是從一組隨機產(chǎn)生的種群開始搜索,種群中的每個個體都是問題的一個解,其根據(jù)適應值的大小選擇部分后代同時淘汰部分后代,算法不斷迭代直到收斂,該方法雖然較高效,但找到的解一般是次優(yōu)解,同時存在過早收斂等問題。
【發(fā)明內容】
[0006]本發(fā)明為克服上述的不足之處,目的在于提供一種基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法,通過采用基于最佳代價的連接順序優(yōu)化方法來提升查詢效率,在大數(shù)據(jù)環(huán)境下滿足用戶的實時查詢需求。
[0007]本發(fā)明是通過以下技術方案達到上述目的:
[0008]1、一種基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法,包括最佳代價模型構建過程和執(zhí)行計劃空間搜索過程,最佳代價模型構建兩過程包括以下步驟:
[0009]I)分析元數(shù)據(jù)服務器中表數(shù)據(jù),構建生成細粒度的列級統(tǒng)計信息直方圖,并將其存儲在元數(shù)據(jù)服務器中;
[0010]2)利用統(tǒng)計信息,構建相應最佳的代價模型供生成計劃時使用。
[0011]執(zhí)行計劃空間搜索過程包括以下步驟:
[0012]I)解析數(shù)據(jù)庫查詢語句,將結果保存于查詢超圖G= (V,E)數(shù)據(jù)結構中,查詢超圖G = (V,E)滿足兩個條件:第一,V是一個非空的頂點集,即所有參與連接的關系的集合;第二,E是一組超邊集合,即代表關系間連接操作的集合,其中超邊是一個無序對(U,V),u和V是屬于頂點集V的非空子集,并且uflv=0;
[0013]2)為單個關系初始化設置執(zhí)行計劃,將其保存在相應動態(tài)計劃表中,其它元素值全部置為0;
[0014]3)定義好計算枚舉策略:每個連通子圖及連通補集對只被生成一次;
[0015]4)通過計算領域以枚舉連通子圖;
[0016]5)為每個連通子圖找到合適的連通補集;
[0017]6)為每對連通子圖和連通補集構成的執(zhí)行計劃計算其代價,依照代價模型更新其相應執(zhí)行計劃;
[0018]7)重復執(zhí)行步驟4)——步驟7),直到整個左線性樹構成的執(zhí)行計劃空間搜索完畢,生成執(zhí)行計劃樹。
[0019]本發(fā)明的有益效果在于:
[0020]I)針對執(zhí)行計劃搜索空間過大的問題,構建滿足左線性樹的搜索策略,大大降低了搜索的空間,提升了基于超圖和動態(tài)計劃算法運行的效率;
[0021]2)構建滿足大數(shù)據(jù)環(huán)境的最佳代價模型,綜合考慮了大數(shù)據(jù)環(huán)境下傳輸代價及哈希連接算法運行特性等因素,確保了優(yōu)化方法生成的計劃是最佳的。
【專利附圖】
【附圖說明】
[0022]圖1:基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法查詢優(yōu)化總體流程圖;
[0023]圖2:連通子圖枚舉流程圖;
[0024]圖3:執(zhí)行計劃生成流程圖。
【具體實施方式】
[0025]本發(fā)明提出了基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法,該查詢優(yōu)化方法的總體流程如圖1所示,以查詢超圖為輸入?yún)?shù),通過元數(shù)據(jù)服務器獲取相關表統(tǒng)計信息,并以此構建代價模型;其利用左線性樹構建執(zhí)行計劃,而不是使用濃密樹構建執(zhí)行計劃,動態(tài)計劃算法迭代中無需擴展右子樹,從而避免不必要的連接順序空間搜索帶來的巨大開銷,每次都將一個單一關系作為右子樹,與已生成的左子樹進行連接,將其連接構成的連接順序樹作為下一次擴展連接順序的左子樹。生成計劃樹的過程中,選擇滿足構建的代價模型的最佳計劃,直至整個計劃樹生成完畢,即找到了最佳的連接順序,最后生成執(zhí)行計劃樹。
[0026]本發(fā)明提出的方法分為最佳代價模型構建過程和執(zhí)行計劃空間搜索過程,最佳代價模型構建過程的主要步驟包括:
[0027]I)元數(shù)據(jù)服務器通過分析表相關統(tǒng)計信息,生成直方圖;
[0028]本步驟主要通過統(tǒng)計分析表相關的聚合信息,以此構建生成細粒度的列級統(tǒng)計信息直方圖,并將其存儲在元數(shù)據(jù)服務器中。
[0029]2)利用相關統(tǒng)計信息,構建相應最佳的代價模型供生成計劃時使用。
[0030]為了得到最佳的連接順序,不采用只考慮由中間結果寫入或讀取所帶來的I/O開銷這一因素的傳統(tǒng)代價模型,如式(2)所示。式中η代表參與連接的關系數(shù),T1-1代表左子樹,Ti代表右子樹。
[0031]
【權利要求】
1.一種基于超圖和動態(tài)計劃的大數(shù)據(jù)實時查詢優(yōu)化方法,其特征在于包括:最佳代價模型構建過程和執(zhí)行計劃空間搜索過程,最佳代價模型構建過程包括以下步驟: 1)分析元數(shù)據(jù)服務器中表數(shù)據(jù),構建生成細粒度的列級統(tǒng)計信息直方圖,并將其存儲在元數(shù)據(jù)服務器中; 2)利用統(tǒng)計信息,構建相應最佳的代價模型供生成計劃時使用;執(zhí)行計劃空間搜索過程包括以下步驟: 1)解析數(shù)據(jù)庫查詢語句,將結果保存于查詢超圖G=(V,E)數(shù)據(jù)結構中,查詢超圖G =(V,E)滿足兩個條件:第一,V是一個非空的頂點集,即所有參與連接的關系的集合;第二,E是一組超邊集合,即代表關系間連接操作的集合,其中超邊是一個無序對(U,V),u和V是屬于頂點集V的非空子集,并且uAv=0; 2)為單個關系初始化設置執(zhí)行計劃,將其保存在相應動態(tài)計劃表中,其它元素值全部置為0; 3)定義好計算枚舉策略:每個連通子圖及連通補集對只被生成一次; 4)通過計算領域以枚舉連通子圖; 5)為每個連通子圖找到合適的連通補集; 6)為每對連通子圖和連通補集構成的執(zhí)行計劃計算其代價,依照代價模型更新其相應執(zhí)行計劃; 7)重復執(zhí)行步驟4)——步驟7),直到整個左線性樹構成的執(zhí)行計劃空間搜索完畢,生成執(zhí)行計劃樹。
【文檔編號】G06F17/30GK103793467SQ201310716665
【公開日】2014年5月14日 申請日期:2013年12月16日 優(yōu)先權日:2013年9月10日
【發(fā)明者】陳嶺, 周強, 吳勇, 閻孝文 申請人:浙江鴻程計算機系統(tǒng)有限公司