日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

用于使用固定表在無共享關(guān)系型數(shù)據(jù)庫集群中進(jìn)行分布式sql連接處理的系統(tǒng)和方法

文檔序號:9493683閱讀:536來源:國知局
用于使用固定表在無共享關(guān)系型數(shù)據(jù)庫集群中進(jìn)行分布式sql連接處理的系統(tǒng)和方法
【專利說明】用于使用固定表在無共享關(guān)系型數(shù)據(jù)庫集群中進(jìn)行分布式SQL連接處理的系統(tǒng)和方法
相關(guān)申請案交叉申請
[0001]本發(fā)明要求2013年3月13日遞交的發(fā)明名稱為“用于使用固定表在無共享關(guān)系型數(shù)據(jù)庫集群中進(jìn)行分布式SQL連接處理的系統(tǒng)和方法”的第13/802,084號美國專利申請案的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容如同全文復(fù)制一樣以引入的方式并入本文本中。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及數(shù)據(jù)庫處理以及計(jì)算,并且在特定實(shí)施例中,涉及用于使用固定表在無共享關(guān)系型數(shù)據(jù)庫集群中進(jìn)行分布式SQL連接處理的系統(tǒng)和方法。
【背景技術(shù)】
[0003]大規(guī)模并行處理(MPP)數(shù)據(jù)庫系統(tǒng)允許數(shù)據(jù)庫管理員創(chuàng)建數(shù)據(jù)庫并且將其數(shù)據(jù)分布到多個處理器,所述處理器被稱為分區(qū)或數(shù)據(jù)節(jié)點(diǎn)。MPP的概念是通過多個處理器協(xié)調(diào)處理程序,其中每個處理器作用于所述程序的不同部分。處理器彼此通信來完成任務(wù),其中所述處理器中的每一者使用其自身的操作系統(tǒng)以及存儲器資源。通常存在為MPP數(shù)據(jù)庫系統(tǒng)的客戶端服務(wù)的至少一個進(jìn)程,所述進(jìn)程被稱為協(xié)調(diào)器。針對此數(shù)據(jù)庫發(fā)出的結(jié)構(gòu)化查詢語言(SQL)連接查詢通過協(xié)調(diào)器來處理,所述協(xié)調(diào)器選擇數(shù)據(jù)表以實(shí)現(xiàn)連接查詢并且將此信息發(fā)送到每個數(shù)據(jù)節(jié)點(diǎn)以用于執(zhí)行。

【發(fā)明內(nèi)容】

[0004]根據(jù)的一個實(shí)施例,用于在大規(guī)模并行處理(MPP)數(shù)據(jù)庫系統(tǒng)中的查詢處理的方法包括在協(xié)調(diào)器進(jìn)程處接收與MPP數(shù)據(jù)庫系統(tǒng)的多個表相關(guān)聯(lián)的連接查詢、從所述表中選擇固定表,以及在與所述協(xié)調(diào)器進(jìn)程通信的多個數(shù)據(jù)節(jié)點(diǎn)中的每一者處執(zhí)行執(zhí)行計(jì)劃以在不在數(shù)據(jù)節(jié)點(diǎn)之間傳遞固定表的信息的情況下獲得查詢結(jié)果。
[0005]根據(jù)另一實(shí)施例,用于在MPP數(shù)據(jù)庫系統(tǒng)中的查詢處理的方法包括在協(xié)調(diào)器進(jìn)程處接收與MPP數(shù)據(jù)庫系統(tǒng)的多個表相關(guān)聯(lián)的連接查詢、根據(jù)連接查詢中的表分區(qū)關(guān)鍵字從所述表中選擇固定表,以及指示固定表并且將連接查詢發(fā)送到與協(xié)調(diào)器進(jìn)程通信的多個數(shù)據(jù)節(jié)點(diǎn)。所述方法進(jìn)一步包括在所述數(shù)據(jù)節(jié)點(diǎn)中的每一者處生成用于連接查詢的執(zhí)行計(jì)劃,以及在所述數(shù)據(jù)節(jié)點(diǎn)中的每一者處執(zhí)行所述執(zhí)行計(jì)劃以在不在數(shù)據(jù)節(jié)點(diǎn)之間共享固定表的信息的情況下獲得查詢結(jié)果。
[0006]根據(jù)又另一實(shí)施例,用于在MPP數(shù)據(jù)庫系統(tǒng)中的查詢處理的設(shè)備包括用于在MPP數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)表的分區(qū)上處理連接查詢的多個數(shù)據(jù)節(jié)點(diǎn)、處理器,以及存儲用于通過處理器執(zhí)行的程序代碼的計(jì)算機(jī)可讀存儲介質(zhì)。程序代碼包括用以進(jìn)行以下操作的指令:在與數(shù)據(jù)節(jié)點(diǎn)通信的協(xié)調(diào)器進(jìn)程處接收與表相關(guān)聯(lián)的連接查詢、從所述表中選擇固定表、指示固定表并且將連接查詢發(fā)送到數(shù)據(jù)節(jié)點(diǎn),以及合并來自數(shù)據(jù)節(jié)點(diǎn)的多個查詢結(jié)果。
【附圖說明】
[0007]為了更完整地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在參考下文結(jié)合附圖進(jìn)行的描述,其中:
[0008]圖1圖示了典型的MPP數(shù)據(jù)庫系統(tǒng);
[0009]圖2是典型的MPP數(shù)據(jù)庫系統(tǒng)的查詢執(zhí)行流程;
[0010]圖3圖示了具有一個固定表的MPP數(shù)據(jù)庫系統(tǒng)的一個實(shí)施例;
[0011]圖4圖示了具有多個固定表的MPP數(shù)據(jù)庫系統(tǒng)的一個實(shí)施例;
[0012]圖5是具有至少一個固定表的MPP數(shù)據(jù)庫系統(tǒng)的查詢執(zhí)行流程的一個實(shí)施例;
[0013]圖6是可以用于實(shí)施各種實(shí)施例的處理系統(tǒng)。
【具體實(shí)施方式】
[0014]下文將詳細(xì)論述當(dāng)前優(yōu)選實(shí)施例的制作和使用。然而,應(yīng)了解,本發(fā)明提供可在各種具體上下文中體現(xiàn)的許多適用的發(fā)明性概念。所論述的具體實(shí)施例僅僅說明用以實(shí)施和使用本發(fā)明的具體方式,而不限制本發(fā)明的范圍。
[0015]MPP數(shù)據(jù)庫系統(tǒng)是基于無共享架構(gòu)的,其中所述表劃分成分區(qū)并且分布到不同處理節(jié)點(diǎn)。以獨(dú)占方式將每個分區(qū)分配給一個處理節(jié)點(diǎn),其中在所述節(jié)點(diǎn)處的分區(qū)當(dāng)中不存在數(shù)據(jù)共享。處理節(jié)點(diǎn)在本文中也被稱為數(shù)據(jù)節(jié)點(diǎn)。每個節(jié)點(diǎn)中的處理實(shí)體管理并且處理其數(shù)據(jù)部分。然而,在執(zhí)行期間,這些處理實(shí)體可以與彼此通信以交換必要信息。對于每個客戶端連接,系統(tǒng)創(chuàng)建對用戶事務(wù)管理以及查詢處理負(fù)責(zé)的代理進(jìn)程或線程。此代理進(jìn)程或線程稱為協(xié)調(diào)器,所述協(xié)調(diào)器可能或可能不駐留在數(shù)據(jù)節(jié)點(diǎn)中的一者上。當(dāng)查詢到達(dá)協(xié)調(diào)器時,協(xié)調(diào)器調(diào)用查詢編譯程序以生成語義樹。隨后調(diào)用查詢計(jì)劃器以生成用于所述樹的優(yōu)化執(zhí)行計(jì)劃。所述執(zhí)行計(jì)劃將用于處理查詢的任務(wù)組織到處理單元(數(shù)據(jù)節(jié)點(diǎn))上。來自數(shù)據(jù)節(jié)點(diǎn)的結(jié)果被返回并在協(xié)調(diào)器處集合,并且隨后被發(fā)送給用戶。
[0016]圖1示出了用于處理SQL連接查詢的典型的MPP數(shù)據(jù)庫系統(tǒng)100。在MPP數(shù)據(jù)庫系統(tǒng)100中,客戶端應(yīng)用程序通過協(xié)調(diào)器110連接到數(shù)據(jù)庫上,所述協(xié)調(diào)器是代理進(jìn)程或應(yīng)用程序(例如,程序)。協(xié)調(diào)器110連接到系統(tǒng)中的多個數(shù)據(jù)節(jié)點(diǎn)120上。每個數(shù)據(jù)節(jié)點(diǎn)120可以獨(dú)占方式訪問數(shù)據(jù)庫中的數(shù)據(jù)表122的分區(qū)。協(xié)調(diào)器110在數(shù)據(jù)節(jié)點(diǎn)120處使用并行處理來為客戶端處理SQL連接查詢112,并且將集合的結(jié)果從數(shù)據(jù)節(jié)點(diǎn)120返回到客戶端。每個數(shù)據(jù)節(jié)點(diǎn)120在數(shù)據(jù)表122的沒有共有分區(qū)數(shù)據(jù)的不同獨(dú)占分區(qū)上處理用于查詢112的計(jì)劃114,所述查詢發(fā)送自協(xié)調(diào)器110。然而,數(shù)據(jù)節(jié)點(diǎn)120仍可以在彼此之間交換表數(shù)據(jù)(例如,行)以完成連接查詢處理的其對應(yīng)的部分。
[0017]圖2示出了 MPP數(shù)據(jù)庫系統(tǒng)100的查詢執(zhí)行流程200。在步驟210處,協(xié)調(diào)器110從客戶端接收查詢。例如,協(xié)調(diào)器110接收SQL查詢:“從客戶、單項(xiàng)產(chǎn)品、訂單中選擇*,其中 lineitem.l_orderkey = orders.0_orderkey AND customer.c_custkey = orders.0_custkey”。在步驟220處,協(xié)調(diào)器110編譯查詢以生成查詢執(zhí)行計(jì)劃,并且將所述查詢計(jì)劃發(fā)送到數(shù)據(jù)節(jié)點(diǎn)120。在步驟230處,每個數(shù)據(jù)節(jié)點(diǎn)120實(shí)例化查詢計(jì)劃段、在需要時與其它節(jié)點(diǎn)交換數(shù)據(jù),以及通過對與查詢相關(guān)聯(lián)的多個數(shù)據(jù)表(例如,單項(xiàng)產(chǎn)品、訂單,以及客戶)進(jìn)行操作來計(jì)算查詢的結(jié)果。每個數(shù)據(jù)節(jié)點(diǎn)120隨后將結(jié)果返回到協(xié)調(diào)器110。在步驟240處,協(xié)調(diào)器110聚集來自數(shù)據(jù)節(jié)點(diǎn)120的結(jié)果并且合并所述結(jié)果。在步驟250處,協(xié)調(diào)器110將查詢結(jié)果返回到客戶端。
[0018]在MPP數(shù)據(jù)庫系統(tǒng)100以及查詢執(zhí)行流程200中,在數(shù)據(jù)節(jié)點(diǎn)120之間轉(zhuǎn)發(fā)來自所需用于處理連接查詢的所有表(例如,表單項(xiàng)產(chǎn)品、客戶,以及訂單)的數(shù)據(jù)(例如,行)。表分區(qū)分布在數(shù)據(jù)節(jié)點(diǎn)當(dāng)中,但在其它分區(qū)中所需的其它數(shù)據(jù)也是通過不同的數(shù)據(jù)節(jié)點(diǎn)可訪問的(例如,經(jīng)由數(shù)據(jù)傳送)而沒有限制。這可能導(dǎo)致用于數(shù)據(jù)傳送以及處理的資源的大量過載,所述大量過載可能降低性能(例如,在處理速度上)。
[0019]本發(fā)明提供了系統(tǒng)和方法實(shí)施例以用于改進(jìn)MPP數(shù)據(jù)庫系統(tǒng)中的查詢處理的性能。所述實(shí)施例包括選擇用于處理查詢計(jì)劃的一個或多個固定表。不同于典型的MPP數(shù)據(jù)庫系統(tǒng),固定表的分配給對應(yīng)的數(shù)據(jù)節(jié)點(diǎn)的分區(qū)是固定的并且不在不同數(shù)據(jù)節(jié)點(diǎn)之間混洗。數(shù)據(jù)節(jié)點(diǎn)以獨(dú)占方式訪問固定數(shù)據(jù)表的對應(yīng)的分區(qū)。這意味著在不同數(shù)據(jù)節(jié)點(diǎn)之間不允許對固定表的分區(qū)(或固定表中的行)的轉(zhuǎn)發(fā)。在需要時,其余的表(非靜態(tài)表)可以常規(guī)方式在數(shù)據(jù)節(jié)點(diǎn)之間(來回)混洗。通過協(xié)調(diào)器選擇一個或多個固定表的集合并且將其指示給數(shù)據(jù)節(jié)點(diǎn)。例如,在沒有執(zhí)行計(jì)劃的情況下,也將連接查詢從協(xié)調(diào)器推送到數(shù)據(jù)節(jié)點(diǎn)。每個數(shù)據(jù)節(jié)點(diǎn)隨后生成具有固定表信息的查詢執(zhí)行計(jì)劃并且相應(yīng)地執(zhí)行查詢。此方案允許每個數(shù)據(jù)節(jié)點(diǎn)并行執(zhí)行連接查詢計(jì)劃并且在較少數(shù)據(jù)混洗的情況下更快地完成任務(wù)。因此,可以改進(jìn)連接查詢處理的總體性能以及因此改進(jìn)系統(tǒng)吞吐量。
[0020]基于查詢中的分區(qū)關(guān)鍵字,可以(通過協(xié)調(diào)器)選擇一個或多個固定表并且將其指示給數(shù)據(jù)節(jié)點(diǎn)。在多表連接查詢中,識別在對應(yīng)的分區(qū)關(guān)鍵字上連接的表的組。識別過程可以在具有單一表的組中結(jié)束。接著,獲得每個組的組合權(quán)重并且隨后將具有最高權(quán)重的組指定為固定表的組。在查詢處理過程(在數(shù)據(jù)節(jié)點(diǎn)處)的其余部分中,固定表的這個組不(在數(shù)據(jù)節(jié)點(diǎn)之間)移動,這可以導(dǎo)致具有更快的計(jì)劃以及處理的改進(jìn)的性能。基于最高權(quán)重的固定組選擇可以大大減少數(shù)據(jù)節(jié)點(diǎn)當(dāng)中的數(shù)據(jù)混洗。例如,在數(shù)據(jù)倉庫情形下的典型的連接查詢可以具有駐留在固定組中的數(shù)據(jù)的70%到80%。因此,此方案可以提供在典型的數(shù)據(jù)倉庫情形下的大量的性能增益。
[0021]圖3示出了具有經(jīng)選擇用于處理SQL連接查詢的一個固定表的MPP數(shù)據(jù)庫系統(tǒng)300的一個實(shí)施例。在MPP數(shù)據(jù)庫系統(tǒng)300中,客戶端應(yīng)用程序通過協(xié)調(diào)器310連接到數(shù)據(jù)庫上。協(xié)調(diào)器310連接到系統(tǒng)中的多個數(shù)據(jù)節(jié)點(diǎn)320上。每個數(shù)據(jù)節(jié)點(diǎn)320可以獨(dú)占方式訪問數(shù)據(jù)庫中的數(shù)據(jù)表322的分區(qū)。協(xié)調(diào)器310在數(shù)據(jù)節(jié)點(diǎn)320處使用并行處理來為客戶端處理SQL連接查詢312并且將集合的結(jié)果從數(shù)據(jù)節(jié)點(diǎn)320返回到客戶端。處理包括選擇固定表。例如,表單項(xiàng)產(chǎn)品是最大的表并且基于連接查詢中的分區(qū)關(guān)鍵字l_orderkey以及o_orderkey被選擇為固定表,所述連接查詢是:lineitem.l_orderkey = orders.0_Qrderkey0每個數(shù)據(jù)節(jié)點(diǎn)320在數(shù)據(jù)表322的沒有共有分區(qū)數(shù)據(jù)的不同獨(dú)占分區(qū)上生成并且處理用于查詢312的計(jì)劃314,所述查詢從協(xié)調(diào)器310向下推送。當(dāng)在數(shù)據(jù)節(jié)點(diǎn)320中的每一者上執(zhí)行實(shí)例化的計(jì)劃314時,固定表單項(xiàng)產(chǎn)品中沒有數(shù)據(jù)或行(在數(shù)據(jù)節(jié)點(diǎn)320之間)移動。然而,來自其它表的數(shù)據(jù)或行可以在任何兩個數(shù)據(jù)節(jié)點(diǎn)320之間來回移動以完成其在其對應(yīng)的分區(qū)上的連接查詢處理。
[0022]圖4示出了具有經(jīng)選擇用于處理SQL連接查詢的多個固定表的MPP數(shù)據(jù)庫系統(tǒng)400的另一實(shí)施例。在MPP數(shù)據(jù)庫系統(tǒng)400中,客戶端應(yīng)用程序通過協(xié)調(diào)器410連接到數(shù)據(jù)庫上。協(xié)調(diào)器410連接到系統(tǒng)中的多個數(shù)據(jù)節(jié)點(diǎn)420上。每個數(shù)據(jù)節(jié)點(diǎn)420可以獨(dú)占方式訪問數(shù)據(jù)庫中的數(shù)據(jù)表422的分區(qū)。協(xié)調(diào)器410在數(shù)據(jù)節(jié)點(diǎn)420處使用并行處理來
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1