欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

支持訪問異構數(shù)據(jù)源的系統(tǒng)和方法

文檔序號:6380084閱讀:539來源:國知局

專利名稱::支持訪問異構數(shù)據(jù)源的系統(tǒng)和方法
技術領域
:本發(fā)明涉及支持訪問異構數(shù)據(jù)源的系統(tǒng)和方法。
背景技術
:隨著業(yè)務的快速發(fā)展,關系型數(shù)據(jù)庫不再滿足容量和數(shù)據(jù)量上的要求,因而引入了NoSQL數(shù)據(jù)存儲。對于關系型數(shù)據(jù)庫,存在多種支持多種關系型數(shù)據(jù)庫的訪問框架。典型的代表包括dbproxy以及類似Aladdin的數(shù)據(jù)庫訪問中間件。Dbproxy是一種代理技術,它實現(xiàn)了將訪問指向具體的某個物理數(shù)據(jù)庫,并執(zhí)行后返回結果。它的主要問題在于I)同一時刻只能使用同一種關系型數(shù)據(jù)庫,不支持多種關系型數(shù)據(jù)庫同時使用;2)程序開發(fā)完成后,SQL語句只針對一種特定的關系型數(shù)據(jù)庫,當關系型數(shù)據(jù)庫更換(例如從Oracle換成MySQL)后,需要重寫SQL語句乃至重新開發(fā);3)不能支持NoSQL數(shù)據(jù)存儲的訪問。與此類似的一個技術是C一JDBC和Aladdin。C-JDBC是在普通硬件上的基于JDBC實現(xiàn)的訪問關系型數(shù)據(jù)庫集群的中間件,它為應用程序提供一個單一的數(shù)據(jù)庫視圖??蛻舳顺绦虿挥眯薷?,就可透明地訪問不同類型的關系型數(shù)據(jù)庫集群。Aladdin是一個訪問關系型數(shù)據(jù)庫的中間件,它的后端可以同時連接各種數(shù)據(jù)庫,Aladdin在解決企業(yè)在數(shù)據(jù)庫整合上面提供積極的幫助。使用者不需要知道后端到底使用了什么類型的數(shù)據(jù)庫、數(shù)據(jù)庫的物理地址,這些由Aladdin來分析SQL語句,并且獲得相應的要查詢的表跟條件,然后由這些規(guī)則結合這些條件進行路由到相關的物理數(shù)據(jù)庫。C-JDBC以及Aladdin的主要問題在于I)不支持NoSQL類型的數(shù)據(jù)存儲;2)僅能訪問單一的數(shù)據(jù)存儲。綜上所述,現(xiàn)有技術不能解決如下問題(I)支持NoSQL類型的數(shù)據(jù)存儲;(2)異構數(shù)據(jù)存儲下的統(tǒng)一訪問實現(xiàn);(3)支持異構數(shù)據(jù)源的混合使用。因此,期望提供一種支持訪問異構數(shù)據(jù)源的系統(tǒng)和方法,其能夠1)統(tǒng)一和簡化對各種類型存儲的訪問(包括關系數(shù)據(jù)庫和NoSQL數(shù)據(jù)存儲),用戶在使用時不需要關心數(shù)據(jù)源類型、物理地址等信息;2)實現(xiàn)了在一種異構數(shù)據(jù)源(包括關系數(shù)據(jù)庫和NoSQL數(shù)據(jù)存儲)下的混合使用;用戶在同一次查詢中可以同時查詢存儲于不同類型數(shù)據(jù)存儲的數(shù)據(jù)。
發(fā)明內(nèi)容為了解決現(xiàn)有技術中的上述缺點和問題中的至少一個而提出本發(fā)明。根據(jù)一個方面,本發(fā)明提出了一種支持訪問異構數(shù)據(jù)源的系統(tǒng),包括訪問接口,用于接收訪問信息;元數(shù)據(jù)管理模塊,用于維護元數(shù)據(jù)信息;查詢引擎,用于從來自所述訪問接口的所述訪問信息生成原始語法樹,并根據(jù)所述元數(shù)據(jù)管理模塊中的所述元數(shù)據(jù)信息將所述原始語法樹生成執(zhí)行計劃;以及執(zhí)行引擎,用于根據(jù)所述查詢引擎生成的執(zhí)行計劃來執(zhí)行任務??蛇x地,所述查詢引擎包括詞法分析器,用于從所述訪問信息生成標志;語法分析器,用于根據(jù)所述標志生成抽象語法樹;以及語法轉換器,用于根據(jù)所述抽象語法樹生成執(zhí)行計劃??蛇x地,所述執(zhí)行引擎包括作業(yè)執(zhí)行引擎,用于將所述執(zhí)行計劃翻譯為執(zhí)行內(nèi)容;以及分布式任務執(zhí)行引擎,用于執(zhí)行任務以獲得結果。可選地,所述分布式任務執(zhí)行引擎包括RDBMS任務執(zhí)行引擎、MR/Hive任務執(zhí)行引擎、本地任務執(zhí)行引擎、KV任務執(zhí)行引擎和列任務執(zhí)行引擎中的一個或多個??蛇x地,所述元數(shù)據(jù)信息包括與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息、與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息和與數(shù)據(jù)格式的定義相關的信息中的一個或多個。可選地,所述訪問信息是以查詢語言描述的??蛇x地,所述作業(yè)執(zhí)行引擎根據(jù)數(shù)據(jù)存儲的類型調(diào)用適當?shù)姆植际饺蝿請?zhí)行引擎。根據(jù)另一個方面,本發(fā)明提出了一種支持訪問異構數(shù)據(jù)源的方法,包括通過訪問接口接收訪問請求;通過所述訪問接口將所述訪問請求發(fā)送到查詢引擎;通過所述查詢引擎從所述訪問請求生成執(zhí)行計劃;通過所述查詢引擎將所述執(zhí)行計劃提交給執(zhí)行引擎;以及通過所述執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果。可選地,通過所述查詢引擎從所述訪問請求生成執(zhí)行計劃包括通過所述查詢引擎中的詞法分析器生成標志;通過所述查詢引擎中的語法分析器生成抽象語法樹;以及通過所述查詢引擎中的語法轉換器生成執(zhí)行計劃??蛇x地,通過所述執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果包括通過所述執(zhí)行引擎中的作業(yè)執(zhí)行引擎將執(zhí)行計劃翻譯為執(zhí)行內(nèi)容;通過所述作業(yè)執(zhí)行引擎調(diào)用所述執(zhí)行引擎中的分布式任務執(zhí)行引擎來執(zhí)行任務;以及通過所述作業(yè)執(zhí)行引擎對所述分布式任務執(zhí)行引擎獲得的結果進行合并和累計,并輸出最終結果。通過下面結合附圖進行的描述,本發(fā)明一些示范性實施例的上述和其他方面、特征和優(yōu)點對于本領域技術人員來說將變得顯而易見,其中圖I是圖示根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的系統(tǒng)的框圖2是圖示查詢引擎生成執(zhí)行計劃的圖3是圖示作業(yè)執(zhí)行引擎根據(jù)數(shù)據(jù)存儲的類型調(diào)用適當?shù)姆植际饺蝿請?zhí)行引擎的圖4是圖示簡單查詢流程的執(zhí)行計劃的圖5是圖示聚合查詢流程的執(zhí)行計劃的圖;以及圖6是圖示根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的方法的圖。具體實施例方式提供參考附圖的下面描述以幫助全面理解本發(fā)明的示范性實施例。其包括各種細節(jié)以助于理解,而應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識到,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,省略了對公知功能和結構的描述。根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的系統(tǒng)和方法能夠統(tǒng)一和簡化對異構類型數(shù)據(jù)存儲(包括關系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)存儲)的訪問,用戶在使用時不需要關心數(shù)據(jù)源類型、物理地址等信息;并且實現(xiàn)了在異構數(shù)據(jù)存儲(包括關系數(shù)據(jù)庫和NoSQL數(shù)據(jù)存儲)下的混合數(shù)據(jù)訪問,用戶在同一次查詢中可以同時查詢存儲于不同類型數(shù)據(jù)存儲的數(shù)據(jù)。下面將參考附圖詳細描述本發(fā)明。圖1是圖示根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的系統(tǒng)的框圖。如圖1中所示,根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的系統(tǒng)包括訪問接口110、元數(shù)據(jù)管理模塊120、查詢引擎(查詢引擎)130和執(zhí)行引擎140。訪問接口110用于接收訪問信息。例如,訪問接口110可以從應用接收以查詢語言描述的訪問信息。具體地,當客戶訪問一個應用時,可以通過在搜索框中輸入關鍵詞或點擊應用的界面中提供的連接,從而應用將用戶輸入的信息轉換成查詢語言形式而將訪問信息發(fā)送到訪問接口110。元數(shù)據(jù)管理模塊120用于維護元數(shù)據(jù)信息。元數(shù)據(jù)信息包括例如a.與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息,b.與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息,以及c.與數(shù)據(jù)格式的定義相關的信息。與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息對于不同的數(shù)據(jù)存儲而包括不同的信息。對于關系型數(shù)據(jù)庫,與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息包括例如數(shù)據(jù)庫的IP、端口號、用戶名和賬號。對于NoSQL數(shù)據(jù)存儲,與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息包括例如命名空間節(jié)點的信息,其中對于Hadoop,包括例如節(jié)點名稱(Namenode)信息(包括HDFS文件系統(tǒng)的IP以及端口號、訪問用戶名)以及作業(yè)跟蹤器(JobTracker)信息;對于HBase這樣的數(shù)據(jù)存儲,與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息包括例如ZooK^per的IP地址、端口號以及訪問用戶名。與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息對于不同的數(shù)據(jù)存儲而包括不同的信息。對于關系型數(shù)據(jù)庫,與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息包括例如數(shù)據(jù)庫類型以及存儲引擎(可選)。例如,當數(shù)據(jù)庫類型是MySQL時,存儲引擎是InnoDB。對于NoSQL數(shù)據(jù)存儲,與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息包括例如數(shù)據(jù)存儲的類型以及存儲類型。例如,當存儲類型是HDFS時,存儲類型是TEXT文本文件。與數(shù)據(jù)格式的定義相關的信息對于不同的數(shù)據(jù)存儲而包括不同的信息。對于關系型數(shù)據(jù)庫,與數(shù)據(jù)格式的定義相關的信息主要包括數(shù)據(jù)庫、表、字段的定義。對于NoSQL數(shù)據(jù)存儲,與數(shù)據(jù)格式的定義相關的信息主要包括被抽象表達成數(shù)據(jù)庫、表和字段的定義、以及對應的映射關系。雖然在上面說明了元數(shù)據(jù)管理模塊120維護的元數(shù)據(jù)信息,然而其僅僅是示例性的,可以根據(jù)實際需要,維護更多或更少的元數(shù)據(jù)信息。查詢引擎130用于從訪問信息生成原始語法樹,根據(jù)元數(shù)據(jù)信息將原始語法樹生成執(zhí)行計劃。查詢引擎130包括詞法分析器132、語法分析器134和語法轉換器136。如圖2中所示,詞法分析器132用于生成標志(Token)。例如,詞法分析器132分析輸入的訪問信息中的字符流,按照查詢引擎的詞法分析規(guī)則,將他們翻譯成查詢引擎支持的離散的多個Token,包括關鍵字、標識符、符號和操作符供語法分析器使用。語法分析器134用于生成抽象語法樹。例如,語法分析器134將接收到的Token組織起來,根據(jù)查詢引擎的語法規(guī)則,轉換成為查詢引擎語法定義所允許的序列,從而生成抽象語法樹(AST)。語法轉換器136用于生成執(zhí)行計劃。例如,執(zhí)行計劃生成和優(yōu)化器136根據(jù)語法分析器生成的抽象語法樹,遍歷抽象語法樹,利用從元數(shù)據(jù)中獲取的相對應內(nèi)容將語法樹中抽象的語法替換為具體的數(shù)據(jù)庫的語法,從而生成執(zhí)行計劃。執(zhí)行計劃是一系列步驟的集合,這些步驟共同構成有向無環(huán)圖1)輸入;2)輸出;3)計算規(guī)則;4)組合條件。執(zhí)行引擎140用于根據(jù)查詢引擎130生成的執(zhí)行計劃來執(zhí)行任務。執(zhí)行引擎140可以包括作業(yè)執(zhí)行引擎142和分布式任務執(zhí)行引擎144。作業(yè)執(zhí)行引擎142用于將執(zhí)行計劃翻譯為執(zhí)行內(nèi)容,調(diào)用分布式任務執(zhí)行引擎144執(zhí)行任務,對分布式任務執(zhí)行引擎獲得的結果進行合并和累計,并輸出最終結果。此外,在有維度要求的情況下,進行替換后,得出最終結果集。在執(zhí)行計劃的過程中,可以進行優(yōu)化,包括1)任務執(zhí)行被分發(fā)到離數(shù)據(jù)存儲最近的位置(本機)執(zhí)行;2)在作業(yè)執(zhí)行引擎中將任務執(zhí)行結果合并處理出最終結果。分布式任務執(zhí)行引擎144用于執(zhí)行任務以獲得結果。分布式任務執(zhí)行引擎144基于統(tǒng)一框架實現(xiàn)對于異構數(shù)據(jù)存儲的訪問,包括對于異構數(shù)據(jù)存儲的訪問以及基本算法單元的封裝實現(xiàn)。如圖3中所示,當任務針對RDBMS時,作業(yè)執(zhí)行引擎調(diào)用RDBMS任務執(zhí)行引擎;當任務針對存儲在HDFS中的數(shù)據(jù)時作業(yè)執(zhí)行引擎調(diào)用MR/Hive任務執(zhí)行引擎;當作業(yè)針對存儲在本地文件系統(tǒng)的數(shù)據(jù)時,作業(yè)執(zhí)行引擎將調(diào)用本地任務執(zhí)行引擎;當任務針對KV類型的數(shù)據(jù)時,作業(yè)執(zhí)行引擎將調(diào)用KV任務執(zhí)行引擎;以及當任務針對列存儲中的數(shù)據(jù)時,作業(yè)執(zhí)行弓I擎將調(diào)用列任務執(zhí)行引擎。RDBMS任務執(zhí)行引擎可以通過關系型數(shù)據(jù)庫任務執(zhí)行引擎JDBC驅(qū)動來實現(xiàn),用于對關系型數(shù)據(jù)庫進行訪問。MR/Hive任務執(zhí)行引擎可以通過Hadoop來實現(xiàn),其MapReduce作業(yè)而對HDFS進行訪問。本地任務執(zhí)行引擎可以通過由Shell、Python等腳本以及Linux系統(tǒng)本地命令來實現(xiàn),其可以訪問系統(tǒng)本地的數(shù)據(jù)存儲而實現(xiàn)Native訪問。KV任務執(zhí)行引擎可以通過專門針對KV類型的NoSQL存儲(例如memcached以及Redis)來實現(xiàn),以實現(xiàn)KV訪問。列任務執(zhí)行引擎可以通過針對HBase、Hypertable、Cassandra等列存儲設計來實現(xiàn),以實現(xiàn)列存儲訪問。作業(yè)執(zhí)行引擎142根據(jù)底層數(shù)據(jù)源的不同將執(zhí)行計劃翻譯成具體的執(zhí)行內(nèi)容,并調(diào)用相應的任務執(zhí)行引擎。針對RDBMS,將執(zhí)行計劃分解為一系列的SQL語句,并調(diào)用RDBMS任務執(zhí)行引擎;針對存儲在HDFS中的數(shù)據(jù),包括直接生成MapReduce作業(yè)和生成HQL兩種實現(xiàn)方式,然后調(diào)用MR/Hive任務執(zhí)行引擎;針對存儲在本地文件系統(tǒng)、KV類型和列存儲中的數(shù)據(jù),將執(zhí)行計劃翻譯成JSON格式,然后分別調(diào)用本地任務執(zhí)行引擎、KV任務執(zhí)行引擎和列任務執(zhí)行引擎。為了減輕數(shù)據(jù)傳輸對于網(wǎng)絡的壓力,任務執(zhí)行引擎144都盡可能部署在數(shù)據(jù)存儲的節(jié)點中。下面將參考圖4和圖5描述簡單查詢流程的執(zhí)行計劃和聚合查理流程的執(zhí)行計劃。圖4是示出簡單查詢流程(Select,Where,Orderby,Lookup)的執(zhí)行計劃流程的圖。如圖4中所示,在分布式任務執(zhí)行引擎中執(zhí)行以下過程a)讀取每一行數(shù)據(jù),針對列計算規(guī)則,執(zhí)行計算(計算包括求和等常規(guī)的計算、字符串函數(shù)等等);b)根據(jù)where條件對列進行過濾,如果過濾沒通過,跳轉到下一條數(shù)據(jù);通過則繼續(xù)執(zhí)行;c)如果有排序要求,采用二進制搜索以及插入排序方法,將當前記錄插入到記錄集中;如果沒有排序要求,直接將結果加入到結果集。然后在作業(yè)執(zhí)行引擎中執(zhí)行以下過程a)將各分布式執(zhí)行引擎獲得的結果進行合并,如果有維度要求,在此進行替換后,得出最終結果集。圖5是示出聚合查詢流程(Aggregate、where、groupby、having、orderby)的執(zhí)行計劃流程的圖。如圖5中所示,在分布式任務執(zhí)行引擎中執(zhí)行以下過程a)讀取每一行數(shù)據(jù),根據(jù)where條件進行過濾,如果過濾沒通過,跳轉到下一條數(shù)據(jù);通過則繼續(xù)執(zhí)行;b)針對列進行聚合;c)將結果加入到結果集。然后在作業(yè)執(zhí)行引擎中執(zhí)行以下過程a)累積各分布式執(zhí)行引擎獲得的結果,b)執(zhí)行Having等條件;c)如果有排序要求,采用二進制搜索以及插入排序方法,將當前記錄插入到記錄集中;如果沒有排序要求,直接將結果加入到結果集;如果有維度要求,在此進行替換后,得出最終結果集。圖6是圖示根據(jù)本發(fā)明的支持訪問異構數(shù)據(jù)源的方法的圖。如圖6中所示,在步驟610中,通過訪問接口接收訪問請求。例如,通過訪問接口從應用接收以查詢語言形式的訪問請求。在步驟620中,通過訪問接口將訪問請求發(fā)送到查詢引擎。在步驟630中,通過查詢引擎從訪問請求生成執(zhí)行計劃。通過查詢引擎從訪問請求生成執(zhí)行計劃例如包括通過查詢引擎中的詞法分析器生成標志;通過查詢引擎中的語法分析器生成抽象語法樹(AST);通過查詢引擎中的語法轉換器生成執(zhí)行計劃。具體生成執(zhí)行計劃的細節(jié)可以參考針對圖I所描述的細節(jié)。在步驟640中,通過查詢引擎將執(zhí)行計劃提交給執(zhí)行引擎。在步驟650中,執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果。執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果可以包括通過執(zhí)行引擎中的作業(yè)執(zhí)行引擎將執(zhí)行計劃翻譯為執(zhí)行內(nèi)容,調(diào)用執(zhí)行引擎中的分布式任務執(zhí)行引擎來執(zhí)行任務,對分布式任務執(zhí)行引擎獲得的結果進行合并和累計,并輸出最終結果。具體執(zhí)行所生成的執(zhí)行計劃的細節(jié)可以參考針對圖1-5所描述的細節(jié)。應指出的是,上面分別對本發(fā)明的裝置和方法實施例分別進行了描述,但是對一個實施例描述的細節(jié)也可應用于另一個實施例。以上結合具體實施例描述了本發(fā)明的基本原理,但是,需要指出的是,對本領域的普通技術人員而言,能夠理解本發(fā)明的方法和系統(tǒng)的全部或者任何步驟或者部件可以以軟件、硬件、固件或者它們的組合加以實現(xiàn),這是本領域普通技術人員在閱讀了本發(fā)明的說明的情況下運用他們的基本編程技能就能實現(xiàn)的。因此,本發(fā)明的目的還可以通過在任何計算裝置上運行一個軟件模塊或者一組軟件模塊來實現(xiàn)。所述計算裝置可以是公知的通用裝置。因此,本發(fā)明的目的也可以僅僅通過提供包含實現(xiàn)所述方法或者裝置的程序代碼的程序產(chǎn)品來實現(xiàn)。也就是說,這樣的程序產(chǎn)品也構成本發(fā)明,并且存儲有這樣的程序產(chǎn)品的存儲介質(zhì)也構成本發(fā)明。顯然,所述存儲介質(zhì)可以是任何公知的存儲介質(zhì)或者將來所開發(fā)出來的任何存儲介質(zhì)。雖然本說明書包含許多特定實施方式細節(jié),但是不應當將這些細節(jié)解釋為對任何發(fā)明或可以主張的內(nèi)容的范圍的限制,而應當解釋為對可以特定于特定發(fā)明的特定實施例的特征的描述。還可以將在本說明書中在分離的實施例的情境中描述的某些特征組合在單個實施例中實現(xiàn)。相反地,也可以將在單個實施方式的情境中描述的各個特征分離地在多個實施方式中實現(xiàn)或在任何適當?shù)淖咏M合中實現(xiàn)。此外,盡管可能在上面將特征描述為在某些組合中起作用,甚至最初主張如此,但是可以在一些情況下將來自所主張的組合的一個或多個特征從組合中刪去,并且可以將所主張的組合指向子組合或者子組合的變體。類似地,雖然在附圖中以特定次序描繪了操作,但是不應當將這理解為需要以所示的特定次序或者以連續(xù)次序執(zhí)行這樣的操作、或者需要執(zhí)行所有圖示的操作才能達到期望的結果。在某些情況下,多任務以及并行處理可以是有利的。此外,不應當將在上述實施例中的各種系統(tǒng)組件的分離理解為在所有實施例中均需要這樣的分離,而應當理解的是,通常可以將所描述的程序組件和系統(tǒng)集成到一起成為單個軟件產(chǎn)品或封裝為多個軟件產(chǎn)品O計算機程序(也稱作程序、軟件、軟件應用、腳本或代碼)可以以任何形式的編程語言編寫,所述編程語言包括編譯或解釋語言、或者說明性或過程語言,并且其可以以任何形式部署,包括作為獨立程序或作為模塊、組件、子程序或適于在計算環(huán)境中使用的其它單元。計算機程序沒有必要對應于文件系統(tǒng)中的文件??梢詫⒊绦虼鎯υ诒3制渌绦蚧驍?shù)據(jù)的文件(例如,存儲在標記語言文檔中的一個或多個腳本)的一部分、專用于討論中的程序的單個文件或者多個協(xié)調(diào)文件(例如,存儲一個或多個模塊、子程序或部分代碼的文件)中。上述具體實施方式,并不構成對本發(fā)明保護范圍的限制。本領域技術人員應該明白的是,取決于設計要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進等,均應包含在本發(fā)明保護范圍之內(nèi)。權利要求1.一種支持訪問異構數(shù)據(jù)源的系統(tǒng),包括訪問接口,用于接收訪問信息;元數(shù)據(jù)管理模塊,用于維護元數(shù)據(jù)信息;查詢引擎,用于從來自所述訪問接口的所述訪問信息生成原始語法樹,并根據(jù)所述元數(shù)據(jù)管理模塊中的所述元數(shù)據(jù)信息將所述原始語法樹生成執(zhí)行計劃;以及執(zhí)行引擎,用于根據(jù)所述查詢引擎生成的執(zhí)行計劃來執(zhí)行任務。2.根據(jù)權利要求I所述的系統(tǒng),其中,所述查詢引擎包括詞法分析器,用于從所述訪問信息生成標志;語法分析器,用于根據(jù)所述標志生成抽象語法樹;以及語法轉換器,用于根據(jù)所述抽象語法樹生成執(zhí)行計劃。3.根據(jù)權利要求I所述的系統(tǒng),其中,所述執(zhí)行引擎包括作業(yè)執(zhí)行引擎,用于將所述執(zhí)行計劃翻譯為執(zhí)行內(nèi)容;以及分布式任務執(zhí)行引擎,用于執(zhí)行任務以獲得結果。4.根據(jù)權利要求3所述的系統(tǒng),其中,所述分布式任務執(zhí)行引擎包括RDBMS任務執(zhí)行引擎、MR/Hive任務執(zhí)行引擎、本地任務執(zhí)行引擎、KV任務執(zhí)行引擎和列任務執(zhí)行引擎中的一個或多個。5.根據(jù)權利要求I所述的系統(tǒng),其中,所述元數(shù)據(jù)信息包括與數(shù)據(jù)存儲的物理位置、訪問用戶賬號相關的信息、與數(shù)據(jù)存儲的存儲格式以及存儲引擎相關的信息和與數(shù)據(jù)格式的定義相關的信息中的一個或多個。6.根據(jù)權利要求I所述的系統(tǒng),其中,所述訪問信息是以查詢語言描述的。7.根據(jù)權利要求3所述的系統(tǒng),其中,所述作業(yè)執(zhí)行引擎根據(jù)數(shù)據(jù)存儲的類型調(diào)用適當?shù)姆植际饺蝿請?zhí)行引擎。8.一種支持訪問異構數(shù)據(jù)源的方法,包括通過訪問接口接收訪問請求;通過所述訪問接口將所述訪問請求發(fā)送到查詢引擎;通過所述查詢弓I擎從所述訪問請求生成執(zhí)行計劃;通過所述查詢引擎將所述執(zhí)行計劃提交給執(zhí)行引擎;以及通過所述執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果。9.根據(jù)權利要求8所述的方法,其中,通過所述查詢引擎從所述訪問請求生成執(zhí)行計劃包括通過所述查詢引擎中的詞法分析器生成標志;通過所述查詢引擎中的語法分析器生成抽象語法樹;以及通過所述查詢引擎中的語法轉換器生成執(zhí)行計劃。10.根據(jù)權利要求8所述的方法,其中,通過所述執(zhí)行引擎執(zhí)行所生成的執(zhí)行計劃并生成執(zhí)行結果包括通過所述執(zhí)行引擎中的作業(yè)執(zhí)行引擎將執(zhí)行計劃翻譯為執(zhí)行內(nèi)容;通過所述作業(yè)執(zhí)行引擎調(diào)用所述執(zhí)行引擎中的分布式任務執(zhí)行引擎來執(zhí)行任務;以及通過所述作業(yè)執(zhí)行引擎對所述分布式任務執(zhí)行引擎獲得的結果進行合并和累計,并輸出最終結果。全文摘要一種支持訪問異構數(shù)據(jù)源的系統(tǒng)及方法。所述支持訪問異構數(shù)據(jù)源的系統(tǒng)包括訪問接口,用于接收訪問信息;元數(shù)據(jù)管理模塊,用于維護元數(shù)據(jù)信息;查詢引擎,用于從來自所述訪問接口的所述訪問信息生成原始語法樹,并根據(jù)所述元數(shù)據(jù)管理模塊中的所述元數(shù)據(jù)信息將所述原始語法樹生成執(zhí)行計劃;以及執(zhí)行引擎,用于根據(jù)所述查詢引擎生成的執(zhí)行計劃來執(zhí)行任務。文檔編號G06F17/30GK102982075SQ201210424488公開日2013年3月20日申請日期2012年10月30日優(yōu)先權日2012年10月30日發(fā)明者李松林,崔明,蔣賢禮申請人:北京京東世紀貿(mào)易有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
鸡西市| 北海市| 崇信县| 荔浦县| 韶山市| 夏津县| 青龙| 于都县| 滦南县| 临清市| 普宁市| 新巴尔虎右旗| 紫云| 沙雅县| 祁阳县| 化州市| 微山县| 通辽市| 平凉市| 桐庐县| 青州市| 塔河县| 印江| 穆棱市| 三门峡市| 塔河县| 新营市| 浦城县| 泽库县| 游戏| 深州市| 棋牌| 延安市| 玉门市| 平潭县| 华安县| 来宾市| 镇原县| 奇台县| 巴南区| 定南县|