本發(fā)明涉及大數(shù)據(jù)查詢處理領(lǐng)域,具體涉及大數(shù)據(jù)平臺(tái)物化視圖的查詢處理方法及系統(tǒng)。
背景技術(shù):
隨著智能電網(wǎng)建設(shè)不斷深入與推進(jìn),電網(wǎng)運(yùn)行和設(shè)備監(jiān)測(cè)產(chǎn)生的數(shù)據(jù)量呈指數(shù)增長(zhǎng),電網(wǎng)企業(yè)所能儲(chǔ)存、處理的數(shù)據(jù)已經(jīng)達(dá)到前所未有的量級(jí),并且以超過(guò)摩爾定律的速度迅猛增加。大數(shù)據(jù)最核心的價(jià)值就是在于對(duì)于海量數(shù)據(jù)進(jìn)行存儲(chǔ)和分析。在商業(yè)環(huán)境下,數(shù)據(jù)處理服務(wù)提供商將大數(shù)據(jù)處理包裝成服務(wù),出售給用戶。隨著大數(shù)據(jù)商業(yè)化應(yīng)用的發(fā)展,其數(shù)據(jù)處理出現(xiàn)了以下特征:
1)大數(shù)據(jù)平臺(tái)用戶數(shù)量巨大。大數(shù)據(jù)服務(wù)提供商希望為更多的客戶服務(wù),以獲取更多的商業(yè)利潤(rùn)。
2)用戶對(duì)大數(shù)據(jù)分析處理的性能要求呈現(xiàn)多樣化特點(diǎn)。有的用戶實(shí)時(shí)化分析需求多一些,而有的用戶對(duì)查詢的返回時(shí)間不是特別在意。對(duì)于一些實(shí)時(shí)的數(shù)據(jù)分析需求,用戶對(duì)處理的性能及返回的時(shí)間有所要求。通常的做法是,用戶與大數(shù)據(jù)服務(wù)提供商簽訂一個(gè)關(guān)于返回時(shí)間的協(xié)定。返回時(shí)間越早,服務(wù)提供商的收益越高;反之,返回時(shí)間越遲,收益越低,甚至需要支持一定的懲罰性的金額。
3)大數(shù)據(jù)平臺(tái)需要處理大量用戶發(fā)起的大量分析性查詢,因此其需要依賴云計(jì)算平臺(tái)完成各種數(shù)據(jù)及事務(wù)的處理。
大數(shù)據(jù)平臺(tái)能夠服務(wù)眾多用戶提供數(shù)據(jù)分析處理服務(wù)并為服務(wù)提供商帶來(lái)利潤(rùn)。然而,大數(shù)據(jù)平臺(tái)的分析查詢中,存在大量連接操作,這種操作比較費(fèi)時(shí)。將一部分常用的、關(guān)鍵的連接中間結(jié)果存儲(chǔ)到外存儲(chǔ)器中,可以使用查詢避免連接操作,從而達(dá)到縮短返回時(shí)間的目的。我們稱這種中間結(jié)果的數(shù)據(jù)為物化視圖。物化視圖占用存儲(chǔ)空間較大,雖然大數(shù)據(jù)平臺(tái)有較大的存儲(chǔ)空間,但不可能提供無(wú)限的物化視圖存儲(chǔ)空間。因此我們需要對(duì)各項(xiàng)視圖進(jìn)行選擇,將常用的、關(guān)鍵的視圖進(jìn)行物化。上述的大數(shù)據(jù)平臺(tái)是若干服務(wù)器組成的云計(jì)算環(huán)境,實(shí)質(zhì)為服務(wù)器集群。
在Share-Nothing的結(jié)構(gòu)云計(jì)算平臺(tái)中,每個(gè)計(jì)算節(jié)點(diǎn)都具備存儲(chǔ)功能,每個(gè)節(jié)點(diǎn)都需要保留一定存儲(chǔ)空間存儲(chǔ)物化視圖。選擇好的物化視圖需要放置到各節(jié)點(diǎn)中去。不同的放置方法,會(huì)對(duì)分析查詢有不同的優(yōu)化效果。因此本發(fā)明專利還提供一種物化視圖的放置方法。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)存在的不足,本發(fā)明公開了大數(shù)據(jù)平臺(tái)物化視圖的查詢處理方法及系統(tǒng),大數(shù)據(jù)平臺(tái)物化視圖的查詢處理方法包括物化視圖選擇方法、物化視圖放置方法。物化視圖的選擇方法是物化視圖放置方法的基礎(chǔ),物化視圖的選擇為物化視圖算法提供輸入標(biāo)的,即輸入需要放置的物化視圖集合,可以減少節(jié)點(diǎn)間的網(wǎng)絡(luò)數(shù)據(jù)傳輸,縮短處理時(shí)間。
為實(shí)現(xiàn)上述目的,本發(fā)明的具體方案如下:
大數(shù)據(jù)平臺(tái)物化視圖的查詢處理方法,包括:
物化視圖的選擇步驟:針對(duì)給定的查詢集合生成MVPP結(jié)構(gòu)圖,根據(jù)該結(jié)構(gòu)圖得到所有非葉節(jié)點(diǎn)的集合,計(jì)算該集合中每個(gè)非葉節(jié)點(diǎn)的價(jià)值,利用面向收益最大化的物化視圖貪心選擇算法獲得物化視圖集合;
物化視圖的放置步驟:針對(duì)物化視圖的選擇步驟獲得的物化視圖集合建立物化視圖關(guān)聯(lián)權(quán)重矩陣,計(jì)算矩陣中每個(gè)元素的值,將所有計(jì)算節(jié)點(diǎn)按物化存儲(chǔ)空間按大小降序排列,在所有計(jì)算節(jié)點(diǎn)中取物化存儲(chǔ)空間最大的節(jié)點(diǎn),獲得放置到該節(jié)點(diǎn)的物化視圖。
進(jìn)一步的,針對(duì)給定的查詢集合,利用MVPP算法利用生成MVPP結(jié)構(gòu)圖,通過(guò)有向無(wú)環(huán)圖的形式來(lái)表述針對(duì)查詢集的整體查詢處理策略。
進(jìn)一步的,在MVPP結(jié)構(gòu)圖中,用葉結(jié)點(diǎn)表示的是數(shù)據(jù)庫(kù)中的事實(shí)表,而根節(jié)點(diǎn)則表示的是基于事實(shí)表的查詢,所有非葉節(jié)點(diǎn)都可以作為物化視圖的選擇對(duì)象。
進(jìn)一步的,設(shè)E為MVPP結(jié)構(gòu)圖中所有非葉節(jié)點(diǎn)的集合,在MVPP結(jié)構(gòu)圖中,一個(gè)非葉節(jié)點(diǎn)用ej表示,每個(gè)非葉節(jié)點(diǎn)ej都對(duì)應(yīng)一個(gè)候選物化視圖,用mj表示ej非葉節(jié)點(diǎn)代表的候選物化視圖。
進(jìn)一步的,非葉節(jié)點(diǎn)ej的價(jià)值用υj表示,其計(jì)算方法為:
ti,j為當(dāng)ej對(duì)應(yīng)的候選物化視圖mj已經(jīng)物化時(shí)qi的返回時(shí)間,ti,j通過(guò)測(cè)試得到,Qj為可以依賴mj完成查詢處理的查詢集合,ai為初始收益,即一個(gè)查詢qi能夠立即返回的收益,bi為懲罰斜率,其代表隨時(shí)間流逝收益下降的速率,ti為一個(gè)查詢qi的返回時(shí)間。
進(jìn)一步的,面向收益最大化的物化視圖貪心選擇算法是基于價(jià)值化MVPP圖的選擇算法,其輸入是計(jì)算了每個(gè)非葉節(jié)點(diǎn)的價(jià)值的MVPP圖,輸出為一個(gè)物化視圖集合。
進(jìn)一步的,面向收益最大化的物化視圖貪心選擇算法的具體步驟為:
1)設(shè)F為一個(gè)物化視圖集合,并初始化為空;
2)計(jì)算取得E中υj/sj最大的非葉節(jié)點(diǎn)ej,其中sj為ej對(duì)應(yīng)候選物化視圖所占用的存儲(chǔ)空間大小,非葉節(jié)點(diǎn)ej的價(jià)值用υj表示;
3)將ej對(duì)應(yīng)的候選物化視圖加入F,即對(duì)mj進(jìn)行物化,形式化表達(dá)為:F←F∪mj,E←E-ej;
4)更新E中其他非葉節(jié)點(diǎn)的價(jià)值;
5)若F的物化視圖占用的存儲(chǔ)空間之和小于系統(tǒng)物化視圖總存儲(chǔ)空間S,則重復(fù)執(zhí)行第2)步;否則結(jié)束算法,F(xiàn)即為所求物化視圖的集合。
進(jìn)一步的,所述步驟4)中具體的更新操作步驟:
對(duì)可依賴mj執(zhí)行查詢集合Qj,對(duì)于Qj中每一個(gè)查詢qi執(zhí)行以下操作:qi返回時(shí)間ti更新為基于mj執(zhí)行查詢處理的返回時(shí)間;
由于物化mj后,會(huì)影響ej子孫非葉節(jié)點(diǎn)和祖先非葉節(jié)點(diǎn)的價(jià)值,根據(jù)非葉節(jié)點(diǎn)ej的價(jià)值用計(jì)算公式重新計(jì)算ej的子孫非葉節(jié)點(diǎn)與祖先非葉節(jié)點(diǎn)的價(jià)值。
進(jìn)一步的,物化視圖關(guān)聯(lián)權(quán)重矩陣H中,H有|F|行與|F|列,設(shè)hi,j為H的一個(gè)元素,那么hi,j則表示mi與mj兩個(gè)物化視圖的關(guān)聯(lián)權(quán)重,|F|要放置物化視圖的數(shù)量。
進(jìn)一步的,計(jì)算H中每個(gè)元素的值,其計(jì)算方法為:在上式中,bk是指qk收益函數(shù)中的懲罰斜率;Qi,j是指在Q中在查詢處理時(shí)需要同時(shí)訪問(wèn)mi與mj兩個(gè)物化視圖的查詢的集合。
進(jìn)一步的,用N表示云中計(jì)算節(jié)點(diǎn)集合,|N|為計(jì)算節(jié)點(diǎn)的數(shù)量,設(shè)計(jì)算節(jié)點(diǎn)nk的物化視圖存儲(chǔ)空間大小為sk,在N取物化存儲(chǔ)空間最大的nk,通過(guò)計(jì)算獲得放置到該節(jié)點(diǎn)的物化視圖,計(jì)算方法為:
a)在H中,從|F|行選擇行和最大的物化視圖mi作為初始聚類中心;
b)將mi放置到nk;
c)在F依次取出與mi關(guān)系權(quán)重最大的mj,將mj放置到nk,直到放置到nk的物化視圖占用的存儲(chǔ)空間大于sk。
進(jìn)一步的,在獲得放置到該節(jié)點(diǎn)的物化視圖步驟之后,執(zhí)行N←N-nk步驟,然后重復(fù)執(zhí)行通過(guò)計(jì)算獲得放置到該節(jié)點(diǎn)的物化視圖的步驟,直至
大數(shù)據(jù)平臺(tái)物化視圖的查詢處理系統(tǒng),包括:
物化視圖的選擇模塊:針對(duì)給定的查詢集合生成MVPP結(jié)構(gòu)圖,根據(jù)該結(jié)構(gòu)圖得到所有非葉節(jié)點(diǎn)的集合,計(jì)算該集合中每個(gè)非葉節(jié)點(diǎn)的價(jià)值,利用面向收益最大化的物化視圖貪心選擇算法獲得物化視圖集合;
物化視圖的放置模塊:針對(duì)物化視圖的選擇步驟獲得的物化視圖集合建立物化視圖關(guān)聯(lián)權(quán)重矩陣,計(jì)算矩陣中每個(gè)元素的值,將所有計(jì)算節(jié)點(diǎn)按物化存儲(chǔ)空間按大小降序排列,在所有計(jì)算節(jié)點(diǎn)中取物化存儲(chǔ)空間最大的節(jié)點(diǎn),獲得放置到該節(jié)點(diǎn)的物化視圖。
本發(fā)明的有益效果:
本發(fā)明的給出一種大數(shù)據(jù)物化視圖選擇方法與云中物化視圖放置方法,最大化大數(shù)據(jù)平臺(tái)服務(wù)提供商的收益。
本發(fā)明量化了各物化視圖對(duì)收益的影響,為物化視圖的選擇提供準(zhǔn)確的支持。
本發(fā)明的物化視圖放置方法可以減少節(jié)點(diǎn)間的網(wǎng)絡(luò)數(shù)據(jù)傳輸,縮短處理時(shí)間。
本發(fā)明的物化視圖的選擇與放置能夠適應(yīng)大規(guī)模數(shù)據(jù)處理環(huán)境,并且易于在云計(jì)算環(huán)境中擴(kuò)展。
本發(fā)明可以適應(yīng)云中各節(jié)點(diǎn)物化存儲(chǔ)空間大小異構(gòu)的場(chǎng)景。
附圖說(shuō)明
圖1 MVPP結(jié)構(gòu)圖;
圖2本發(fā)明的大數(shù)據(jù)平臺(tái)物化視圖的選擇及放置流程圖。
具體實(shí)施方式:
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明:
如圖2所示,本發(fā)明專利的大數(shù)據(jù)平臺(tái)物化視圖的查詢處理方法具體實(shí)施主要分為兩個(gè)部分:物化視圖選擇方法及物化視圖放置方法。
一、物化視圖選擇方法:
1)因?yàn)槊總€(gè)周期的大數(shù)據(jù)查詢有所變化,因此周期的進(jìn)行物化視圖選擇。
2)在云計(jì)算節(jié)點(diǎn)中,任意選擇一個(gè)計(jì)算節(jié)點(diǎn)作為主節(jié)點(diǎn),其收集上一個(gè)周期的查詢集合。
3)將查詢集合生成MVPP結(jié)構(gòu)圖。全部查詢處理計(jì)劃(Multi-View Processing Plan,簡(jiǎn)記為MVPP),通過(guò)有向無(wú)環(huán)圖的形式來(lái)表述針對(duì)查詢集的整體查詢處理策略。圖1中用葉結(jié)點(diǎn)表示的是數(shù)據(jù)庫(kù)中的事實(shí)表,而根節(jié)點(diǎn)則表示的是基于事實(shí)表的查詢。所有非葉節(jié)點(diǎn)都可以作為物化視圖的選擇對(duì)象。
在圖1中,以Q1、Q2、Q3、Q4、Q5為例,呈現(xiàn)了他們生成的MVPP結(jié)構(gòu)圖。如查詢Q3是由表Item、Sale和Part連接而得,即(Item∞Sale)∞Part。當(dāng)查詢數(shù)量較多時(shí),這樣的可能的查詢計(jì)劃就越多,而且非葉節(jié)點(diǎn)會(huì)膨脹很快。因此只能對(duì)部分視圖進(jìn)行物化。將查詢集合生成MVPP結(jié)構(gòu)圖具體參見文獻(xiàn):J.Yang,K.Karlapalem,and Q.Li,"Algorithms for materialized view design in data warehousing environment,"in VLDB,1997,pp.136-145.
4)利用公式(3)計(jì)算每一個(gè)非葉節(jié)點(diǎn)的價(jià)值。
設(shè)E為MVPP結(jié)構(gòu)圖中所有非葉節(jié)點(diǎn)的集合。在MVPP中,一個(gè)非葉節(jié)點(diǎn)用ej表示。每個(gè)非葉節(jié)點(diǎn)ej都對(duì)應(yīng)一個(gè)候選物化視圖,用mj表示ej非葉節(jié)點(diǎn)代表的候選物化視圖。
以收益最大化為目標(biāo)的物化視圖的選擇與放置方法與查詢的收益函數(shù)密切相關(guān)。首先給出分析查詢的收益函數(shù)。一個(gè)查詢用qi表示,i是該查詢的編號(hào)。設(shè)一個(gè)查詢的收益函數(shù)為R,那么根據(jù)qi的參數(shù)計(jì)算R的方法為
R(ti)=ai-bi×ti (1)
在公式1中,ai為初始收益,即qi能夠立即返回的收益。bi為懲罰斜率,其代表隨時(shí)間流逝收益下降的速率。ti為qi的返回時(shí)間。
非葉節(jié)點(diǎn)ej的價(jià)值用υj表示,其計(jì)算方法為:
根據(jù)公式(1)進(jìn)一步推導(dǎo)為:
ti,j為當(dāng)ej對(duì)應(yīng)的候選物化視圖mj已經(jīng)物化時(shí)qi的返回時(shí)間,ti,j通過(guò)測(cè)試得到。Qj為可以依賴mj完成查詢處理的查詢集合。
5)利用面向收益最大化的物化視圖貪心選擇算法獲得物化視圖集合。面向收益最大化的物化視圖貪心選擇算法是本發(fā)明專利提出的一種基于價(jià)值化MVPP圖的選擇算法,其輸入是計(jì)算了每個(gè)非葉節(jié)點(diǎn)的價(jià)值的MVPP圖,輸出為一個(gè)物化視圖集合,其主要步驟如下:
(1)設(shè)F為一個(gè)物化視圖集合,并初始化為空。
(2)計(jì)算取得E中υj/sj最大的非葉節(jié)點(diǎn)ej,其中sj為ej對(duì)應(yīng)候選物化視圖所占用的存儲(chǔ)空間大小。
(3)將ej對(duì)應(yīng)的候選物化視圖加入F,即對(duì)mj進(jìn)行物化。也即:F←F∪mj,E←E-ej。
(4)更新E中其他非葉節(jié)點(diǎn)的價(jià)值。由于將mj物化后,一些查詢的返回時(shí)間會(huì)發(fā)生變化,從而導(dǎo)致某些非葉節(jié)點(diǎn)的價(jià)值會(huì)發(fā)生變化,因此需要價(jià)值更新操作。
以下更新操作的具體步驟:
a)對(duì)可依賴mj執(zhí)行查詢集合Qj,對(duì)于Qj中每一個(gè)查詢qi執(zhí)行以下操作。qi返回時(shí)間ti更新為基于mj執(zhí)行查詢處理的返回時(shí)間。
b)由于物化mj后,會(huì)影響的ej子孫非葉節(jié)點(diǎn)和祖先非葉節(jié)點(diǎn)的價(jià)值。根據(jù)公式(3)重新計(jì)算ej的子孫非葉節(jié)點(diǎn)與祖先非葉節(jié)點(diǎn)的價(jià)值。
(5)若F的物化視圖占用的存儲(chǔ)空間之和小于系統(tǒng)物化視圖總存儲(chǔ)空間S,則重復(fù)執(zhí)行第2)步;否則結(jié)束算法,F(xiàn)即為所求物化視圖的集合。
二、物化視圖放置方法
在進(jìn)行查詢處理時(shí),可能會(huì)用到兩個(gè)或者以上的物化視圖。當(dāng)這些查詢視圖分布在多個(gè)節(jié)點(diǎn)時(shí),會(huì)產(chǎn)生較大數(shù)據(jù)傳輸成本,從而降低查詢處理速率。因此本發(fā)明專利提出一種基于關(guān)聯(lián)權(quán)重的物化視圖放置算法。關(guān)聯(lián)權(quán)重是指兩個(gè)物化視圖被一個(gè)查詢同時(shí)訪問(wèn)的頻率值。
用N表示云中計(jì)算節(jié)點(diǎn)集合,|N|為計(jì)算節(jié)點(diǎn)的數(shù)量。設(shè)計(jì)算節(jié)點(diǎn)nk的物化視圖存儲(chǔ)空間大小為sk。基于關(guān)聯(lián)權(quán)重的物化視圖放置算法的主要步驟如下:
1)主計(jì)算節(jié)點(diǎn)負(fù)責(zé)分配物化視圖,其他計(jì)算節(jié)點(diǎn)負(fù)責(zé)接收與存儲(chǔ)物化視圖。
2)建立物化視圖關(guān)聯(lián)權(quán)重矩陣H。H有|F|行與|F|列,設(shè)hi,j為H的一個(gè)元素,那么hi,j則表示mi與mj兩個(gè)物化視圖的關(guān)聯(lián)權(quán)重。|F|要放置物化視圖的數(shù)量。
3)計(jì)算H中每個(gè)元素的值。如hi,j,其計(jì)算方法為:在上式中,bk是指qk收益函數(shù)(公式(1))中的懲罰斜率;Qi,j是指在Q中的一些查詢,這些查詢?cè)谔幚頃r(shí),需要同時(shí)訪問(wèn)mi與mj兩個(gè)物化視圖。
4)將所有計(jì)算節(jié)點(diǎn)按物化存儲(chǔ)空間按大小降序排列。
5)在N取物化存儲(chǔ)空間最大的nk,通過(guò)計(jì)算獲得放置到該節(jié)點(diǎn)的物化視圖。計(jì)算方法為:
i.在H中,從|F|行選擇行和最大的物化視圖mi作為初始聚類中心。
ii.將mi放置到nk。
iii.在F依次取出與mi關(guān)系權(quán)重最大的mj。將mj放置到nk,直到放置到nk的物化視圖占用的存儲(chǔ)空間大于sk。
6)N←N-nk,即將節(jié)點(diǎn)nk,從候選節(jié)點(diǎn)集合中刪除。
7)重復(fù)執(zhí)行第5)步,直到
本發(fā)明還公開了大數(shù)據(jù)平臺(tái)物化視圖的查詢處理系統(tǒng),包括:
物化視圖的選擇模塊:針對(duì)給定的查詢集合生成MVPP結(jié)構(gòu)圖,根據(jù)該結(jié)構(gòu)圖得到所有非葉節(jié)點(diǎn)的集合,計(jì)算該集合中每個(gè)非葉節(jié)點(diǎn)的價(jià)值,利用面向收益最大化的物化視圖貪心選擇算法獲得物化視圖集合;
物化視圖的放置模塊:針對(duì)物化視圖的選擇步驟獲得的物化視圖集合建立物化視圖關(guān)聯(lián)權(quán)重矩陣,計(jì)算矩陣中每個(gè)元素的值,將所有計(jì)算節(jié)點(diǎn)按物化存儲(chǔ)空間按大小降序排列,在所有計(jì)算節(jié)點(diǎn)中取物化存儲(chǔ)空間最大的節(jié)點(diǎn),獲得放置到該節(jié)點(diǎn)的物化視圖。
本發(fā)明的上述系統(tǒng)中物化視圖的選擇模塊所實(shí)現(xiàn)的功能依靠上述物化視圖的選擇方法的具體的步驟及算法來(lái)實(shí)現(xiàn),物化視圖的放置模塊的功能的實(shí)現(xiàn)依靠上述物化視圖的放置方法的具體的步驟及算法來(lái)實(shí)現(xiàn)。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。