国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法

      文檔序號(hào):6439827閱讀:235來源:國(guó)知局
      專利名稱:一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種數(shù)據(jù)庫(kù)并行查詢方法,尤其涉及一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,屬于數(shù)據(jù)庫(kù)集群系統(tǒng)技術(shù)領(lǐng)域。
      背景技術(shù)
      隨著企業(yè)及政府信息化的不斷深入,數(shù)據(jù)庫(kù)應(yīng)用的復(fù)雜性日益增強(qiáng),迫切需要解決海量數(shù)據(jù)處理、海量數(shù)據(jù)存儲(chǔ)以及高可擴(kuò)展性的問題,以便為業(yè)務(wù)支撐系統(tǒng)提供良好的數(shù)據(jù)存儲(chǔ)、查詢服務(wù)。但是,傳統(tǒng)的單節(jié)點(diǎn)數(shù)據(jù)庫(kù)無(wú)法從根本上滿足上述需求。為此,人們借鑒計(jì)算機(jī)集群(將一組松散集成的計(jì)算機(jī)軟件和/或硬件連接起來高度緊密地協(xié)作完成計(jì)算工作)的技術(shù)理念,將多個(gè)數(shù)據(jù)庫(kù)連接起來組成數(shù)據(jù)庫(kù)集群系統(tǒng)。數(shù)據(jù)庫(kù)集群系統(tǒng)(DatabaseCluster System,簡(jiǎn)稱DBCS)將集群技術(shù)與數(shù)據(jù)庫(kù)系統(tǒng)相結(jié)合,是一組完整的、自治的計(jì)算處理單元(節(jié)點(diǎn)),每個(gè)節(jié)點(diǎn)均有獨(dú)自的CPU、內(nèi)存以及磁盤等硬件資源,運(yùn)行獨(dú)立的操作系統(tǒng)和自治的數(shù)據(jù)庫(kù)系統(tǒng)。各個(gè)節(jié)點(diǎn)通過高速專用網(wǎng)絡(luò)或者商業(yè)通用網(wǎng)絡(luò)互連,彼此協(xié)同計(jì)算,作為統(tǒng)一的數(shù)據(jù)庫(kù)系統(tǒng)提供并行事務(wù)處理服務(wù)。目前,在數(shù)據(jù)庫(kù)領(lǐng)域有兩種數(shù)據(jù)庫(kù)集群一種是無(wú)共享(SiareNothing)數(shù)據(jù)庫(kù)集群,另一種是共享磁盤Chare Disk)數(shù)據(jù)庫(kù)集群。隨著數(shù)據(jù)庫(kù)技術(shù)的發(fā)展和云計(jì)算技術(shù)的興起,無(wú)共享數(shù)據(jù)庫(kù)集群以其并行性好等優(yōu)點(diǎn),在云計(jì)算領(lǐng)域獲得廣泛應(yīng)用。數(shù)據(jù)庫(kù)查詢服務(wù)是這些數(shù)據(jù)庫(kù)集群系統(tǒng)中運(yùn)行頻率最高的應(yīng)用場(chǎng)景之一。在申請(qǐng)?zhí)枮?010102771 . 9的中國(guó)發(fā)明專利申請(qǐng)中,公開了一種分布式數(shù)據(jù)庫(kù)的并行查詢方法。 該方法中,首先設(shè)置查詢代理模塊,使查詢代理模塊直接接收外部模塊的查詢命令;其次設(shè)置多個(gè)與查詢代理模塊相關(guān)聯(lián)的查詢核心模塊,查詢核心模塊通過分解任務(wù)提供對(duì)數(shù)據(jù)多維的粒度查詢,提高整體的響應(yīng)速度,查詢核心模塊通過多線程技術(shù),多并發(fā)查詢數(shù)據(jù)庫(kù), 充分發(fā)揮商用數(shù)據(jù)庫(kù)的高吞吐量、高并發(fā)的特點(diǎn),同時(shí)對(duì)多線程進(jìn)行協(xié)調(diào)控制,查詢流程管理;第三,采用分批數(shù)據(jù)返回的形式并采用預(yù)讀機(jī)制,提高響應(yīng)速度。該方法通過對(duì)查詢?nèi)蝿?wù)“分而治之”的思想,由查詢核心模塊多并發(fā)發(fā)起查詢,優(yōu)先返回查詢速度快的粒度數(shù)據(jù), 從而達(dá)到了系統(tǒng)整體查詢性能顯著提升的效果,可以滿足絕大多數(shù)應(yīng)用系統(tǒng)快速查詢的需要。

      發(fā)明內(nèi)容
      本發(fā)明所要解決的技術(shù)問題在于提供一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述的技術(shù)方案一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于包括以下步驟第一步對(duì)查詢計(jì)劃進(jìn)行分割,得到由各數(shù)據(jù)節(jié)點(diǎn)分別執(zhí)行的切片;第二步各數(shù)據(jù)節(jié)點(diǎn)分別進(jìn)行切片處理,得到各數(shù)據(jù)節(jié)點(diǎn)的哈希連接;
      第三步各數(shù)據(jù)節(jié)點(diǎn)通過聚合匯總數(shù)據(jù)流動(dòng),在控制節(jié)點(diǎn)進(jìn)行哈希聚合,得到查詢
      結(jié)果集。其中較優(yōu)地,在所述第二步中,各數(shù)據(jù)節(jié)點(diǎn)的切片處理包括以下步驟步驟1) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集;步驟2)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟幻所述另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接?;蛘?,各數(shù)據(jù)節(jié)點(diǎn)的切片處理采用以下步驟步驟11) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集,并將第二表通過廣播數(shù)據(jù)流動(dòng)操作或者重新分布數(shù)據(jù)流動(dòng)操作,發(fā)送給其他數(shù)據(jù)節(jié)點(diǎn);步驟12)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,基于接收到的所述第二表和掃描的第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟1 所述另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接。其中較優(yōu)地,所述第三步中,各個(gè)數(shù)據(jù)節(jié)點(diǎn)對(duì)第二步中得到的所述哈希連接進(jìn)行哈希聚合和排序后,再通過所述聚合匯總數(shù)據(jù)流動(dòng)操作,發(fā)送給所述控制節(jié)點(diǎn)。本發(fā)明利用節(jié)點(diǎn)數(shù)據(jù)流動(dòng)操作,使查詢執(zhí)行過程中數(shù)據(jù)可以在各節(jié)點(diǎn)之間流動(dòng), 從而使每一個(gè)數(shù)據(jù)節(jié)點(diǎn)都獲得所需要的全部數(shù)據(jù),完成并發(fā)執(zhí)行查詢過程。因?yàn)閷?duì)查詢語(yǔ)句進(jìn)行并行查詢支持處理,所以大幅度提升了執(zhí)行速度。


      下面結(jié)合附圖和具體實(shí)施方式
      對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。圖1為本發(fā)明的具體實(shí)施例中,節(jié)點(diǎn)數(shù)據(jù)流動(dòng)的示意圖;圖2為本發(fā)明的具體實(shí)施例中,所使用的查詢計(jì)劃樹的示意圖。
      具體實(shí)施例方式在云計(jì)算環(huán)境下,無(wú)共享數(shù)據(jù)庫(kù)集群中的數(shù)據(jù)是分片存儲(chǔ)的,每一個(gè)數(shù)據(jù)節(jié)點(diǎn)只有一部分?jǐn)?shù)據(jù)。在某些SQL語(yǔ)句的執(zhí)行過程中,有些數(shù)據(jù)節(jié)點(diǎn)需要對(duì)包括其他節(jié)點(diǎn)數(shù)據(jù)在內(nèi)的全部數(shù)據(jù)進(jìn)行操作才能完成查詢計(jì)劃。為此,本發(fā)明通過在數(shù)據(jù)節(jié)點(diǎn)的查詢計(jì)劃樹的適當(dāng)?shù)胤讲迦牍?jié)點(diǎn)數(shù)據(jù)流動(dòng)操作,使查詢執(zhí)行過程中數(shù)據(jù)可以在各節(jié)點(diǎn)之間流動(dòng),從而使每一個(gè)數(shù)據(jù)節(jié)點(diǎn)都獲得所需要的全部數(shù)據(jù),完成并發(fā)執(zhí)行查詢過程。下面對(duì)此展開具體的說明。在作為本發(fā)明具體實(shí)施例的某個(gè)無(wú)共享數(shù)據(jù)庫(kù)集群中,包括控制節(jié)點(diǎn)和一到多個(gè)數(shù)據(jù)節(jié)點(diǎn)。每個(gè)數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)存儲(chǔ)數(shù)據(jù),接受訪問計(jì)劃并執(zhí)行,然后返回計(jì)劃處理結(jié)果。 用戶的數(shù)據(jù)首先以比較均勻的方式,例如采用哈希(hash,也稱散列)分布方式或者范圍 (range)分布方式等分別存放在每個(gè)數(shù)據(jù)節(jié)點(diǎn)上??刂乒?jié)點(diǎn)接受客戶端的查詢請(qǐng)求,分析請(qǐng)求并生成查詢計(jì)劃,分發(fā)查詢計(jì)劃給數(shù)據(jù)節(jié)點(diǎn),以使各數(shù)據(jù)節(jié)點(diǎn)并發(fā)執(zhí)行查詢。為了實(shí)現(xiàn)最大化的并行查詢,本發(fā)明將查詢計(jì)劃分割成不同的切片,用于各個(gè)數(shù)據(jù)節(jié)點(diǎn)執(zhí)行,并在切片中加入適當(dāng)?shù)臄?shù)據(jù)流動(dòng)操作,以使各個(gè)數(shù)據(jù)節(jié)點(diǎn)能夠得到所需的全部數(shù)據(jù)來執(zhí)行查詢。每個(gè)切片都是查詢計(jì)劃的一部分,并能夠獨(dú)立在各個(gè)數(shù)據(jù)節(jié)點(diǎn)上工作。 部分切片中包含的執(zhí)行內(nèi)容比傳統(tǒng)數(shù)據(jù)庫(kù)查詢過程多了一步操作數(shù)據(jù)流動(dòng)。對(duì)查詢計(jì)劃的分割切片是按照計(jì)劃中的數(shù)據(jù)流動(dòng)操作來做的。一個(gè)數(shù)據(jù)流動(dòng)操作涉及的雙方位于不同的切片中。前已述及,有些數(shù)據(jù)節(jié)點(diǎn)的查詢計(jì)劃必須要擁有其他數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)才能完成, 為此在該數(shù)據(jù)節(jié)點(diǎn)的查詢計(jì)劃切片的適當(dāng)?shù)胤讲迦牍?jié)點(diǎn)數(shù)據(jù)流動(dòng)操作,使查詢執(zhí)行過程中所需的數(shù)據(jù)在各節(jié)點(diǎn)間流動(dòng),如此每一個(gè)數(shù)據(jù)節(jié)點(diǎn)均可獲得所需要的全部數(shù)據(jù),同時(shí)也保證了查詢操作都是在每個(gè)數(shù)據(jù)節(jié)點(diǎn)上單獨(dú)執(zhí)行的。需要說明的是,并不是所有的查詢計(jì)劃都需要有數(shù)據(jù)流動(dòng)操作,例如查詢系統(tǒng)表信息等就不需要。在本發(fā)明中,數(shù)據(jù)流動(dòng)包括三種類型A 聚合匯總數(shù)據(jù)流動(dòng),是指每個(gè)數(shù)據(jù)節(jié)點(diǎn)將哈希連接(join)后的數(shù)據(jù)發(fā)到一個(gè)單節(jié)點(diǎn)上,通常是發(fā)到控制節(jié)點(diǎn)進(jìn)行合并。B 重新分布數(shù)據(jù)流動(dòng),即重分發(fā)數(shù)據(jù)流動(dòng),是指利用哈希連接(join)的列值的哈希值的不同,將篩選后的數(shù)據(jù)在其他數(shù)據(jù)節(jié)點(diǎn)上重新分布。C 廣播數(shù)據(jù)流動(dòng),即一個(gè)數(shù)據(jù)節(jié)點(diǎn)向多個(gè)節(jié)點(diǎn)廣播需要發(fā)送的數(shù)據(jù)。重新分布數(shù)據(jù)流動(dòng)是向特定少數(shù)數(shù)據(jù)節(jié)點(diǎn)發(fā)送數(shù)據(jù),廣播數(shù)據(jù)流動(dòng)是向多個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。之所以需要廣播數(shù)據(jù)流動(dòng)和重新分布數(shù)據(jù)流動(dòng),是因?yàn)槊總€(gè)數(shù)據(jù)節(jié)點(diǎn)上都只保存了一部分?jǐn)?shù)據(jù),出現(xiàn)不同數(shù)據(jù)節(jié)點(diǎn)之間做連接(join)操作的時(shí)候,需要將自己的數(shù)據(jù)向其他數(shù)據(jù)節(jié)點(diǎn)發(fā)送。有了這兩個(gè)操作,就能保證所有的連接(join)操作都是在每個(gè)數(shù)據(jù)節(jié)點(diǎn)上單獨(dú)執(zhí)行的。聚合匯總數(shù)據(jù)流動(dòng)是在每個(gè)數(shù)據(jù)節(jié)點(diǎn)單獨(dú)執(zhí)行好查詢計(jì)劃后,將數(shù)據(jù)發(fā)往控制節(jié)點(diǎn)上,然后由控制節(jié)點(diǎn)整合返回給客戶端。廣播數(shù)據(jù)流動(dòng)能夠保證所有情況下單個(gè)數(shù)據(jù)節(jié)點(diǎn)上查詢的數(shù)據(jù)完整性,有的情況下只需要做重新分布數(shù)據(jù)操作就能保證單個(gè)數(shù)據(jù)節(jié)點(diǎn)上查詢的數(shù)據(jù)完整性。在云計(jì)算環(huán)境下,無(wú)共享數(shù)據(jù)庫(kù)集群是一個(gè)分布式存儲(chǔ)的數(shù)據(jù)庫(kù)。對(duì)于用戶來講, 隨時(shí)需要從這些分布式存儲(chǔ)的數(shù)據(jù)庫(kù)中得到完整的數(shù)據(jù)。聚合匯總數(shù)據(jù)流動(dòng)就是為了保證返回給用戶的數(shù)據(jù)是完整的。而廣播數(shù)據(jù)流動(dòng)和重新分布數(shù)據(jù)流動(dòng)是為了在單個(gè)數(shù)據(jù)節(jié)點(diǎn)上查詢時(shí)保證數(shù)據(jù)的完整性?;谏鲜鰯?shù)據(jù)流動(dòng)的分類,在數(shù)據(jù)節(jié)點(diǎn)的查詢計(jì)劃樹的適當(dāng)?shù)胤讲迦牍?jié)點(diǎn)數(shù)據(jù)流動(dòng)操作也分為三類廣播數(shù)據(jù)操作、重新分布數(shù)據(jù)操作和聚合匯總數(shù)據(jù)操作。廣播數(shù)據(jù)流動(dòng)操作是一個(gè)節(jié)點(diǎn)向多個(gè)節(jié)點(diǎn)廣播需要發(fā)送的數(shù)據(jù)。重新分布數(shù)據(jù)流動(dòng)操作是利用連接(join)的列值(連接鍵)的哈希值的不同,將篩選后的數(shù)據(jù)在其他數(shù)據(jù)節(jié)點(diǎn)上重新分布。聚合匯總數(shù)據(jù)流動(dòng)操作是每個(gè)節(jié)點(diǎn)將執(zhí)行查詢后的數(shù)據(jù)發(fā)到一個(gè)單節(jié)點(diǎn)上,通常是發(fā)到控制節(jié)點(diǎn)進(jìn)行合并。下面結(jié)合圖1和圖2,以一個(gè)商業(yè)管理領(lǐng)域的訂單查詢?yōu)槔瑢?duì)本發(fā)明的具體實(shí)施步驟作進(jìn)一步說明。
      5
      在該訂單查詢示例中,假設(shè)如下查詢語(yǔ)句
      select
      c custkey, c—name, sum(l_price * l discount) as revenue, c_address,n_nation from
      customer, orders,lineitem,nation where
      ccustkey = ocustkey and l orderkey = o orderkey and o orderdate >= date '2010-08-02' and o orderdate < date '2011-08-02' + interval '2 month' and c nationkey = n nationkey group by
      c_custkey,c_name, c_phone,n_name,c_address order by
      revenue desc上述查詢語(yǔ)句的含義是最近2個(gè)月內(nèi),按消費(fèi)總額的多少,從高到低對(duì)顧客消費(fèi)總額進(jìn)行的統(tǒng)計(jì)排名。共涉及到4張表顧客(customer)表、訂單(orders)表、商品 (lineitem)表禾口國(guó)籍(nation)表。在無(wú)共享數(shù)據(jù)庫(kù)集群的環(huán)境下,假設(shè)以上4張表的數(shù)據(jù)都已經(jīng)比較均勻地分布在 η個(gè)數(shù)據(jù)節(jié)點(diǎn)上,查詢計(jì)劃被分割成與數(shù)據(jù)節(jié)點(diǎn)數(shù)η—致的切片,即η個(gè)切片。各個(gè)數(shù)據(jù)節(jié)點(diǎn)之間的數(shù)據(jù)流動(dòng)如圖1所示,相應(yīng)的查詢計(jì)劃樹如圖2所示。本發(fā)明所采用的并行查詢整體步驟是第一步對(duì)查詢計(jì)劃進(jìn)行分割,得到由各數(shù)據(jù)節(jié)點(diǎn)分別執(zhí)行的切片;第二步各數(shù)據(jù)節(jié)點(diǎn)分別進(jìn)行切片處理,得到各數(shù)據(jù)節(jié)點(diǎn)的哈希連接;第三步各數(shù)據(jù)節(jié)點(diǎn)通過聚合匯總數(shù)據(jù)流動(dòng),在控制節(jié)點(diǎn)進(jìn)行哈希聚合,得到查詢
      結(jié)果集。在第二步中各個(gè)數(shù)據(jù)節(jié)點(diǎn)的切片處理的具體步驟,如圖1所示,包括步驟1) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集;步驟2)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟幻所述另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接。通過步驟1)到步驟幻就得到了各數(shù)據(jù)節(jié)點(diǎn)的哈希連接,再進(jìn)行第三步得到結(jié)果集。如果存在一個(gè)數(shù)據(jù)節(jié)點(diǎn)的某個(gè)數(shù)據(jù)(假設(shè)是第二表)是多個(gè)數(shù)據(jù)節(jié)點(diǎn)都需要的, 那么就需要利用廣播數(shù)據(jù)流動(dòng)操作。如果存在一個(gè)數(shù)據(jù)節(jié)點(diǎn)的某個(gè)數(shù)據(jù)(假設(shè)是第二表) 是另一個(gè)數(shù)據(jù)節(jié)點(diǎn)需要的,那么就需要利用重新分布數(shù)據(jù)流動(dòng)操作。具體而言,前述步驟1)到步驟3)可以變更為步驟11) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集,并將第二表通過廣播數(shù)據(jù)流動(dòng)操作或者重新分布數(shù)據(jù)流動(dòng)操作,發(fā)送給其他數(shù)據(jù)節(jié)點(diǎn);步驟12)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,基于接收到的所述第二表和掃描的第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟13)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接。下面結(jié)合具體實(shí)施例,基于圖2進(jìn)行詳細(xì)說明步驟A.各個(gè)數(shù)據(jù)節(jié)點(diǎn)上同時(shí)掃描各自的國(guó)籍表數(shù)據(jù),將各數(shù)據(jù)節(jié)點(diǎn)上的國(guó)籍表數(shù)據(jù)向其他節(jié)點(diǎn)廣播,即廣播數(shù)據(jù)流動(dòng),使各個(gè)數(shù)據(jù)節(jié)點(diǎn)得到全部的國(guó)籍表數(shù)據(jù)。由于國(guó)籍表記錄條數(shù)不多,所以這一步執(zhí)行很快。在此,假設(shè)根據(jù)查詢要求而需將國(guó)籍表進(jìn)行廣播。步驟B.各個(gè)節(jié)點(diǎn)上同時(shí)掃描各自顧客數(shù)據(jù),并基于顧客數(shù)據(jù)和收到的國(guó)籍表數(shù)據(jù)的哈希表進(jìn)行哈希連接,生成RS-CN數(shù)據(jù)集。步驟C.各個(gè)節(jié)點(diǎn)同時(shí)掃描各自的訂單表數(shù)據(jù),過濾數(shù)據(jù)生成RS-O數(shù)據(jù)集。步驟D.各個(gè)節(jié)點(diǎn)同時(shí)掃描各自的商品表數(shù)據(jù),過濾生成RS-L數(shù)據(jù)集。步驟E.各個(gè)節(jié)點(diǎn)同時(shí)將各自的RS-O哈希表和RS-L進(jìn)行哈希連接,生成RS-OL數(shù)據(jù)集,注意此過程不需要執(zhí)行重新分布數(shù)據(jù)操作,因?yàn)橛唵魏蜕唐返姆植剂卸际遣樵兊年P(guān)鍵值(order key)。這就保證了各自需要連接的對(duì)象都是在各自的機(jī)器上,所以η個(gè)節(jié)點(diǎn)就開始并行連接了。步驟F.各個(gè)節(jié)點(diǎn)將自己在步驟E生成的RS-OL數(shù)據(jù)集按照custkey (顧客關(guān)鍵值)在所有節(jié)點(diǎn)間進(jìn)行重新分布數(shù)據(jù)流動(dòng)操作,可以按照哈希(hash,散列)分布方式或者范圍(range)分布方式在節(jié)點(diǎn)間來重新分布數(shù)據(jù),本實(shí)施例中默認(rèn)采用哈希分布方式。這樣,每個(gè)節(jié)點(diǎn)都會(huì)有自己的RS-OL數(shù)據(jù)集。步驟G.各個(gè)節(jié)點(diǎn)將自己在步驟B生成的RS-CN數(shù)據(jù)集,與自己節(jié)點(diǎn)上的經(jīng)過重新分布數(shù)據(jù)流動(dòng)的RS-OL數(shù)據(jù)集進(jìn)行哈希連接。步驟H.最后各個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行聚合、排序,發(fā)往控制節(jié)點(diǎn)。本發(fā)明所提供的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法在云計(jì)算環(huán)境下,充分利用每個(gè)集群節(jié)點(diǎn)的計(jì)算能力,并發(fā)處理數(shù)據(jù)查詢請(qǐng)求。該方法理論上可隨節(jié)點(diǎn)數(shù)的增加而不斷提升系統(tǒng)的吞吐量,持續(xù)滿足海量數(shù)據(jù)查詢對(duì)性能的要求。以上對(duì)本發(fā)明所提供的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法進(jìn)行了詳細(xì)的說明。 對(duì)本領(lǐng)域的技術(shù)人員而言,在不背離本發(fā)明實(shí)質(zhì)精神的前提下對(duì)它所做的任何顯而易見的改動(dòng),都將構(gòu)成對(duì)本發(fā)明專利權(quán)的侵犯,將承擔(dān)相應(yīng)的法律責(zé)任。
      權(quán)利要求
      1.一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,所述數(shù)據(jù)庫(kù)集群包括控制節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn),所述控制節(jié)點(diǎn)接受客戶端的查詢請(qǐng)求,生成查詢計(jì)劃并分發(fā)給所述數(shù)據(jù)節(jié)點(diǎn),其特征在于包括以下步驟第一步對(duì)所述查詢計(jì)劃進(jìn)行分割,得到由各數(shù)據(jù)節(jié)點(diǎn)分別執(zhí)行的切片; 第二步各數(shù)據(jù)節(jié)點(diǎn)分別進(jìn)行切片處理,得到各數(shù)據(jù)節(jié)點(diǎn)的哈希連接; 第三步各數(shù)據(jù)節(jié)點(diǎn)通過聚合匯總數(shù)據(jù)流動(dòng)操作,在控制節(jié)點(diǎn)進(jìn)行哈希聚合,得到查詢結(jié)果集。
      2.如權(quán)利要求1所述的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于 在所述第二步中,各數(shù)據(jù)節(jié)點(diǎn)的切片處理包括以下步驟步驟1) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集;步驟2~)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟幻所述另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接。
      3.如權(quán)利要求1所述的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于 在所述第二步中,各數(shù)據(jù)節(jié)點(diǎn)的切片處理包括以下步驟步驟11) 一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第一表,得到第一哈希表,然后掃描第二表,與第一哈希表進(jìn)行哈希連接,得到第一數(shù)據(jù)集,并將第二表通過廣播數(shù)據(jù)流動(dòng)操作或者重新分布數(shù)據(jù)流動(dòng)操作,發(fā)送給其他數(shù)據(jù)節(jié)點(diǎn);步驟12)另一個(gè)數(shù)據(jù)節(jié)點(diǎn)掃描第三表,基于接收到的所述第二表和掃描的第三表,得到第三哈希表,然后掃描第四表,與第三哈希表進(jìn)行哈希連接,得到第二數(shù)據(jù)集;步驟1 所述另一個(gè)數(shù)據(jù)節(jié)點(diǎn)基于所述第一數(shù)據(jù)集和所述第二數(shù)據(jù)集進(jìn)行哈希連接。
      4.如權(quán)利要求3所述的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于 所述廣播數(shù)據(jù)流動(dòng)操作是一個(gè)節(jié)點(diǎn)向多個(gè)節(jié)點(diǎn)廣播需要發(fā)送的數(shù)據(jù)。
      5.如權(quán)利要求3所述的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于所述重新分布數(shù)據(jù)流動(dòng)操作是利用連接的列值的哈希值的不同,將篩選后的數(shù)據(jù)在其他數(shù)據(jù)節(jié)點(diǎn)上重新分布。
      6.如權(quán)利要求1所述的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,其特征在于 所述第三步中,各個(gè)數(shù)據(jù)節(jié)點(diǎn)對(duì)第二步中得到的所述哈希連接進(jìn)行哈希聚合和排序后,再通過所述聚合匯總數(shù)據(jù)流動(dòng)操作,發(fā)送給所述控制節(jié)點(diǎn)。
      全文摘要
      本發(fā)明公開了一種云計(jì)算環(huán)境下的無(wú)共享數(shù)據(jù)庫(kù)集群并行查詢處理方法,包括以下步驟第一步對(duì)查詢計(jì)劃進(jìn)行分割,得到由各數(shù)據(jù)節(jié)點(diǎn)分別執(zhí)行的切片;第二步各數(shù)據(jù)節(jié)點(diǎn)分別進(jìn)行切片處理,得到各數(shù)據(jù)節(jié)點(diǎn)的哈希連接;第三步各數(shù)據(jù)節(jié)點(diǎn)通過聚合匯總數(shù)據(jù)流動(dòng),在控制節(jié)點(diǎn)進(jìn)行哈希聚合,得到查詢結(jié)果集。本發(fā)明利用節(jié)點(diǎn)數(shù)據(jù)流動(dòng)操作,使查詢執(zhí)行過程中數(shù)據(jù)可以在各節(jié)點(diǎn)之間流動(dòng),完成并發(fā)執(zhí)行查詢過程,大幅度提升了執(zhí)行速度。
      文檔編號(hào)G06F17/30GK102521307SQ20111039267
      公開日2012年6月27日 申請(qǐng)日期2011年12月1日 優(yōu)先權(quán)日2011年12月1日
      發(fā)明者馮玉, 冷建全, 李睿峰, 李祥凱, 王殿成 申請(qǐng)人:北京人大金倉(cāng)信息技術(shù)股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1