亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于分布式數(shù)據(jù)庫查詢引擎的系統(tǒng)和方法

文檔序號:8927013閱讀:489來源:國知局
用于分布式數(shù)據(jù)庫查詢引擎的系統(tǒng)和方法
【專利說明】用于分布式數(shù)據(jù)庫查詢弓I擎的系統(tǒng)和方法
[0001]交叉引用相關(guān)申請
[0002]本申請要求于2013年I月7日提交的美國專利申請?zhí)?3/735,820的優(yōu)先權(quán),該申請之全文并入本文中,以作參考。
[0003]本申請要求于2013年12月19日提交的歐洲專利申請?zhí)?3198563.2的優(yōu)先權(quán),該申請之全文并入本文中,以作參考。
技術(shù)領(lǐng)域
[0004]本發(fā)明總體上涉及數(shù)據(jù)庫,并且尤其涉及用于低查詢延遲數(shù)據(jù)庫分析的分布式數(shù)據(jù)庫查詢引擎。
【背景技術(shù)】
[0005]計算機和網(wǎng)絡計算的發(fā)展引起了需要大量數(shù)據(jù)存儲的應用程序。例如,數(shù)千萬用戶可以創(chuàng)建網(wǎng)頁并且將圖像和文本上傳到社會媒體網(wǎng)站中。因此,社會媒體網(wǎng)站每天可以累積大量數(shù)據(jù),因此,需要一種用于存儲和處理數(shù)據(jù)的高度可擴展的系統(tǒng)(scalablesystem)。存在促進這樣的大量數(shù)據(jù)存儲的多種工具。
[0006]存在框架,通過使得應用程序能夠與成千臺計算機的簇(也稱為節(jié)點)以及千兆字節(jié)的數(shù)據(jù)交互,這些框架支持大規(guī)模數(shù)據(jù)密集型分布式應用程序。例如,稱為Hadoop的框架使用分布式、可擴展的、便攜式文件系統(tǒng),稱為Hadoop分布式文件系統(tǒng)(HDFS),用于在Hadoop簇中在數(shù)據(jù)節(jié)點(也稱為子節(jié)點)之中分布大量數(shù)據(jù)。為了減少數(shù)據(jù)節(jié)點電力故障或網(wǎng)絡故障(包括開關(guān)故障)的不利影響,通常在不同的數(shù)據(jù)節(jié)點上復制HDFS內(nèi)的數(shù)據(jù)。
[0007]開發(fā)了 Hive ( 一種開放源數(shù)據(jù)倉庫系統(tǒng)),用于在Hadoop簇的頂部上運行。Hive支持以腳本查詢語言(SQL)(像稱為HiveQL的聲明式語言)表示的數(shù)據(jù)查詢。然后,Hive系統(tǒng)將以HiveQL表示的查詢編譯成可以在Hadoop簇上執(zhí)行的映射_歸約(map-reduce)工作,具有有向非循環(huán)圖的數(shù)學形式。HiveQL語言包括支持包含原始類型、集合(例如,陣列和映射)以及嵌套布局類型(nested composit1ns of types)的表格的類型系統(tǒng)。此夕卜,Hive系統(tǒng)包括包含方案和統(tǒng)計的稱為Hive-元數(shù)據(jù)存儲的系統(tǒng)目錄,可用于數(shù)據(jù)探索(data explorat1n)和查詢優(yōu)化中。
[0008]與Hadoop簇耦合的Hive系統(tǒng)可以為社會網(wǎng)絡系統(tǒng)存儲和分析大量數(shù)據(jù)。例如,Hive系統(tǒng)可以分析在用戶之間的連接程度,以對用戶在社會網(wǎng)絡系統(tǒng)上的歷史進行分類。Hive系統(tǒng)可以分析活動日志,以了解社會網(wǎng)絡系統(tǒng)的服務如何被用來幫助應用程序開發(fā)員、網(wǎng)頁管理員以及廣告人員做出開發(fā)和業(yè)務決定。Hive系統(tǒng)可以運行復雜的數(shù)據(jù)挖掘程序,以優(yōu)化向社會網(wǎng)絡系統(tǒng)的用戶示出的廣告。Hive系統(tǒng)可以進一步分析使用日志,以識別社會網(wǎng)絡系統(tǒng)的垃圾郵件和濫用。
[0009]Hive系統(tǒng)包括供沒有制作和執(zhí)行Hive查詢的編程能力的人使用的網(wǎng)絡工具,用于制作、調(diào)試以及調(diào)度復雜的數(shù)據(jù)管線(data pipeline),并且用于根據(jù)存儲在Hive系統(tǒng)和其他關(guān)系數(shù)據(jù)庫(例如,MySQL和Oracle)內(nèi)的數(shù)據(jù),生成報告。
[0010]然而,Hive系統(tǒng)的查詢延遲通常較高。由于大量數(shù)據(jù)以及Hadoop簇的map-reduce方案,甚至最簡單的查詢可能需要花費幾秒到幾分鐘來完成。這對于在操作人員需要當前查詢的結(jié)果來決定一系列查詢中的下一個查詢時的交互式分析尤其是個問題。由于在等待當前查詢的結(jié)果時,分析人員不能確定下一個查詢,所以延遲問題明顯影響分析人員的生產(chǎn)力。
[0011]一種可能的變通方案(workaround solut1n)是創(chuàng)建數(shù)據(jù)管線,這些數(shù)據(jù)管線將聚集數(shù)據(jù)從Hive載入其他類型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),例如,MySQL和Oracle。然后,操作人員執(zhí)行交互式分析,并且使用這些RDBMS建立報告。然而,每個RDBMS需要單獨的數(shù)據(jù)管線。數(shù)據(jù)管線也需要時間來將聚集數(shù)據(jù)從Hive傳輸給其他RDBMS。因此,這種變通方案處理依然麻煩并且不方便。

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

[0012]在本文中介紹的技術(shù)在存儲在大規(guī)模存儲簇(例如,Hadoop簇)內(nèi)的非常大量的數(shù)據(jù)上提供了低延遲查詢的優(yōu)點,該簇在系統(tǒng)目錄(例如,Hive元數(shù)據(jù)存儲)內(nèi)存儲元數(shù)據(jù)。尤其地,在本文中介紹的技術(shù)包括基于服務樹計算框架的分布式查詢引擎。分布式查詢引擎包括網(wǎng)關(guān)服務器和多個工作者節(jié)點。所述網(wǎng)關(guān)服務器將查詢?nèi)蝿辗殖删植咳蝿?。引擎的每個工作者節(jié)點處理一個局部任務,以在存儲器中生成中間查詢結(jié)果。中間查詢結(jié)果可以是通過掃描一部分相關(guān)數(shù)據(jù)所生成的近似中間結(jié)果。網(wǎng)關(guān)服務器接收中間查詢結(jié)果,并且根據(jù)中間查詢結(jié)果,構(gòu)建查詢?nèi)蝿盏牟樵兘Y(jié)果。
[0013]因此,根據(jù)在本文中介紹的技術(shù),提供了用于處理數(shù)據(jù)庫的數(shù)據(jù)庫查詢的系統(tǒng)。該系統(tǒng)包括網(wǎng)關(guān)服務器和多個工作者節(jié)點。所述網(wǎng)關(guān)服務器被配置為將包含存儲在具有多個數(shù)據(jù)節(jié)點的分布式存儲簇內(nèi)的數(shù)據(jù)的數(shù)據(jù)庫的數(shù)據(jù)庫查詢分成多個局部查詢,并且根據(jù)多個中間結(jié)果構(gòu)建查詢結(jié)果。所述多個工作者節(jié)點中的每個工作者節(jié)點被配置為通過掃描與存儲在分布式存儲簇中的至少一個數(shù)據(jù)節(jié)點上的相應局部查詢相關(guān)的數(shù)據(jù),來處理多個局部查詢的相應局部查詢,并且生成多個中間結(jié)果中的存儲在所述工作者節(jié)點的存儲器內(nèi)的一個中間結(jié)果。
[0014]在本文中介紹的技術(shù)能夠?qū)Υ鎯υ诖笠?guī)模存儲簇(例如,Hadoop簇)內(nèi)的大數(shù)據(jù)集合體執(zhí)行低延遲查詢處理。由于操作人員不需要等待完成當前查詢來確定下一個查詢,所以這對于交互式分析特別有利。通過掃描一部分相關(guān)數(shù)據(jù),這個分布式查詢系統(tǒng)可以進一步生成近似結(jié)果。在處理對整組相關(guān)數(shù)據(jù)的一系列查詢之前,系統(tǒng)的操作人員可以接收一系列查詢的快速原型,以測試這一系列查詢的有效性。
[0015]尤其在所附權(quán)利要求中公開了根據(jù)本發(fā)明的實施方式,涉及一種系統(tǒng)、一種存儲介質(zhì)以及一種方法,其中,也可以在另一個權(quán)利要求目錄(例如,方法)中要求在一個權(quán)利要求目錄(例如,系統(tǒng))中提及的任何特征。
[0016]在本發(fā)明的一個實施方式中,一種系統(tǒng)包括:
[0017]網(wǎng)關(guān)服務器,被配置為從包含存儲在具有多個數(shù)據(jù)節(jié)點的分布式存儲簇內(nèi)的數(shù)據(jù)的數(shù)據(jù)庫的數(shù)據(jù)庫查詢中生成多個局部查詢,并且根據(jù)多個中間結(jié)果構(gòu)建查詢結(jié)果;以及
[0018]多個工作者節(jié)點,其中,所述多個工作者節(jié)點中的每個工作者節(jié)點被配置為通過掃描與相應局部查詢相關(guān)的并且存儲在分布式存儲簇的至少一個數(shù)據(jù)節(jié)點上的數(shù)據(jù),來處理多個局部查詢的相應局部查詢,并且其中,所述多個工作者節(jié)點中的每個工作者節(jié)點進一步被配置為生成多個中間結(jié)果的存儲在所述工作者節(jié)點的存儲器內(nèi)的一個中間結(jié)果。
[0019]所述多個工作者節(jié)點中的每個工作者節(jié)點進一步被配置為通過掃描與存儲在分布式存儲簇的至少一個數(shù)據(jù)節(jié)點上的相應局部查詢相關(guān)的數(shù)據(jù)的一部分,來處理多個局部查詢中的相應局部查詢,并且生成存儲在所述工作者節(jié)點的存儲器內(nèi)的近似中間結(jié)果。
[0020]所述網(wǎng)關(guān)服務器可以進一步被配置為根據(jù)至少一個近似中間結(jié)果構(gòu)建近似查詢結(jié)果。
[0021]所述網(wǎng)關(guān)服務器還可以進一步被配置為根據(jù)多個中間結(jié)果的一部分構(gòu)建近似查詢結(jié)果。
[0022]所述網(wǎng)關(guān)服務器可以甚至進一步被配置為識別離散的工作者節(jié)點,進一步將分配給離散的工作者節(jié)點的局部查詢分成多個從屬局部查詢,并且將所述多個從屬局部查詢分配給所述多個工作者節(jié)點中的一些工作者節(jié)點,其中,所述離散的工作者節(jié)點是未向網(wǎng)關(guān)服務器報告進度或者在預定的時間段之后向網(wǎng)關(guān)服務器報告低于預定值的進度的工作者節(jié)點。
[0023]所述多個工作者節(jié)點中的每個工作者節(jié)點可以是在分布式存儲簇內(nèi)運行相應數(shù)據(jù)節(jié)點的服務。
[0024]所述系統(tǒng)可以進一步包括:
[0025]元數(shù)據(jù)緩存,被配置為緩存數(shù)據(jù)庫的表格級元數(shù)據(jù)以及分布式存儲簇的文件級元數(shù)據(jù)。
[0026]所述元數(shù)據(jù)緩存可以被配置為保持來自用于所述數(shù)據(jù)庫查詢的前一數(shù)據(jù)庫查詢的緩存的元數(shù)據(jù)。
[0027]所述多個工作者節(jié)點中的每個工作者節(jié)點可以將心跳消息定期發(fā)送給網(wǎng)關(guān)服務器,以通過所述工作節(jié)點報告局部查詢處理的狀態(tài)。
[0028]所述網(wǎng)關(guān)服務器可以進一步被配置為從客戶端裝置接收指令,以返回近似查詢結(jié)果或終止數(shù)據(jù)庫查詢的處理。
[0029]所述網(wǎng)關(guān)服務器還可以進一步被配置為指示工作節(jié)點立即返回近似中間結(jié)果,并且根據(jù)近似中間結(jié)果,將近似查詢結(jié)果返回至客戶端裝置。
[0030]所述數(shù)據(jù)庫查詢可以包括近似查詢結(jié)果的請求。
[0031]所述查詢結(jié)果可以伴有存儲在數(shù)據(jù)節(jié)點內(nèi)的已經(jīng)為所述查詢結(jié)果掃描的一部分相關(guān)數(shù)據(jù)的指示。
[0032]所述數(shù)據(jù)庫可以是Hive數(shù)據(jù)倉庫系統(tǒng),并且所述分布式存儲簇是Hadoop簇。
[0033]在本發(fā)明的進一步實施方式中,一種方法使用根據(jù)本發(fā)明或上述實施方式中的任一個所述的系統(tǒng)。
[0034]在本發(fā)明的進一步實施方式中,一種方法包括:
[0035]從客戶端裝置中接收包含存儲在具有多個數(shù)據(jù)節(jié)點的分布式存儲簇內(nèi)的數(shù)據(jù)的數(shù)據(jù)庫的數(shù)據(jù)庫查詢;
[0036]將數(shù)據(jù)庫查詢分成多個局部查詢;
[0037]將每個局部查詢發(fā)送給多個工作者節(jié)點中的相應工作者節(jié)點,其中,每個工作者節(jié)點是在分布式存儲簇的數(shù)據(jù)節(jié)點上運行的服務;
[0038]從工作者節(jié)點中檢索局部查詢的多個中間結(jié)果,其中,通過掃描存儲在運行相
當前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1