一種分布式數(shù)據(jù)庫查詢方法及裝置制造方法
【專利摘要】本發(fā)明實施例涉及數(shù)據(jù)庫查詢【技術領域】,尤其涉及一種分布式數(shù)據(jù)庫查詢方法及裝置。該方法包括:A、從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句;B、在分布式數(shù)據(jù)庫中執(zhí)行待查詢語句,并匯總待查詢語句的數(shù)據(jù)查詢結(jié)果;C、在初始查詢語句中采用待查詢語句的數(shù)據(jù)查詢結(jié)果替換待查詢語句,以重新形成初始查詢語句;D、判斷重新形成的初始查詢語句是否包括子查詢語句,若包括,則重復步驟A-步驟C;否則,在分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。該方法能夠完整的執(zhí)行針對分布式數(shù)據(jù)庫的嵌套查詢,提高數(shù)據(jù)查詢結(jié)果的準確性。
【專利說明】一種分布式數(shù)據(jù)庫查詢方法及裝置
【技術領域】
[0001]本發(fā)明實施例涉及數(shù)據(jù)庫查詢【技術領域】,尤其涉及一種分布式數(shù)據(jù)庫查詢方法及
>J-U ρ?α裝直。
【背景技術】
[0002]在分布式數(shù)據(jù)庫的中間件系統(tǒng)中,DML(Data Manipulat1n Language,數(shù)據(jù)操縱語言命令)語句可能為包括子查詢語句的嵌套查詢語句。在分布式數(shù)據(jù)庫中執(zhí)行子查詢可能需要涉及到多個數(shù)據(jù)分片。具體的,在分布式數(shù)據(jù)庫中執(zhí)行子查詢時,需要首先解析出子查詢的具體內(nèi)容,然后根據(jù)路由把子查詢發(fā)往到各個數(shù)據(jù)分片并收集子查詢在各個數(shù)據(jù)分片的查詢結(jié)果,才能在上一級查詢中進行后續(xù)的查詢。
[0003]在分布式數(shù)據(jù)庫 中,只有子查詢所涉及的表、路由和分配方式分別與父查詢所涉及的表、路由和分片方式均一致時,才能夠不受限制的支持嵌套查詢。然而,實現(xiàn)子查詢所涉及的表、路由和分配方式分別與父查詢所涉及的表、路由和分片方式一致,對SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)語句的要求特別高,可操作性不強。目前尚且缺乏在分布式數(shù)據(jù)庫的中間件系統(tǒng)中能夠完整的執(zhí)行嵌套查詢方法,數(shù)據(jù)查詢結(jié)果的準確性較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例的目的是提出一種分布式數(shù)據(jù)庫查詢方法及裝置,以使得在分布式數(shù)據(jù)庫的中間件系統(tǒng)中能夠完整的執(zhí)行嵌套查詢,以提高數(shù)據(jù)查詢結(jié)果的準確性。
[0005]一方面,本發(fā)明實施例中提供了一種分布式數(shù)據(jù)庫查詢方法,包括:
[0006]A、從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句;
[0007]B、在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果;
[0008]C、在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句;
[0009]D、判斷重新形成的初始查詢語句是否包括子查詢語句,若包括,則重復步驟A-步驟C ;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總所述重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。
[0010]另一方面,本發(fā)明實施例中提供了一種分布式數(shù)據(jù)庫查詢裝置,包括:
[0011]語句獲取單元,用于從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句;
[0012]查詢執(zhí)行單元,在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果;
[0013]語句拼裝單元,在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句;
[0014]執(zhí)行及結(jié)果匯總單元,則再次觸發(fā)所述語句獲取單元、所述查詢執(zhí)行單元和所述語句拼裝單元執(zhí)行相應操作,以重新形成待查詢語句;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總所述重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。
[0015]本發(fā)明實施例中提供的分布式數(shù)據(jù)庫查詢方法及裝置,能夠在分布式數(shù)據(jù)庫的中間件系統(tǒng)中完整的執(zhí)行嵌套查詢。本發(fā)明實施例中,從SQL初始查詢語句中解析出子查詢語句和初始查詢語句的解析關系,采用子查詢語句的結(jié)果能夠?qū)⒊跏疾樵冋Z句重新拼裝形成新的迭代后的SQL查詢,從而使整個裝置能夠處理復雜的包括子查詢語句的嵌套查詢語句。
【專利附圖】
【附圖說明】
[0016]此處所說明的附圖用來提供對本發(fā)明實施例的進一步理解,構(gòu)成本發(fā)明實施例的一部分,并不構(gòu)成對本發(fā)明實施例的限定。在附圖中:
[0017]圖1是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢方法的實現(xiàn)流程圖;
[0018]圖2是解析獲得初始待查詢語句的實現(xiàn)流程圖;
[0019]圖3是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢的方法的實現(xiàn)流程圖;
[0020]圖4是執(zhí)行不包括子查詢的待查詢語句的實現(xiàn)流程圖;
[0021]圖5是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0022]下面結(jié)合附圖及具體實施例對本發(fā)明實施例進行更加詳細與完整的說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅用于解釋本發(fā)明實施例,而非對本發(fā)明實施例的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明實施例相關的部分而非全部內(nèi)容。
[0023]圖1是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢方法的實現(xiàn)流程圖,該實現(xiàn)流程包括:
[0024]步驟11、從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句。
[0025]初始查詢語句指的是包括子查詢語句的嵌套查詢語句。解析針對分布式數(shù)據(jù)庫的初始查詢語句,以獲得不包括子查詢語句的查詢語句,作為待查詢語句。當所述初始查詢語句為包括至少兩層子查詢的嵌套查詢語句時,獲得的待查詢語句為所述初始查詢語句的最內(nèi)層子查詢語句。
[0026]圖2是解析獲得初始待查詢語句的實現(xiàn)流程圖。如圖2所示,從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句,具體可以包括:
[0027]步驟111、解析所述初始查詢語句,獲得所述初始查詢語句的子查詢語句,作為待查詢語句。由于所述初始查詢語句為嵌套查詢語句,故首先獲得所述初始查詢語句的子查詢語句,作為待查詢語句。另外,由于在分布式數(shù)據(jù)庫中,只有子查詢所涉及的表、路由和分配方式分別與父查詢所涉及的表、路由和分片方式均一致時,才能夠不受限制的支持嵌套查詢,故,若所述待查詢語句中包括子查詢語句,則無法完整獲得所述待查詢語句的完整數(shù)據(jù)查詢結(jié)果。
[0028]步驟112、若所述待查詢語句包括子查詢語句,則獲得所述待查詢語句的子查詢語句,作為新的待查詢語句。
[0029]需要說明的是,若所述待查詢語句中不包括子查詢語句,則獲得步驟111中的所述待查詢語句,并結(jié)束步驟11的操作。
[0030]步驟113、在通過步驟112獲得新的待查詢語句之后,重復執(zhí)行步驟112,直到獲得不包括子查詢的查詢語句,作為待查詢語句為止。通過執(zhí)行步驟111-步驟113最終獲得的待查詢語句中不包括子查詢語句。
[0031]步驟12、在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果。
[0032]在分布式數(shù)據(jù)庫中,執(zhí)行步驟11中獲得的待查詢語句。具體的,根據(jù)路由信息把所述待查詢語句發(fā)往到各個數(shù)據(jù)庫分片中,執(zhí)行所述待查詢語句,并收集匯總數(shù)據(jù)查詢結(jié)果。由于待查詢語句中不包括子查詢語句,故在分布式數(shù)據(jù)庫中能夠完整的執(zhí)行所述待查詢語句,即匯總的數(shù)據(jù)查詢結(jié)果是所述待查詢語句針對分布式數(shù)據(jù)庫的完整結(jié)果。
[0033]其中,在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的查詢結(jié)果,具體可以包括:解析獲得所述待查詢語句在所述分布式數(shù)據(jù)庫中涉及的各個數(shù)據(jù)庫分片;在涉及的各個數(shù)據(jù)庫分片上分別執(zhí)行所述待查詢語句。
[0034]步驟13、在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句。
[0035]在所述初始查詢語句中,采用步驟12中匯總的所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成待查詢語句。若步驟11中的初始待查詢語句為K層嵌套查詢語句,則步驟13中重新形成的初始查詢語句為(K-1)層嵌套查詢語句,其中,K為大于等于2的自然數(shù)。
[0036]需要說明的是,在匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果之后,且在重新形成待查詢語句之前,還可以包括:將匯總的查詢結(jié)果封裝成統(tǒng)一的數(shù)據(jù)格式。例如,將步驟12中獲得的待查詢語句數(shù)據(jù)查詢結(jié)果封裝成統(tǒng)一的第三方格式,比如封裝成JSON(JavaScriptObject Notat1n, JavaScript 對象的符號)數(shù)據(jù)或 PB (Protocal Buffer,協(xié)議緩沖區(qū))數(shù)據(jù)等形式。
[0037]當步驟12中獲得的數(shù)據(jù)查詢結(jié)果封裝成統(tǒng)一的數(shù)據(jù)格式之后,在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,還可以包括:解析所述統(tǒng)一的數(shù)據(jù)格式中的數(shù)據(jù)內(nèi)容,并且在所述初始查詢語句中采用所述解析的數(shù)據(jù)內(nèi)容替換所述待查詢語句。即初始查詢語句去解析第三方格式中的數(shù)據(jù)內(nèi)容,解析之后在所述初始查詢語句中采用所述解析的數(shù)據(jù)內(nèi)容替換所述待查詢語句,以完成初始查詢語句的再次拼裝。
[0038]步驟14、判斷重新形成的待查詢語句是否包括子查詢語句,若包括,則重復步驟11-步驟13 ;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的待查詢語句,并匯總所述重新形成的待查詢語句的數(shù)據(jù)查詢結(jié)果。
[0039]判斷步驟13中重新形成的初始查詢語句中是否包括子查詢語句,若包括,則重復執(zhí)行步驟11-步驟13,以重新形成初始查詢語句,且重新形成的初始查詢語句中不包括子查詢語句。由于步驟14中能夠獲得不包括子查詢語句的初始查詢語句,故在分布式數(shù)據(jù)庫中能夠完整獲得查收查詢語句的數(shù)據(jù)查詢結(jié)果。
[0040]本發(fā)明實施例中提供的分布式數(shù)據(jù)庫查詢的方法,在分布式數(shù)據(jù)庫的中間件系統(tǒng)中,通過初始查詢語句與待查詢語句的解析關系,能夠?qū)⒋樵冋Z句的數(shù)據(jù)查詢結(jié)果與初始查詢語句重新拼裝成新的迭代后的初始查詢語句,從而能夠完整的獲得針對分布式數(shù)據(jù)庫的嵌套查詢語句的數(shù)據(jù)查詢結(jié)果。
[0041]圖3是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢的方法的實現(xiàn)流程圖,如圖3所示,該方法主要包括4個步驟,其中步驟11-步驟13是不斷迭代執(zhí)行的。
[0042]步驟11、首先解析出完整的SQL初始查詢語句中的子查詢語句以及子查詢語句與初始查詢語句交互方式;
[0043]步驟12、有效在分布式數(shù)據(jù)庫中執(zhí)行子查詢語句;
[0044]步驟13、匯總子查詢語句的數(shù)據(jù)查詢結(jié)果,并且根據(jù)子查詢語句與初始查詢語句的交互方式,重新拼裝SQL,以獲得新的初始查詢語句;
[0045]步驟14、在分布式數(shù)據(jù)庫中執(zhí)行重新拼裝形成的初始查詢語句。其中,在分布式數(shù)據(jù)庫中執(zhí)行重新拼裝形成的初始查詢語句具體的為不斷迭代執(zhí)行步驟11-步驟13,直到獲得步驟11中初始查詢語句的數(shù)據(jù)查詢結(jié)果為止。
[0046]例如,步驟11 中初始查詢語句如下:
[0047]SELECT FirstNamel
[0048], [MiddleName]
[0049], [LastName]
[0050]FROMrAdventurefforksl.[Person].[Contact]
[0051]WHEREContactIDIN
[0052](SELECTEmployeeID
[0053]FROMrAdventurefforksl.[HumanResources].[Employee]
[0054]WHERESickLeaveHours>68)
[0055]上述初始查詢語句的處理過程具體如下:
[0056]步驟11、首先通過SQL解析,解析初始查詢語句中的不包括子查詢語句的查詢語句,作為待查詢語句,獲得的待查詢語句如下:
[0057]SELECTEmployeeID
[0058]FROMrAdventurefforksl.[HumanResources].[Employee]
[0059]WHERESickLeaveHours>68
[0060]步驟12、執(zhí)行待查詢語句,待查詢語句的執(zhí)行過程會涉及到數(shù)據(jù)庫分片的路由,可能會發(fā)送到若干數(shù)據(jù)庫存分片去執(zhí)行如下待查詢語句:
[0061]SELECTEmployeeID
[0062]FROMrAdventurefforksl.[HumanResources].[Employee]
[0063]WHERESickLeaveHours>68
[0064]步驟13、通過步驟12獲得待查詢語句的數(shù)據(jù)查詢結(jié)果之后,與初始查詢語句中“WHERE”關鍵詞進行再次拼裝和處理,例如,若該待查詢語句返回的是ID數(shù)據(jù)為(1,3,89),則該結(jié)果重新與初始查詢語句進行SQL拼裝組合形成的新的待查詢語句,如下:[0065]SELECT TFirstNamel
[0066], [MiddleName]
[0067], [LastName]
[0068]FROMrAdventurefforksl.[Person].[Contact]
[0069]WHEREContactIDIN(I, 23,89)
[0070]步驟14、將步驟13中形成的新的待查詢語句發(fā)到相應的數(shù)據(jù)庫分片上去執(zhí)行,再次取得的數(shù)據(jù)查詢結(jié)果為最終結(jié)果。
[0071]圖4是執(zhí)行不包括子查詢的待查詢語句的實現(xiàn)流程圖,如圖4所示,在分布式數(shù)據(jù)庫中執(zhí)行不包括子查詢的待查詢語句時,主要包括如下步驟=SQL語句解析、操作對象解析、普通SQL優(yōu)化器操作、SQL查詢語句沖拼裝、元數(shù)據(jù)管理、路由管理、JOIN分拆處理等。其中,SQL語句解析具體可以包括:對操作對象中數(shù)據(jù)庫或表信息的解析、對數(shù)據(jù)操作的解析、對執(zhí)行條件“where”的處理和其它執(zhí)行條件的解析處理,例如“Having”或“l(fā)imit”等執(zhí)行條件的解析處理。元數(shù)據(jù)管理,具體用于處理查詢語句涉及的元數(shù)據(jù)。普通SQL優(yōu)化器能夠通過查詢語句等價變化或“where”語句分析實現(xiàn)初步執(zhí)行分拆。JOIN語句,用于根據(jù)兩個或多個表中的列之間的關系,從所述兩個表或多個表中查詢數(shù)據(jù)。在JOIN分拆處理和獲得初步執(zhí)行分拆之后,還能夠依據(jù)JOIN分拆處理結(jié)果和查詢語句重拼裝,重新形成多個執(zhí)行計劃;根據(jù)重新形成的多個執(zhí)行計劃和后期處理信息,通過分離查詢處理和后處理操作,獲得初始查詢語句的數(shù)據(jù)查詢結(jié)果。
[0072]以下為本發(fā)明實施例的裝置實施例,本發(fā)明方法實施例和裝置實施例屬于同一構(gòu)思,在裝置實施例中未詳盡描述的細節(jié)內(nèi)容,可以參考上述方法實施例。
[0073]圖5是本發(fā)明一實施例中提供的分布式數(shù)據(jù)庫查詢裝置的結(jié)構(gòu)示意圖。如圖5所示,本實施例所述的分布式數(shù)據(jù)庫查詢裝置包括:語句獲取單元31,用于從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句;查詢執(zhí)行單元32,在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果;語句拼裝單元33,在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句;執(zhí)行及結(jié)果匯總單元34,則再次觸發(fā)所述語句獲取單元、所述查詢執(zhí)行單元和所述語句拼裝單元執(zhí)行相應操作,以重新形成待查詢語句;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總所述重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。
[0074]其中,所述語句獲取單元31具體可以包括:第一獲取子單元,解析所述初始查詢語句,獲得所述初始查詢語句的子查詢語句,作為待查詢語句;第二獲取子單元,若所述待查詢語句包括子查詢語句,則獲得所述待查詢語句的子查詢語句,作為新的待查詢語句;第三獲取子單元,再次觸發(fā)所述第二獲取子單元執(zhí)行相應操作,直到獲得不包括子查詢的查詢語句,作為待查詢語句為止。
[0075]其中,所述查詢執(zhí)行單元32具體可以包括:分片獲取子單元,用于解析獲得所述待查詢語句在所述分布式數(shù)據(jù)庫中涉及的各個數(shù)據(jù)庫分片;執(zhí)行子單元,用于在涉及的各個數(shù)據(jù)庫分片上分別執(zhí)行所述待查詢語句。
[0076]其中,該分布式數(shù)據(jù)庫查詢裝置,還可以包括:結(jié)果封裝單元,用于將匯總的查詢結(jié)果封裝成統(tǒng)一的數(shù)據(jù)格式。此時,所述語句拼裝單元33具體包括:數(shù)據(jù)解析子單元,用于解析所述統(tǒng)一的數(shù)據(jù)格式中的數(shù)據(jù)內(nèi)容;以及,語句拼裝子單元,用于在所述初始查詢語句中采用所述解析的數(shù)據(jù)內(nèi)容替換所述待查詢語句。
[0077]本發(fā)明實施例提出分布式數(shù)據(jù)庫查詢裝置,可以讓分布式數(shù)據(jù)庫中間件系統(tǒng)能夠保持分布式系統(tǒng)的優(yōu)點的前提下,盡可能的處理復雜的包括子查詢的嵌套查詢語句,并且能夠支持OLAP (On-Line Analysis Processing,聯(lián)機分析處理)的應用。
[0078]上所述僅為本發(fā)明實施例的優(yōu)選實施例,并不用于限制本發(fā)明實施例,對于本領域技術人員而言,本發(fā)明實施例可以有各種改動和變化。凡在本發(fā)明實施例的精神和原理之內(nèi)所作的任何修改、等同替換、改進等,均應包含在本發(fā)明實施例的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式數(shù)據(jù)庫查詢方法,其特征在于,包括: A、從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句; B、在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果; C、在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句; D、判斷重新形成的初始查詢語句是否包括子查詢語句,若包括,則重復步驟A-步驟C;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總所述重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句,包括: Al、解析所述初始查詢語句,獲得所述初始查詢語句的子查詢語句,作為待查詢語句; A2、若所述待查詢語句包括子查詢語句,則獲得所述待查詢語句的子查詢語句,作為新的待查詢語句; A3、重復執(zhí)行步驟A2,直到 獲得不包括子查詢的查詢語句,作為待查詢語句為止。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的查詢結(jié)果,包括: 解析獲得所述待查詢語句在所述分布式數(shù)據(jù)庫中涉及的各個數(shù)據(jù)庫分片; 在涉及的各個數(shù)據(jù)庫分片上分別執(zhí)行所述待查詢語句。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果之后且在重新形成待查詢語句之前,還包括: 將匯總的查詢結(jié)果封裝成統(tǒng)一的數(shù)據(jù)格式。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,包括: 解析所述統(tǒng)一的數(shù)據(jù)格式中的數(shù)據(jù)內(nèi)容,并且在所述初始查詢語句中采用所述解析的數(shù)據(jù)內(nèi)容替換所述待查詢語句。
6.一種分布式數(shù)據(jù)庫查詢裝置,其特征在于,包括: 語句獲取單元,用于從分布式數(shù)據(jù)庫的初始查詢語句中解析獲得不包括子查詢語句的查詢語句,作為待查詢語句; 查詢執(zhí)行單元,在所述分布式數(shù)據(jù)庫中執(zhí)行所述待查詢語句,并匯總所述待查詢語句的數(shù)據(jù)查詢結(jié)果; 語句拼裝單元,在所述初始查詢語句中采用所述待查詢語句的數(shù)據(jù)查詢結(jié)果替換所述待查詢語句,以重新形成初始查詢語句; 執(zhí)行及結(jié)果匯總單元,則再次觸發(fā)所述語句獲取單元、所述查詢執(zhí)行單元和所述語句拼裝單元執(zhí)行相應操作,以重新形成待查詢語句;否則,在所述分布式數(shù)據(jù)庫中執(zhí)行重新形成的初始查詢語句,并匯總所述重新形成的初始查詢語句的數(shù)據(jù)查詢結(jié)果。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述語句獲取單元具體包括: 第一獲取子單元,解析所述初始查詢語句,獲得所述初始查詢語句的子查詢語句,作為待查詢語句; 第二獲取子單元,若所述待查詢語句包括子查詢語句,則獲得所述待查詢語句的子查詢語句,作為新的待查詢語句; 第三獲取子單元,再次觸發(fā)所述第二獲取子單元執(zhí)行相應操作,直到獲得不包括子查詢的查詢語句,作為待查詢語句為止。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述查詢執(zhí)行單元具體包括: 分片獲取子單元,用于解析獲得所述待查詢語句在所述分布式數(shù)據(jù)庫中涉及的各個數(shù)據(jù)庫分片; 執(zhí)行子單元,用于在涉及的各個數(shù)據(jù)庫分片上分別執(zhí)行所述待查詢語句。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 結(jié)果封裝單元,用于將匯總的查詢結(jié)果封裝成統(tǒng)一的數(shù)據(jù)格式。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述語句拼裝單元具體包括: 數(shù)據(jù)解析子單元,用于解析所述統(tǒng)一的數(shù)據(jù)格式中的數(shù)據(jù)內(nèi)容;以及, 語句拼裝子單元,用于在所述初始查詢語句中采用所述解析的數(shù)據(jù)內(nèi)容替換所述待查詢語句。
【文檔編號】G06F17/30GK104036007SQ201410283343
【公開日】2014年9月10日 申請日期:2014年6月23日 優(yōu)先權(quán)日:2014年6月23日
【發(fā)明者】秦波, 馬麗偉, 趙曉平, 王 鋒, 唐超 申請人:北京京東尚科信息技術有限公司, 北京京東世紀貿(mào)易有限公司