從備份系統(tǒng)流式恢復(fù)數(shù)據(jù)庫的制作方法
【專利說明】
【背景技術(shù)】
[0001]分布式存儲服務(wù)可包括在例如一個或多個計算機集群的分布式硬件基礎(chǔ)設(shè)施上執(zhí)行的多個并發(fā)進程。這些進程中的各種進程可在集群中不同物理和/或邏輯(例如,虛擬)機器上執(zhí)行。在存儲服務(wù)中,例如,在不同機器上的進程(例如,軟件服務(wù)器)可各自將編程接口暴露給客戶端,客戶端可使用所述編程接口來訪問可在多個存儲資源上實施的存儲系統(tǒng)。存儲服務(wù)可存儲系統(tǒng)中每個數(shù)據(jù)項的多個復(fù)本,使得一個服務(wù)器上的數(shù)據(jù)項的任何改變必須被傳播到一個或多個其它服務(wù)器。
[0002]一旦節(jié)點或磁盤驅(qū)動器出現(xiàn)故障,發(fā)生故障的設(shè)備上的數(shù)據(jù)必須被恢復(fù)。在提供數(shù)據(jù)庫服務(wù)的許多現(xiàn)有存儲系統(tǒng)中,整個數(shù)據(jù)集必須被恢復(fù)(例如,從備份或歸檔文件恢復(fù)),然后系統(tǒng)才可恢復(fù)接受并處理查詢。在執(zhí)行增量備份的一些系統(tǒng)中,設(shè)備出現(xiàn)故障后恢復(fù)系統(tǒng)涉及執(zhí)行多個增量恢復(fù)操作(對應(yīng)于多個增量備份操作)。在其它存儲系統(tǒng)中,設(shè)備出現(xiàn)故障后恢復(fù)系統(tǒng)涉及追蹤事務(wù)記錄來重建系統(tǒng)的狀態(tài)。對于包括大量存儲設(shè)備的數(shù)據(jù)倉庫系統(tǒng),系統(tǒng)必須停止服務(wù)以在一個或少數(shù)設(shè)備上執(zhí)行恢復(fù)操作的時間量可代表系統(tǒng)的顯著成本。
【附圖說明】
[0003]圖1是示出從遠程關(guān)鍵字-值持久存儲系統(tǒng)執(zhí)行流式恢復(fù)操作的方法的一個實施方案的流程圖。
[0004]圖2是示出根據(jù)一些實施方案從客戶的角度來看的分布式數(shù)據(jù)倉庫服務(wù)的各種部件的框圖。
[0005]圖3是示出根據(jù)一個實施方案的分布式數(shù)據(jù)倉庫系統(tǒng)的各種部件的框圖。
[0006]圖4是示出根據(jù)一個實施方案的分布式數(shù)據(jù)倉庫系統(tǒng)中集群的框圖。
[0007]圖5是示出根據(jù)一個實施方案的超級塊數(shù)據(jù)結(jié)構(gòu)的框圖。
[0008]圖6是示出根據(jù)一個實施方案的用于備份被存儲在分布式數(shù)據(jù)倉庫系統(tǒng)中的數(shù)據(jù)的遠程關(guān)鍵字-值持久存儲系統(tǒng)的使用的框圖。
[0009]圖7是示出用于將數(shù)據(jù)塊存儲在分布式數(shù)據(jù)倉庫系統(tǒng)中的方法的一個實施方案的流程圖。
[0010]圖8是示出用于在分布式數(shù)據(jù)倉庫系統(tǒng)中執(zhí)行備份操作的方法的一個實施方案的流程圖。
[0011]圖9A-9B描繪了示出用于在分布式數(shù)據(jù)倉庫系統(tǒng)中出現(xiàn)故障之后重建數(shù)據(jù)塊的方法的一個實施方案的流程圖。
[0012]圖10是示出用于在分布式數(shù)據(jù)倉庫系統(tǒng)中響應(yīng)于查詢請求的方法的一個實施方案的流程圖。
[0013]圖11是示出用于響應(yīng)于查詢而確定返回數(shù)據(jù)塊的哪個副本的方法的一個實施方案的流程圖。
[0014]圖12是示出用于從遠程關(guān)鍵字-值持久存儲系統(tǒng)臨時接入數(shù)據(jù)塊的備份副本來滿足查詢的方法的一個實施方案的流程圖。
[0015]圖13是示出用于以優(yōu)先次序從遠程關(guān)鍵字-值持久存儲系統(tǒng)恢復(fù)分布式數(shù)據(jù)倉庫系統(tǒng)中的數(shù)據(jù)塊的方法的一個實施方案的流程圖。
[0016]圖14是示出用于確定從關(guān)鍵字-值持久備份存儲恢復(fù)數(shù)據(jù)塊的順序的方法的一個實施方案的流程圖。
[0017]圖15是示出根據(jù)各種實施方案被配置以實施分布式數(shù)據(jù)倉庫系統(tǒng)和對應(yīng)關(guān)鍵字-值持久備份存儲系統(tǒng)的至少一部分的計算機系統(tǒng)的框圖。
[0018]雖然本文以若干實施方案和說明性附圖舉例描述了實施方案,但是本領(lǐng)域技術(shù)人員將認識到,實施方案并不限于所描述的實施方案或附圖。應(yīng)理解,附圖及其詳細描述不旨在將實施方案限制為所公開的具體形式,相反,意圖在于涵蓋落入如由所附權(quán)利要求書所限定的精神和范圍內(nèi)的所有的修改、等效物和替代物。本文所用的標(biāo)題僅用于組織目的,而非意味著被用來限制本說明書或權(quán)利要求書的范圍。如本申請通篇所使用,詞語“可”用于寬容的意義(即,意思是有可能),而非強制的意義(即,意思是必須)。類似地,詞語“包括(include/including/includes) ”的意思是包括但不限于。
【具體實施方式】
[0019]在一些實施方案中,本文所描述的系統(tǒng)可實施使得客戶(例如,用戶)在云計算環(huán)境中快速、簡單且具有成本效益地設(shè)置、操作并縮放數(shù)據(jù)倉庫的網(wǎng)絡(luò)服務(wù)。網(wǎng)絡(luò)服務(wù)可管理費時的管理任務(wù),從而允許用戶專注于他們自己的應(yīng)用和業(yè)務(wù)。在一些實施方案中,數(shù)據(jù)倉庫系統(tǒng)可為高度可伸縮且可擴展的企業(yè)級數(shù)據(jù)庫查詢和管理系統(tǒng)。它可提供對結(jié)構(gòu)化數(shù)據(jù)的快速查詢功能,可提供與各種數(shù)據(jù)加載和ETL(提取、轉(zhuǎn)換和加載)工具的集成,可向客戶連接提供一流的商務(wù)智能(BI)報告、數(shù)據(jù)挖掘和分析工具,且可被優(yōu)化以非??焖俚貓?zhí)行復(fù)雜的分析查詢,例如包括多表連接、子查詢和聚集的分析查詢。在一些實施方案中,查詢可被分布并平行放置于多個物理資源上,且數(shù)據(jù)倉庫系統(tǒng)可在需要的基礎(chǔ)上被放大或縮小。在一些實施方案中,用戶可僅支付他們所使用的資源。在不同的實施方案中,數(shù)據(jù)倉庫系統(tǒng)可有效地適用于各種類型和/或組織的數(shù)據(jù)庫模式。
[0020]在一些實施方案中,本文所描述的分布式數(shù)據(jù)倉庫系統(tǒng)可從使用分治策略來執(zhí)行編譯查詢的計算節(jié)點的大規(guī)模并行處理(MPP)和集群的使用導(dǎo)出性能和快速計算能力中的一些。在一些實施方案中,集群可包括一個或多個節(jié)點,每個節(jié)點包括一個或多個磁盤、固態(tài)設(shè)備或代表客戶存儲數(shù)據(jù)塊的其它永久存儲設(shè)備。在一些實施方案中,客戶/用戶可能以例如交互地通過至數(shù)據(jù)倉庫系統(tǒng)的SQL接口的多種方式來提交查詢。在其它實施方案中,外部應(yīng)用和程序可使用至數(shù)據(jù)倉庫系統(tǒng)的開放式數(shù)據(jù)庫連接(ODBC)和/或Java數(shù)據(jù)庫連接(JDBC)驅(qū)動程序接口來提交查詢。
[0021]在典型的大型數(shù)據(jù)庫系統(tǒng)中,從備份恢復(fù)數(shù)據(jù)需要的時間可代表系統(tǒng)的顯著成本。例如,在許多現(xiàn)有的系統(tǒng)中,在數(shù)據(jù)庫系統(tǒng)故障之后需要恢復(fù)整個數(shù)據(jù)集,然后數(shù)據(jù)庫系統(tǒng)才可重新啟動。在一些實施方案中,本文描述的數(shù)據(jù)倉庫系統(tǒng)可被配置以增量地(例如,一次一個物理數(shù)據(jù)塊)將數(shù)據(jù)(例如,組成各種數(shù)據(jù)庫表的數(shù)據(jù))備份到遠程關(guān)鍵字-值存儲系統(tǒng),且作為每個增量備份操作的一部分,將所有數(shù)據(jù)塊的列表存儲到系統(tǒng)中,而不管它們是作為所述增量備份的一部分而備份或是作為先前增量備份操作的一部分而備份。在一些實施方案中,遠程關(guān)鍵字-值存儲系統(tǒng)可專用于備份存儲,而在其它實施方案中,遠程關(guān)鍵字-值存儲系統(tǒng)可提供通用存儲以用于各種客戶和/或客戶應(yīng)用。在各種實施方案中,數(shù)據(jù)倉庫系統(tǒng)、通用計算系統(tǒng)或提供將數(shù)據(jù)本地存儲于存儲器(例如,短暫地)中的另一種類型的服務(wù)的計算系統(tǒng)可將數(shù)據(jù)的一個或多個副本寫入遠程關(guān)鍵字-值存儲系統(tǒng),所述遠程關(guān)鍵字-值存儲系統(tǒng)采用磁盤、固態(tài)存儲設(shè)備或另一類型的持續(xù)性的存儲介質(zhì)以提供耐久性。如下文更詳細地描述,本文所述的數(shù)據(jù)倉庫系統(tǒng)可能能夠在故障之后重新啟動代表存儲系統(tǒng)用戶存儲數(shù)據(jù)(例如,在數(shù)據(jù)庫中)的集群(即,允許其接受并提供查詢),而無需等待從備份恢復(fù)整個數(shù)據(jù)集。相反,任何丟失或破壞的數(shù)據(jù)塊的備份副本可通過使用數(shù)據(jù)塊的唯一標(biāo)識符作為密鑰以直接在遠程系統(tǒng)中對其進行尋址來從備份系統(tǒng)流入數(shù)據(jù)倉庫系統(tǒng)的存儲器。
[0022]注意,在本文的描述中,術(shù)語“數(shù)據(jù)塊”和“物理數(shù)據(jù)塊”可用以代表被代表客戶(例如,用戶、客戶端應(yīng)用和/或數(shù)據(jù)倉庫服務(wù)用戶)存儲在分布式數(shù)據(jù)倉庫系統(tǒng)和/或遠程關(guān)鍵字-值持久備份存儲系統(tǒng)中作為個別(或可分離)對象的數(shù)據(jù)的部分(或塊),或可用以代表當(dāng)數(shù)據(jù)被存儲在分布式數(shù)據(jù)倉庫系統(tǒng)中物理磁盤上,被存儲在分布式倉庫系統(tǒng)中(例如,在實施存儲器內(nèi)數(shù)據(jù)庫的系統(tǒng)中)節(jié)點上的系統(tǒng)存儲器中和/或被存儲在遠程關(guān)鍵字-值持久備份存儲系統(tǒng)中時數(shù)據(jù)的部分(或塊),這取決于這些術(shù)語出現(xiàn)的上下文。在一些實施方案中,數(shù)據(jù)可被存儲在具有與被存儲在系統(tǒng)的存儲器架構(gòu)中的數(shù)據(jù)的標(biāo)準(zhǔn)單位的尺寸相同尺寸的數(shù)據(jù)塊中,其可對應(yīng)于存儲器中的“頁”。在其它實施方案中,數(shù)據(jù)塊的大小可能與存儲器的頁面大小不同。
[0023]在一些實施方案中,本文所述的分布式數(shù)據(jù)倉庫系統(tǒng)可在系統(tǒng)中本地存儲每個數(shù)據(jù)塊的兩個或更多個副本(例如,在集群架構(gòu)上)。例如,在一個實施方案中,每個IMB物理數(shù)據(jù)塊的主要副本可被存儲在集群中節(jié)點的一個磁盤上,且所述物理數(shù)據(jù)塊的一個或多個次要副本(復(fù)本)可被存儲在所述同一集群中其它節(jié)點的其它磁盤上。然而,沒有將整個磁盤復(fù)制(或鏡像)到一個其它磁盤上,被存儲在給定磁盤上的數(shù)據(jù)塊中的一些的副本可被分布在與被存儲在給定磁盤上的其它數(shù)據(jù)塊的副本不同的磁盤上。分布式數(shù)據(jù)倉庫系統(tǒng)也可將每個數(shù)據(jù)塊的副本存儲在提供持久關(guān)鍵字-值存儲的遠程備份存儲系統(tǒng)中作為單獨的對象(即,值),且可將每個數(shù)據(jù)塊的密鑰存儲在系統(tǒng)中數(shù)據(jù)塊的列表內(nèi)。例如,列出被存儲在數(shù)據(jù)倉庫系統(tǒng)中(或其節(jié)點中)的所有數(shù)據(jù)塊的超級塊數(shù)據(jù)結(jié)構(gòu)可包括多個條目,每個條目存儲關(guān)于個別數(shù)據(jù)塊的元數(shù)據(jù),且每個塊的元數(shù)據(jù)可包括唯一標(biāo)識符(ID),所述唯一標(biāo)識符充當(dāng)密鑰以訪問被存儲在遠程備份存儲系統(tǒng)中的數(shù)據(jù)塊的副本。在一些實施方案中,分布式數(shù)據(jù)倉庫系統(tǒng)可通過將每個數(shù)據(jù)塊的兩個副本存儲到給定集群中(例如,主要副本和次要副本)且將第三個副本存儲到遠程關(guān)鍵字-值持久存儲系統(tǒng)中來向其客戶/用戶提供非常高的耐久性存儲。
[0024]在一些實施方案中,當(dāng)分布式數(shù)據(jù)倉庫中的磁盤或節(jié)點發(fā)生故障時,有可能或不可能從集群內(nèi)的其它磁盤恢復(fù)丟失或破壞的數(shù)據(jù)塊,這取決于故障的類型和/或程度。例如,如果故障是磁盤故障或節(jié)點故障,那么有可能通過從集群內(nèi)存儲這些數(shù)據(jù)塊的復(fù)本的其它磁盤拷貝數(shù)據(jù)塊來恢復(fù)丟失或破壞的數(shù)據(jù)塊(即,以從被存儲在集群自身內(nèi)的數(shù)據(jù)快速重建數(shù)據(jù)庫)。然而,如果故障是整個集群的故障,或者是其后不可能從集群內(nèi)重建丟失或破壞的數(shù)據(jù)塊的另一種類型的故障,那么分布式數(shù)據(jù)倉庫可被配置以從備份存儲系統(tǒng)檢索數(shù)據(jù)以重建丟失或破壞的數(shù)據(jù)塊。如本文更詳細地描述,在一些實施方案中,遠程存儲系統(tǒng)中數(shù)據(jù)塊的副本可被訪問以在從遠程存儲系統(tǒng)檢索到副本(即,流入)之前或之后滿足查詢請求。例如,在一些實施方案中,分布式數(shù)據(jù)倉庫系統(tǒng)可被配置以當(dāng)在后臺重建數(shù)據(jù)集時繼續(xù)(或重新開始)接受并處理查詢。換句話說,在故障之后,本文所述的分布式數(shù)據(jù)倉庫系統(tǒng)可被配置以按需將數(shù)據(jù)從備份系統(tǒng)流入,直到整個數(shù)據(jù)集(或至少任何接收的查詢所針對的數(shù)據(jù))被恢復(fù)為止或除非整個數(shù)據(jù)集被恢復(fù)。如下文更詳細地描述,在一些實施方案中,數(shù)據(jù)塊可被以在最近什么時候在分布式數(shù)據(jù)倉庫中訪問數(shù)據(jù)塊或在分布式數(shù)據(jù)倉庫中訪問數(shù)據(jù)塊的頻率的順序,或在不久的將來將訪問所述數(shù)據(jù)塊的可能性的順序從遠程存儲恢復(fù)。
[0025]圖1中以流程圖示出用于從遠程關(guān)鍵字-值持久存儲系統(tǒng)執(zhí)行流式恢復(fù)操作的方法的一個實施方案。如在110示出,在這個實例中,方法可包括分布式數(shù)據(jù)倉庫系統(tǒng)代表客戶(例如,用戶、客戶端應(yīng)用或存儲服務(wù)用戶)將數(shù)據(jù)塊存儲在集群中。方法可包括數(shù)據(jù)倉庫系統(tǒng)通過將數(shù)據(jù)塊的副本存儲在遠程關(guān)鍵字-值持久存儲中來備份數(shù)據(jù)塊,如120示出。如在這個實例中示出,響應(yīng)于數(shù)據(jù)倉庫系統(tǒng)中的故障,方法可包括數(shù)據(jù)倉庫系統(tǒng)啟動一個或多個數(shù)據(jù)塊從遠程關(guān)鍵字-值持久存儲的恢復(fù),如130示出。方法也可包括,在所有目標(biāo)數(shù)據(jù)塊被從遠程關(guān)鍵字-值持久存儲恢復(fù)之前,數(shù)據(jù)倉庫系統(tǒng)接受并服務(wù)于針對客戶數(shù)據(jù)的查詢(例如,讀取請求和/或?qū)懭胝埱?,如140示出。換句話說,分布式數(shù)據(jù)倉庫系統(tǒng)可能能夠在故障之后開始或繼續(xù)接受并提供查詢請求,而無需恢復(fù)整個數(shù)據(jù)集,如在一些先前數(shù)據(jù)庫系統(tǒng)中一般。例如,如果數(shù)據(jù)倉庫系統(tǒng)中集群僅有一部分出現(xiàn)故障,那么集群可繼續(xù)接受并提供查詢而無中斷。如果整個集群發(fā)生故障(并且影響所述集群中節(jié)點上所有超級塊),那么超級塊中一個或多個可能需要被引入系統(tǒng)存儲器,然后針對集群的查詢才可被接受和/或服務(wù),使得可在遠程關(guān)鍵字-值持久存儲中訪問目標(biāo)數(shù)據(jù)。在一些實施方案中,每個超級塊可被鏡像到存儲信息(即,關(guān)于被存儲在特定節(jié)點上作為主要副本的數(shù)據(jù)塊的信息)的特定節(jié)點之外的一個或多個節(jié)點上。
[0026]在一些實施方案中,本文所述的分布式數(shù)據(jù)倉庫系統(tǒng)可對數(shù)據(jù)庫表使用列存儲。換句話說,來自數(shù)據(jù)庫表的列信息可被存儲到磁盤上數(shù)據(jù)塊中,而非將列的整行存儲在每個數(shù)據(jù)塊中(如在傳統(tǒng)的數(shù)據(jù)庫方案中)。在一些實施方案中,以這樣的列的方式存儲表格數(shù)據(jù)可減少對各種查詢的整體磁盤I/o要求并可提高解析查詢性能。例如,以列的方式存儲數(shù)據(jù)庫表信息可減少當(dāng)將數(shù)據(jù)檢索到存儲器中以執(zhí)行數(shù)據(jù)庫操作作為處理查詢的一部分時(例如,當(dāng)在表格中檢索所有行的所有列字段值時)執(zhí)行的磁盤I/o請求的數(shù)量,且可減少當(dāng)處理查詢時需要從磁盤加載的數(shù)據(jù)量。相反,對于給定數(shù)量的磁盤請求,比起如果每個數(shù)據(jù)塊存儲整個表的行,可以檢索更多的行中的列字段值。在一些實施方案中,磁盤要求可使用與列存儲數(shù)據(jù)類型相匹配的壓縮方法來進一步減少。例如,由于每個塊包含統(tǒng)一的數(shù)據(jù)(即,列字段值都是相同的數(shù)據(jù)類型),所以磁盤存儲和檢索要求可通過施加最適合于特定的列數(shù)據(jù)類型的壓縮方法來進一步減少。在一些實施方案中,節(jié)省用于存儲僅包含單一列的字段值的數(shù)據(jù)塊在磁盤上的空間可轉(zhuǎn)化為節(jié)省當(dāng)檢索數(shù)據(jù)且然后將所述數(shù)據(jù)存儲在系統(tǒng)存儲器中時(例如,當(dāng)分析或以其它方式處理檢索的數(shù)據(jù))的空間。例如,對于一次只需要訪問和/或操作一列或少量列的數(shù)據(jù)庫操作,比起傳統(tǒng)的基于行的存儲,可能需要較少的存儲器空間,因為只可檢索到存儲執(zhí)行查詢實際需要的特定列中的數(shù)據(jù)的數(shù)據(jù)塊并將所述數(shù)據(jù)塊存儲在存儲器中。
[0027]在各種實施方案中,本文所述的分布式數(shù)據(jù)倉庫系統(tǒng)可支持標(biāo)準(zhǔn)或自定義應(yīng)用編程接口(API)以進行各種數(shù)據(jù)庫操作。例如,API可支持創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表格、改變表格、創(chuàng)建用戶、刪除用戶、在表格中插入一個或多個行、拷貝值、從表格內(nèi)選擇數(shù)據(jù)(例如,查詢表格)、取消或中止查詢的操作,和/或其它操作。
[0028]在一些實施方案中,本文所述的分布式數(shù)據(jù)倉庫系統(tǒng)的每個集群可包括領(lǐng)導(dǎo)節(jié)點和多個計算節(jié)點(即,非領(lǐng)導(dǎo)節(jié)點,例如查詢引擎),其中每個節(jié)點是具有一定量的存儲(例如,多個磁盤)和/或處理能力的虛擬機。在一些實施方案中,一旦被配置,集群可由客戶/用戶通過網(wǎng)絡(luò)地址直接可見(且可訪問)。換句話說,客戶/用戶可直接連接到集群(例如,以提交查詢并接收對這些查詢的響應(yīng)),且可能不需要經(jīng)過網(wǎng)絡(luò)服務(wù)器(或服務(wù))來訪問集群,除了設(shè)置并管理集群的配置。在一些實施方案中,每個集群中的領(lǐng)導(dǎo)節(jié)點(其可能并不存儲客戶/用戶數(shù)據(jù))可保持用于對由計算節(jié)點存儲在集群中的數(shù)據(jù)執(zhí)行各種類型的查詢的查詢計劃(例如,包括模式信息和/或元數(shù)據(jù))。在領(lǐng)導(dǎo)節(jié)點內(nèi),調(diào)度進程可向計算節(jié)點發(fā)送查詢?nèi)蝿?wù)(例如,通過專用網(wǎng)絡(luò)通信織物)以進行執(zhí)行。在一些實施方案中,領(lǐng)導(dǎo)節(jié)點也可負責(zé)劃分輸入數(shù)據(jù)(即,被包括在寫入請求中的數(shù)據(jù)),以存儲在集群的各種節(jié)點上。例如,領(lǐng)導(dǎo)節(jié)點可確定將存儲所接收數(shù)據(jù)的不同部分的主要副本的節(jié)點。
[0029]在一些實施方案中,當(dāng)客戶請求來執(zhí)行查詢(例如,讀取請求或?qū)懭胝埱?或接收到某一其它類型的數(shù)據(jù)庫操作(例如,由集群中的領(lǐng)導(dǎo)節(jié)點)時,分布式數(shù)據(jù)倉庫系統(tǒng)可產(chǎn)生一個新的過程,以保持客戶的會話信息,且只要客戶的會話仍然開放且該客戶正將查詢請求發(fā)送到領(lǐng)導(dǎo)節(jié)點,所述過程就可得以保持。請求的操作(SQL查詢或某一其它數(shù)據(jù)庫操作)可通過分析器和優(yōu)化器來路由,以制定查詢執(zhí)行計劃,從而進行或執(zhí)行指定的查詢或數(shù)據(jù)庫操作(即,執(zhí)行查詢所需的邏輯步驟)。查詢計劃然后可被路由到執(zhí)行引擎,所述執(zhí)行引擎產(chǎn)生并編譯領(lǐng)導(dǎo)節(jié)點和非領(lǐng)導(dǎo)節(jié)點(本文中有時稱為計算節(jié)點)將執(zhí)行以完成查詢的查詢執(zhí)行代碼。在一些實施方案中,每個個別執(zhí)行計劃步驟可能涉及將由計算節(jié)點或領(lǐng)導(dǎo)節(jié)點執(zhí)行的數(shù)據(jù)的簡單操作或操縱,且連接領(lǐng)導(dǎo)節(jié)點和計算節(jié)點的通信網(wǎng)絡(luò)可用以分配中間結(jié)果。在一些實施方案中,分布式數(shù)據(jù)倉庫系統(tǒng)可通過在多個節(jié)點片中每一個中分開查詢過程以并行執(zhí)行編譯查詢代碼來實現(xiàn)優(yōu)良的查詢執(zhí)行性能。此外,分布式數(shù)據(jù)倉庫系統(tǒng)可利用優(yōu)化的網(wǎng)絡(luò)通信、存儲器和磁盤管理,以將中間結(jié)果從一個查詢計劃步驟傳遞到下一個查詢計劃步驟,這也可能有助于加速查詢執(zhí)行。在一些實施方案中,查詢的最后一個段可返回請求的數(shù)據(jù)。如果返回設(shè)置要被匯集或排序,那么計算節(jié)點可各自將中間結(jié)果的各自的部分發(fā)送到領(lǐng)導(dǎo)節(jié)點,所述領(lǐng)導(dǎo)節(jié)點然后可合并返回的數(shù)據(jù),使得查詢的最終結(jié)果可被發(fā)送回做出請求的客戶/用戶。
[0030]圖2是示出根據(jù)一些實施方案從客戶(其可包括用戶、客戶端應(yīng)用和/或數(shù)據(jù)倉庫服務(wù)用戶)的角度來看的分布式數(shù)據(jù)倉庫服務(wù)的各種部件的框圖。在這個實例中,客戶端212、222和232中每一個能夠訪問虛擬計算環(huán)境200中的集群210、220、230和240中一個或多個。如圖2示出,集群210、220、230和240中每一個包括兩個或更多個節(jié)點,其可代表能夠訪問這些集群的客戶端212、222和232中的特定客戶端來將數(shù)據(jù)存儲在所述節(jié)點上。如在這個實例中示出,客戶端212、222和232可能能夠訪問分布式數(shù)據(jù)倉庫服務(wù)管理器202,例如,以設(shè)置并管理其訪問的集群的配置,但是,一旦這些集群已被配置,客戶端就可能能夠直接訪問它們(例如,而無需通過分布式數(shù)據(jù)倉庫服務(wù)的服務(wù)接口)。
[0031]圖3也是示出根據(jù)一個實施方案的分布式數(shù)據(jù)倉庫系統(tǒng)的各種部件的框圖,其中一些部件可能是分布式數(shù)據(jù)倉庫系統(tǒng)的客戶不可見的。如在這個實例中示出,存儲客戶端350a-350n可通過網(wǎng)絡(luò)360訪問分布式數(shù)據(jù)倉庫系統(tǒng)380內(nèi)的分布式數(shù)據(jù)倉庫服務(wù)管理器302和/或數(shù)據(jù)倉庫集群325和335 (例如,這些部件對于存儲客戶端350a_350n可為網(wǎng)絡(luò)可尋址與可訪問的)。然而,在不同的實施方案中,當(dāng)自動執(zhí)行例如本文所述的各種備份和恢復(fù)操作時分布式數(shù)據(jù)倉庫系統(tǒng)380可使用的關(guān)鍵字-值持久備份存儲370對于存儲客戶端350a-350n可為網(wǎng)絡(luò)可尋址與可訪問的或者可能不是網(wǎng)絡(luò)可尋址與可訪問的。例如,在一些實施方案中,分布式數(shù)據(jù)倉庫系統(tǒng)380可能以對于存儲客戶端350a-350n不可見的方式來執(zhí)行這些操作和/或涉及關(guān)鍵字-值持久備份存儲370的其它操作(包括臨時接入分布式數(shù)據(jù)倉庫系統(tǒng)380中當(dāng)前不可用的數(shù)據(jù)塊的備份副本,以滿足從存儲客戶端350a-350n接收到的查詢)。
[0032]如前文所述,分布式數(shù)據(jù)倉庫系統(tǒng)集群可包括單個領(lǐng)導(dǎo)節(jié)點服務(wù)器,所述單個領(lǐng)導(dǎo)節(jié)點服務(wù)器接收來自各種客戶端程序(例如,應(yīng)用)和/或用戶(使用者)的請求,然后解析所述請求并開發(fā)執(zhí)行計劃以執(zhí)行相關(guān)數(shù)據(jù)庫操作。更具體來說,領(lǐng)導(dǎo)節(jié)點可開發(fā)獲得復(fù)雜的查詢和聯(lián)