亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法及裝置與流程

文檔序號:12121930閱讀:859來源:國知局
一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法及裝置與流程

本發(fā)明屬于數(shù)據(jù)庫技術(shù)領(lǐng)域,尤其是涉及一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法及裝置。



背景技術(shù):

分布式數(shù)據(jù)庫是指利用高速計算機(jī)網(wǎng)絡(luò)將物理上分散的多個數(shù)據(jù)存儲單元連接起來組成一個邏輯上統(tǒng)一的數(shù)據(jù)庫。分布式數(shù)據(jù)庫的基本思想是將原來集中式數(shù)據(jù)庫中的數(shù)據(jù)分散存儲到多個通過網(wǎng)絡(luò)連接的數(shù)據(jù)存儲節(jié)點上,以獲取更大的存儲容量和更高的并發(fā)訪問量。近年來,隨著數(shù)據(jù)量的高速增長,分布式數(shù)據(jù)庫技術(shù)也得到了快速的發(fā)展,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫開始從集中式模型向分布式架構(gòu)發(fā)展,基于關(guān)系型的分布式數(shù)據(jù)庫在保留了傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)模型和基本特征下,從集中式存儲走向分布式存儲,從集中式計算走向分布式計算。

分布式數(shù)據(jù)庫集群中,為了獲得更大的存儲容量和更高的并發(fā)訪問量,通常會將數(shù)據(jù)分散到各個節(jié)點存儲,分布方式一般是按照特定的字段進(jìn)行hash分布建表,當(dāng)涉及hash鍵的關(guān)聯(lián)、分組等操作時,只需在本地進(jìn)行,相當(dāng)于獲得了數(shù)倍于單個節(jié)點的計算能力。但是當(dāng)一些sql操作涉及到非hash字段時,如非hash鍵關(guān)聯(lián)、非hash鍵group by等操作,會對原表數(shù)據(jù)或中間結(jié)果進(jìn)行動態(tài)重分布,即把一個節(jié)點上的數(shù)據(jù)按一定的規(guī)則(如按關(guān)聯(lián)字段hash分布)分發(fā)到其他節(jié)點,這樣就能正確的完成分布式執(zhí)行計劃,隨之而來的是通訊開銷。

隨著數(shù)據(jù)庫處理的數(shù)據(jù)量越來越大,數(shù)據(jù)庫集群的節(jié)點數(shù)越來越多,同時數(shù)據(jù)庫支持的業(yè)務(wù)邏輯也越來越復(fù)雜,導(dǎo)致動態(tài)重分布的頻率和需要處理的數(shù)據(jù)量都快速增加,大量增加了各節(jié)點的網(wǎng)絡(luò)帶寬,增加了通訊開銷;同時由于動態(tài)重分布過程是各節(jié)點間交叉連接,當(dāng)節(jié)點數(shù)很多時,每條sql都會在同一節(jié)點創(chuàng)建大量的連接,在并行情況下,連接數(shù)會更多,資源耗費的情況非常嚴(yán)重。



技術(shù)實現(xiàn)要素:

本發(fā)明提供了一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法及裝置,以解決現(xiàn)有技術(shù)中MPP數(shù)據(jù)庫動態(tài)重分布資源耗費過多的技術(shù)問題。

一方面,本發(fā)明實施例提供了一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法,包括:

在每個節(jié)點劃分緩存空間,所述緩存空間用于緩存重分布數(shù)據(jù);

判斷所述緩存空間是否包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù),在所述緩存空間包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,使用所述緩存空間中的所述數(shù)據(jù)。

進(jìn)一步的,所述方法還包括:

在所述緩存空間不包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,重新構(gòu)建動態(tài)分布拉表。

進(jìn)一步的,所述方法還包括:

根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重;

在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)。

更進(jìn)一步的,所述在每個節(jié)點劃分緩存空間,包括:

根據(jù)重分布數(shù)據(jù)的表名和\或庫名對所述數(shù)據(jù)進(jìn)行標(biāo)識,并記錄所述數(shù)據(jù)占用空間的大小。

另一方面,本發(fā)明實施例還提供了一種MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的裝置,包括:

劃分單元,用于在每個節(jié)點劃分緩存空間,所述緩存空間用于緩存重分布數(shù)據(jù);

判斷單元,用于判斷所述緩存空間是否包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù),在所述緩存空間包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,使用所述緩存空間中的所述數(shù)據(jù)。

進(jìn)一步的,所述裝置還包括:

構(gòu)建單元,用于在所述緩存空間不包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,重新構(gòu)建動態(tài)分布拉表。

進(jìn)一步的,所述裝置還包括:

權(quán)重確定單元,用于根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重;

刪除單元,用于在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)。

更進(jìn)一步的,所述劃分單元用于:

根據(jù)重分布數(shù)據(jù)的表名和\或庫名對所述數(shù)據(jù)進(jìn)行標(biāo)識,并記錄所述數(shù)據(jù)占用空間的大小。

本發(fā)明實施例提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法及裝置,通過在本地設(shè)置緩存,并在重分布時優(yōu)先使用緩存中的數(shù)據(jù)。減少MPP數(shù)據(jù)庫集群節(jié)點間的通訊,提升本地化運算比例,從而提升集群整體性能。

附圖說明

為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明實施例一提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法的流程示意圖;

圖2是本發(fā)明實施例一提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法中動態(tài)重分布示意圖;

圖3是本發(fā)明實施例二提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法的流程示意圖;

圖4是本發(fā)明實施例三提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

實施例一

圖1為本發(fā)明實施例一提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法的流程圖,本實施例可適用于對MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的情況,該方法可以由MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的裝置來執(zhí)行,該裝置可由軟件/硬件方式實現(xiàn),并可集成于MPP數(shù)據(jù)庫系統(tǒng)節(jié)點中。

參見圖1,所述的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法,包括:

S110,在每個節(jié)點劃分緩存空間,所述緩存空間用于緩存重分布數(shù)據(jù)。

大規(guī)模MPP數(shù)據(jù)庫集群處理的業(yè)務(wù)通常是不斷執(zhí)行的類似的sql,實際上是做重復(fù)的工作,需要處理的數(shù)據(jù)也基本相同,但每次都需要將數(shù)據(jù)重新動態(tài)重分布一次。示例性的,在各節(jié)點上設(shè)定一定大小的物理空間,將動態(tài)重分布的數(shù)據(jù)緩存到這塊空間上。示例性的,可以設(shè)定一塊可配的物理空間大小,動態(tài)重分布的同時將數(shù)據(jù)緩存到本地磁盤,并根據(jù)表名、庫名等信息進(jìn)行特殊標(biāo)識

S120,判斷所述緩存空間是否包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù),在所述緩存空間包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,使用所述緩存空間中的所述數(shù)據(jù)。

圖2是本發(fā)明實施例一提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法中動態(tài)重分布示意圖,參見圖2,示例性的,執(zhí)行如下sql語句:

sql:select*from t1,t2where t1.no_hash_col=t2.no_hash_col;在有動態(tài)重分布的需求時,去緩沖區(qū)查看是否有需要的數(shù)據(jù),如果有,則直接使用緩沖區(qū)里面的數(shù)據(jù)。

本實施例通過在本地設(shè)置緩存,并在重分布時優(yōu)先使用緩存中的數(shù)據(jù)。減少MPP數(shù)據(jù)庫集群節(jié)點間的通訊,提升本地化運算比例,從而提升集群整體性能。

在本實施例的一個優(yōu)選實施方式中,所述方法還包括:在所述緩存空間不包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,重新構(gòu)建動態(tài)分布拉表。示例性的,執(zhí)行sql語句:select*from t2,t3where t2.no_hash_col=t3.no_hash_col;,因為t2的no_hash_col有緩存,因此直接使用緩存結(jié)果,不需要動態(tài)重分布操作;而t2的no_hash_col沒有緩存,需要做動態(tài)重分布操作。

實施例二

圖3是本發(fā)明實施例二提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法的流程示意圖,本發(fā)明實施例以上述實施例為基礎(chǔ),進(jìn)一步的,增加如下步驟:根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重;在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)。

參見圖3,所述MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的方法,包括:

S210,在每個節(jié)點劃分緩存空間,所述緩存空間用于緩存重分布數(shù)據(jù)。

S220,根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重。

示例性的,可以根據(jù)數(shù)據(jù)特點計算一個權(quán)值,同時將占用的空間大小記錄下來?;蛘咭部砂凑找欢ǖ乃惴?,根據(jù)統(tǒng)計信息,將使用概率比較低的緩存數(shù)據(jù)設(shè)定較低的權(quán)值。用戶也可以手動控制提高某些數(shù)據(jù)的緩存優(yōu)先級,降低某些數(shù)據(jù)的緩存優(yōu)先級,已達(dá)到更好的優(yōu)化效果。

S230,在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)。

當(dāng)緩存空間不足時,根據(jù)權(quán)值去做緩存數(shù)據(jù)的換入換出,優(yōu)先換出權(quán)值低的緩存數(shù)據(jù);同時設(shè)置命令可以手動緩沖指定中間結(jié)果,手動刪除指定中間結(jié)果。

S240,判斷所述緩存空間是否包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù),在所述緩存空間包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,使用所述緩存空間中的所述數(shù)據(jù)。

本實施例通過增加如下步驟:根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重;在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)??梢栽跀?shù)據(jù)量超過空間大小時,將使用概率比較低的緩存數(shù)據(jù)清除;可以動態(tài)的調(diào)整緩存數(shù)據(jù),以提高動態(tài)重分布數(shù)據(jù)的命中率。

實施例三

圖4是本發(fā)明實施例三提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的裝置的結(jié)構(gòu)示意圖,參見圖4,所述裝置包括:

劃分單元310,用于在每個節(jié)點劃分緩存空間,所述緩存空間用于緩存重分布數(shù)據(jù);

判斷單元320,用于判斷所述緩存空間是否包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù),在所述緩存空間包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,使用所述緩存空間中的所述數(shù)據(jù)。

本實施例提供的MPP數(shù)據(jù)庫數(shù)據(jù)動態(tài)重分布的裝置,通過在本地設(shè)置緩存,并在重分布時優(yōu)先使用緩存中的數(shù)據(jù)。減少MPP數(shù)據(jù)庫集群節(jié)點間的通訊,提升本地化運算比例,從而提升集群整體性能。

進(jìn)一步的,所述裝置還包括:

構(gòu)建單元,用于在所述緩存空間不包括動態(tài)重分布需求對應(yīng)的數(shù)據(jù)時,重新構(gòu)建動態(tài)分布拉表。

進(jìn)一步的,所述裝置還包括:

權(quán)重確定單元,用于根據(jù)使用概率確定所述重分布數(shù)據(jù)的權(quán)重;

刪除單元,用于在所述重分布數(shù)據(jù)大于所述緩存空間時,按照所述權(quán)重刪除重分布數(shù)據(jù)。

更進(jìn)一步的,所述劃分單元用于:

根據(jù)重分布數(shù)據(jù)的表名和\或庫名對所述數(shù)據(jù)進(jìn)行標(biāo)識,并記錄所述數(shù)據(jù)占用空間的大小。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1