本發(fā)明涉及一種支持對數(shù)據(jù)中心海量數(shù)據(jù)的全局分組、統(tǒng)計、排序等復(fù)雜檢索的跨地域查詢方法及系統(tǒng),屬于大數(shù)據(jù)處理領(lǐng)域。
背景技術(shù):
隨著計算機技術(shù)的不斷發(fā)展和信息化程度的不斷提高,數(shù)據(jù)量迅速增長,面向海量數(shù)據(jù)存儲及應(yīng)用也隨之蓬勃發(fā)展,大數(shù)據(jù)應(yīng)用越來越廣泛。如,在網(wǎng)絡(luò)安全上,使用大數(shù)據(jù)技術(shù)分析網(wǎng)絡(luò)攻擊行為;在電子商務(wù)上,使用大數(shù)據(jù)技術(shù)分析用戶購物喜好或最受青睞的商品;在城市建設(shè)上,利用大數(shù)據(jù)技術(shù)構(gòu)建智慧城市,方便人民出行。諸如此類,大數(shù)據(jù)技術(shù)在建設(shè)節(jié)約型社會,提高生成效率等方面起到了積極的推動作用。
但隨著數(shù)據(jù)量的持續(xù)增大和大數(shù)據(jù)應(yīng)用的不斷發(fā)展,用于分業(yè)務(wù)或分省點存儲數(shù)據(jù)的數(shù)據(jù)中心也越來越多。某些行業(yè)或機構(gòu)(尤其政府、公安、部隊等領(lǐng)域)常設(shè)立多個數(shù)據(jù)中心用于存儲業(yè)務(wù)數(shù)據(jù),如此在海量數(shù)據(jù)分析應(yīng)用中,只能對單數(shù)據(jù)中心進行數(shù)據(jù)提取,對各數(shù)據(jù)中心的所有數(shù)據(jù)作為整體數(shù)據(jù)集進行分組、統(tǒng)計、排序等簡單分析的需求也日益明顯。在大數(shù)據(jù)應(yīng)用中,將存儲于各數(shù)據(jù)中心的海量數(shù)據(jù)作為整體進行分析是必備手段之一。因此,研究一個囊括各數(shù)據(jù)中心所有數(shù)據(jù)并提供全局查詢的軟件系統(tǒng)成為解決該需求的關(guān)鍵。
技術(shù)實現(xiàn)要素:
為解決上述問題,本發(fā)明的目的就是提供一種支持全局分組、排序等復(fù)雜查詢的跨地域查詢方法及系統(tǒng),提高對各數(shù)據(jù)中心大數(shù)據(jù)的綜合分析能力。
本發(fā)明采用的技術(shù)方案如下:
一種支持全局復(fù)雜檢索的跨地域查詢方法,包括以下步驟:
1)建立用于跨地域查詢的全局元數(shù)據(jù)組織結(jié)構(gòu),其包括全局視圖以及全局視圖與各數(shù)據(jù)中心的數(shù)據(jù)表的映射關(guān)系;
2)根據(jù)各數(shù)據(jù)中心的數(shù)據(jù)表的結(jié)構(gòu)調(diào)整,動態(tài)調(diào)整全局視圖與各數(shù)據(jù)中心的數(shù)據(jù)表的映射關(guān)系;
3)解析用戶的查詢請求,根據(jù)全局元數(shù)據(jù)組織結(jié)構(gòu)將查詢?nèi)蝿?wù)下發(fā)至各數(shù)據(jù)中心執(zhí)行查詢,各數(shù)據(jù)中心將查詢結(jié)果反饋至全局點;
4)全局點將各數(shù)據(jù)中心返回的查詢結(jié)果進行匯總,并將匯總后的數(shù)據(jù)展示給用戶,從而實現(xiàn)跨地域查詢。
進一步地,所述全局元數(shù)據(jù)組織結(jié)構(gòu)中包括數(shù)據(jù)中心的各數(shù)據(jù)表所在引擎、庫以及字段名和類型的描述,全局用戶以及權(quán)限相關(guān)的描述;各數(shù)據(jù)中心建立本地查詢代理的路由配置信息結(jié)構(gòu)。
進一步地,各數(shù)據(jù)中心的表結(jié)構(gòu)信息中包括數(shù)據(jù)中心別稱、表所在引擎、表所在庫、表名及字段描述,其中字段描述中包含字段名稱及字段類型;各數(shù)據(jù)中心的路由配置信息包括數(shù)據(jù)中心別稱、本地查詢代理ip1和本地查詢代理ip2以及虛擬ip;全局用戶分為root用戶和普通用戶,root用戶擁有全局最高權(quán)限,普通用戶由root用戶創(chuàng)建并分配權(quán)限;所述權(quán)限包括增/刪視圖權(quán)限、查詢權(quán)限。
進一步地,全局視圖包括全局視圖名及視圖字段的描述信息;全局視圖與數(shù)據(jù)中心的實體表的映射信息包括全局視圖各字段映射的數(shù)據(jù)中心的具體引擎、庫、表和字段。
進一步地,各數(shù)據(jù)中心實時推送數(shù)據(jù)表的增、刪、改動作,由此聯(lián)動修改全局元數(shù)據(jù),供全局用戶查看數(shù)據(jù)中心的數(shù)據(jù)表,并且動態(tài)調(diào)整因數(shù)據(jù)中心的數(shù)據(jù)表的修改所引起的全局視圖的映射關(guān)系。
一種采用上述方法的支持全局復(fù)雜檢索的跨地域查詢系統(tǒng),包括全局點和各數(shù)據(jù)中心,對全局點和各數(shù)據(jù)中心建立用于跨地域查詢的全局元數(shù)據(jù)組織結(jié)構(gòu),其包括全局視圖以及全局視圖與各數(shù)據(jù)中心的數(shù)據(jù)表的映射關(guān)系;根據(jù)各數(shù)據(jù)中心的數(shù)據(jù)表的結(jié)構(gòu)調(diào)整,動態(tài)調(diào)整全局視圖與各數(shù)據(jù)中心的數(shù)據(jù)表的映射關(guān)系;根據(jù)全局元數(shù)據(jù)組織結(jié)構(gòu)將查詢?nèi)蝿?wù)下發(fā)至各數(shù)據(jù)中心執(zhí)行查詢,各數(shù)據(jù)中心將查詢結(jié)果反饋至全局點;全局點將各數(shù)據(jù)中心返回的查詢結(jié)果進行匯總,并將匯總后的數(shù)據(jù)展示給用戶,從而實現(xiàn)跨地域查詢。
本發(fā)明的有益效果如下:
本發(fā)明的主要創(chuàng)新點是提供了一種支持全局分組、排序等復(fù)雜查詢的跨地域查詢方案,不僅能夠?qū)崿F(xiàn)對數(shù)據(jù)中心別結(jié)構(gòu)變化的動態(tài)感知,而且能從全局將數(shù)據(jù)中心數(shù)據(jù)集當做整體來進行數(shù)據(jù)分析,能夠提高對各數(shù)據(jù)中心大數(shù)據(jù)的綜合分析能力,符合目前的大數(shù)據(jù)分析應(yīng)用需求,在大數(shù)據(jù)處理領(lǐng)域具有很強的實用性和應(yīng)用范圍,具有廣闊的應(yīng)用前景。
附圖說明
圖1為跨地域查詢系統(tǒng)的元數(shù)據(jù)組織結(jié)構(gòu)示意圖;
圖2為全局元數(shù)據(jù)動態(tài)感知流程圖;
圖3為全局查詢流程圖。
具體實施方式
為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面通過具體實施例和附圖,對本發(fā)明做進一步說明。
本發(fā)明提供支持分組、排序等復(fù)雜檢索且具備用戶和權(quán)限控制的跨地域查詢方案,以滿足將數(shù)據(jù)中心當作整體數(shù)據(jù)集來處理的需求,實現(xiàn)不同用戶不同級別的權(quán)限控制,有效提高對各數(shù)據(jù)中心海量數(shù)據(jù)的綜合分析能力。
本發(fā)明的第一方面,給出了跨地域查詢系統(tǒng)的元數(shù)據(jù)組織結(jié)構(gòu)和數(shù)據(jù)中心(后文也稱為分中心)本地查詢代理的路由配置信息結(jié)構(gòu)。其中,元數(shù)據(jù)包括全局二維視圖的描述,全局視圖與數(shù)據(jù)中心實體表到字段級的映射關(guān)系,數(shù)據(jù)中心各數(shù)據(jù)表所在引擎、庫以及字段名和類型的描述,全局用戶以及權(quán)限相關(guān)的描述;路由配置信息包括數(shù)據(jù)中心別稱、本地查詢代理ip1和本地查詢代理ip2以及虛擬ip。以上數(shù)據(jù)組織格式支持全局點由于數(shù)據(jù)中心數(shù)據(jù)表結(jié)構(gòu)調(diào)整的動態(tài)感知以及歷史視圖的映射關(guān)系的動態(tài)調(diào)整。
本發(fā)明的第二方面,該系統(tǒng)支持數(shù)據(jù)中心實時推送本中心的數(shù)據(jù)表的增、刪、改等動作,由此聯(lián)動修改全局元數(shù)據(jù),提供全局用戶查看數(shù)據(jù)中心的數(shù)據(jù)表,并且動態(tài)調(diào)整因數(shù)據(jù)中心的數(shù)據(jù)表的修改所引起的歷史全局視圖映射關(guān)系。
本發(fā)明的第三方面,該系統(tǒng)支持用戶和權(quán)限。用戶分為root用戶和普通用戶,root用戶擁有全局最高權(quán)限,普通用戶由root用戶創(chuàng)建并分配權(quán)限;權(quán)限分為增/刪視圖、查詢(字段級)權(quán)限。
本發(fā)明的第四方面,該系統(tǒng)支持用戶創(chuàng)建全局視圖,并手動指定與數(shù)據(jù)中心的數(shù)據(jù)表的映射關(guān)系,由此建立的全局視圖在全局用戶看來是一個囊括了各數(shù)據(jù)中心的實體表的大表。
圖1給出了跨地域查詢系統(tǒng)的元數(shù)據(jù)組織結(jié)構(gòu)示意圖。一種實施例中,分中心表結(jié)構(gòu)信息中包括分中心別稱、表所在引擎、表所在庫、表名及字段描述等基本信息,其中字段描述中包含字段名稱及字段類型;各數(shù)據(jù)中心本地查詢所屬的數(shù)據(jù)中心別稱、主proxyip、備proxyip以及虛擬ip;全局視圖的元數(shù)據(jù)信息包括視圖名及視圖字段的描述信息;全局視圖與數(shù)據(jù)中心實體表的映射信息包括全局視圖各字段要映射到數(shù)據(jù)中心具體哪個引擎的哪個庫的哪個表的哪個字段,在創(chuàng)建映射信息時,會對全局視圖的字段類型與映射字段類型進行校驗,主要是進行字段類型是否匹配的校驗。
圖2示出了全局元數(shù)據(jù)動態(tài)感知流程圖,具體步驟如下:
步驟201:接收數(shù)據(jù)中心的表結(jié)構(gòu)增/刪/修改的http請求;
步驟202:更新全局點的分中心表結(jié)構(gòu)描述信息;
步驟203:判斷是否為增加數(shù)據(jù)表操作,若是,則執(zhí)行步驟201;否則執(zhí)行204;
步驟204:轉(zhuǎn)向?qū)v史映射關(guān)系的校準模塊,并執(zhí)行相關(guān)邏輯:如果為刪除分中心數(shù)據(jù)表的請求,則對全局映射關(guān)系的所有關(guān)于該表的映射記錄刪除;如果為更新分中心數(shù)據(jù)表的請求,則判斷如果為增加字段請求,則不對已有的全局映射關(guān)系做任何調(diào)整;如果為刪除字段請求,則將該表所對應(yīng)的全局視圖中對應(yīng)的該字段刪除;如果為更新字段名;則將該表所對應(yīng)的全局視圖中對應(yīng)的該字段名更新;
步驟205:根據(jù)步驟204得出是否需要更新映射關(guān)系,若不是,則執(zhí)行步驟201,否則執(zhí)行步驟206;
步驟206:更新映射關(guān)系,并轉(zhuǎn)向步驟201。
圖3給出了全局查詢流程圖,該步驟執(zhí)行的輸入為符合全局語法的sql,具體步驟如下:
步驟301:對用戶輸入的sql語句進行解析;
步驟302:讀取元數(shù)據(jù)及路由信息,對解析后的sql語句進行語義校驗;
步驟303:根據(jù)步驟302語義校驗結(jié)果進行判斷,若sql有誤,則直接退出;否則執(zhí)行步驟304;
步驟304:將sql語句下發(fā)至各數(shù)據(jù)中心執(zhí)行查詢;
步驟305:等待數(shù)據(jù)中心反饋的查詢結(jié)果,若所有數(shù)據(jù)中心查詢有誤(例如:分中心查詢引擎故障,或是數(shù)據(jù)中心至全局點的鏈路網(wǎng)絡(luò)故障,等等),則結(jié)束,否則執(zhí)行步驟306;
步驟306:向查詢無誤的數(shù)據(jù)中心下發(fā)取數(shù)據(jù)請求,數(shù)據(jù)中心分批次將數(shù)據(jù)返回全局點;
步驟307:判斷各數(shù)據(jù)中心是否將所有數(shù)據(jù)全部返回,若無,則繼續(xù)執(zhí)行步驟306,否則執(zhí)行步驟307;
步驟308:判斷是否為普通檢索,若是,則直接將分中心返回的數(shù)據(jù)展示給全局用戶,然后結(jié)束;否則執(zhí)行步驟309;
步驟309:將各數(shù)據(jù)中心返回的查詢結(jié)果進行匯總(這里使用將分中心上報的數(shù)據(jù)結(jié)果生成本地文件,并遠程上傳至hive數(shù)據(jù)倉庫,使用hql語法進行包括分組,排序,limit等查詢),然后將數(shù)據(jù)展示給全局用戶,最后結(jié)束本次查詢。
應(yīng)該注意到并理解,在不脫離后附的權(quán)利要求所要求的本發(fā)明的精神和范圍的情況下,能夠?qū)ι鲜鲈敿毭枋龅谋景l(fā)明做出各種修改和改進。因此,要求保護的技術(shù)方案的范圍不受所給出的任何特定示范教導(dǎo)的限制。本發(fā)明的保護范圍應(yīng)以權(quán)利要求書所述為準。