本發(fā)明涉及異構(gòu)數(shù)據(jù)源查詢技術(shù)領(lǐng)域,尤其是一種基于異構(gòu)數(shù)據(jù)源和分布式文件系統(tǒng)的融合查詢方法。
背景技術(shù):
近年來,伴隨著計算機技術(shù)和互聯(lián)網(wǎng)的快速發(fā)展,開啟信息爆炸的時代。社會上充斥著比以往更多的數(shù)據(jù),促成種類繁多的數(shù)據(jù)系統(tǒng)的建立。傳統(tǒng)的數(shù)據(jù)存儲方式多是基于關(guān)系型數(shù)據(jù)庫如myspl、oracle和sqlserver進行存儲,在少量數(shù)據(jù)的場景下,獲得了良好的用戶體驗。但隨著海量數(shù)據(jù)時代的到來,新型的分布式文件系統(tǒng)hdfs,因其高容錯和更廉價的存儲擴展,收到越來越多人的青睞。全文搜索是大數(shù)據(jù)時代的關(guān)鍵應用,elasticsearch作為當前流行的企業(yè)級搜索引擎,能夠達到實時搜索、穩(wěn)定、可靠、快速的效果。
由于歷史原因及當時的技術(shù)條件限制,上述數(shù)據(jù)系統(tǒng)多是獨立建設并自成系統(tǒng)。在便捷化、信息化的大趨勢下,這些數(shù)量眾多的數(shù)據(jù)系統(tǒng)存在的問題也逐漸凸顯出來,主要有如下兩個方面:1、各數(shù)據(jù)源獨立,無統(tǒng)一標準,很難通過統(tǒng)一的接口進行數(shù)據(jù)查詢;2、各應用系統(tǒng)基于不同數(shù)據(jù)源建立,由于數(shù)據(jù)源間的標準不統(tǒng)一,無法實現(xiàn)系統(tǒng)之間的數(shù)據(jù)共享、連接和融合查詢。基于以上的情況,建立一套融合數(shù)據(jù)查詢接口,用于所有數(shù)據(jù)源的規(guī)范化查詢,就成為了一個緊迫的任務。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題在于,提供一種基于異構(gòu)數(shù)據(jù)源和分布式文件系統(tǒng)的融合查詢方法,能夠方便的進行結(jié)構(gòu)化數(shù)據(jù)庫查詢。
為解決上述技術(shù)問題,本發(fā)明提供一種基于異構(gòu)數(shù)據(jù)源和分布式文件系統(tǒng)的融合查詢方法,包括如下步驟:
(1)用戶向系統(tǒng)發(fā)起查詢請求;系統(tǒng)包括處理節(jié)點、源數(shù)據(jù)節(jié)點和維護節(jié)點;
(2)處理節(jié)點接收用戶的請求,分析請求生成語法執(zhí)行樹;
(3)處理節(jié)點和源數(shù)據(jù)節(jié)點交互,獲取各個表的源數(shù)據(jù)信息,并根據(jù)源數(shù)據(jù)類型的不同進行任務的下發(fā);
(4)目標數(shù)據(jù)源根據(jù)請求進行數(shù)據(jù)提取和分析,并返回篩選后的數(shù)據(jù);
(5)處理節(jié)點對返回的數(shù)據(jù)進行傳輸、聚合和連接操作,將處理后的結(jié)果返回給用戶。
優(yōu)選的,步驟(1)中,源數(shù)據(jù)節(jié)點存放源數(shù)據(jù)信息,并對源數(shù)據(jù)進行緩存操作;維護節(jié)點監(jiān)控源數(shù)據(jù)節(jié)點和處理節(jié)點的健康狀態(tài),如果運行過程中某一個節(jié)點發(fā)生異常情況,則對異常情況作出處理;處理節(jié)點接收用戶請求,并與源數(shù)據(jù)節(jié)點交互獲取源數(shù)據(jù)信息,根據(jù)請求分析的結(jié)果進行任務分發(fā)、數(shù)據(jù)接收、傳輸、聚合操作。
優(yōu)選的,步驟(1)中,查詢請求包括特定數(shù)據(jù)庫表查詢,分布式文件數(shù)據(jù)查詢和異構(gòu)數(shù)據(jù)源數(shù)據(jù)聯(lián)合查詢。
本發(fā)明的有益效果為:用戶可以方便的進行異構(gòu)數(shù)據(jù)源sql查詢,例如使用專門的驅(qū)動程序,查詢不同的數(shù)據(jù)源如mysql、oracle、sqlserver和elasticsearch等;用戶可以利用分布式查詢技術(shù),實現(xiàn)分布式文件系統(tǒng)和異構(gòu)數(shù)據(jù)源間的融合查詢,如連接操作、子查詢等。
附圖說明
圖1是本發(fā)明的結(jié)構(gòu)示意圖。
圖2是本發(fā)明的方法流程示意圖。
具體實施方式
下文將參考附圖并結(jié)合具體實施例對本發(fā)明進行詳細說明。
圖1是根據(jù)本發(fā)明實施的異構(gòu)數(shù)據(jù)源和分布式文件系統(tǒng)的融合查詢方法的結(jié)構(gòu)示意圖。其中包含處理節(jié)點、源數(shù)據(jù)節(jié)點和維護節(jié)點三個基本邏輯模塊。
源數(shù)據(jù)節(jié)點負責存放源數(shù)據(jù)信息,如hdfs文件塊位置和結(jié)構(gòu)化數(shù)據(jù)庫信息等,并對源數(shù)據(jù)進行緩存操作。
維護節(jié)點負責監(jiān)控源數(shù)據(jù)節(jié)點和處理節(jié)點的健康狀態(tài),如果運行過程中,某一個節(jié)點發(fā)生異常情況,系統(tǒng)對這種異常情況作出處理。
處理節(jié)點負責接收用戶請求,并與源數(shù)據(jù)節(jié)點交互獲取源數(shù)據(jù)信息。根據(jù)請求分析的結(jié)果進行任務分發(fā),數(shù)據(jù)接收,傳輸,聚合等操作。
圖2是根據(jù)本發(fā)明實施的結(jié)構(gòu)化數(shù)據(jù)庫和分布式文件系統(tǒng)的融合查詢方法的流程示意圖。下面介紹具體的步驟:
(1)用戶發(fā)起查詢請求,含特定數(shù)據(jù)庫表查詢,分布式文件數(shù)據(jù)查詢,異構(gòu)數(shù)據(jù)源數(shù)據(jù)聯(lián)合查詢等。
(2)處理節(jié)點接收請求,并提交內(nèi)部系統(tǒng)。
(3)處理節(jié)點分析請求,并生成語法執(zhí)行樹。
(4)處理節(jié)點和源數(shù)據(jù)節(jié)點交互,獲取各個表的源數(shù)據(jù)信息。并根據(jù)源數(shù)據(jù)類型的不同,進行任務下發(fā)。
(5)目標數(shù)據(jù)源根據(jù)請求進行數(shù)據(jù)提取、分析,并返回篩選后的數(shù)據(jù)。
(6)處理節(jié)點對返回的數(shù)據(jù)進行傳輸,聚合,連接操作。
(7)處理節(jié)點將處理后的結(jié)果返回給用戶。
通過上述的基本流程,用戶可以定制化進行統(tǒng)一接口的異構(gòu)數(shù)據(jù)源查詢,并能實現(xiàn)異構(gòu)數(shù)據(jù)源乃至多數(shù)據(jù)源間的連接操作。如果數(shù)據(jù)分布在分布式文件系統(tǒng)上,系統(tǒng)可以充分利用分布式的特性,實現(xiàn)分布查詢功能。
本發(fā)明基于標準sql提供一種規(guī)范化的數(shù)據(jù)詳單查詢方法,包含查詢不同的異構(gòu)數(shù)據(jù)源上數(shù)據(jù),查詢分布式文件系統(tǒng)hdfs上的數(shù)據(jù)?;跇藴蕇ql提供一種結(jié)構(gòu)化數(shù)據(jù)庫融合查詢方法,包含實現(xiàn)不同數(shù)據(jù)源如mysql,全文表的連接查詢基于標準sql提供一種分布式文件系統(tǒng)和異構(gòu)數(shù)據(jù)源融合查詢方法。
通過采用上述方案,用戶可以方便的進行異構(gòu)數(shù)據(jù)源查詢,比如使用專門的驅(qū)動程序,查詢不同的數(shù)據(jù)源如mysql、oracle、全文表。更進一步,用戶可以利用分布式查詢技術(shù),實現(xiàn)分布式文件系統(tǒng)和異構(gòu)數(shù)據(jù)源的融合查詢,如連接操作、子查詢等。
盡管本發(fā)明就優(yōu)選實施方式進行了示意和描述,但本領(lǐng)域的技術(shù)人員應當理解,只要不超出本發(fā)明的權(quán)利要求所限定的范圍,可以對本發(fā)明進行各種變化和修改。