[發明專利]數據查詢的方法和裝置有效
| 申請號: | 201210375556.X | 申請日: | 2012-09-29 |
| 公開(公告)號: | CN103714073B | 公開(公告)日: | 2017-04-12 |
| 發明(設計)人: | 金毅;張皖川;郝慶運;陳星 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京市中咨律師事務所11247 | 代理人: | 周良玉,于靜 |
| 地址: | 美國*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 查詢 方法 裝置 | ||
技術領域
本發明涉及數據庫查詢,更具體地,涉及一種在無共享數據庫中進行數據查詢的方法和裝置。
背景技術
數據庫用于按照數據結構來組織、存儲和管理數據。隨著信息技術的發展,需要存儲和處理的數據量越來越大,這對數據庫提出了更高的要求。為了適應于海量數據的存儲和管理,數據庫的構成由簡單的單個存儲設備擴展為多個存儲設備的集群。并且,數據庫還可以與外部數據源相結合,共同提供數據的存儲、管理和查詢,從而進一步擴展數據庫的應用。
外部數據源可以通過各種數據存儲系統來實現,包括集中式數據存儲系統,分布式存儲系統。分布式存儲系統的例子包括網絡文件系統NFS,Hadoop文件系統HDFS等等。許多外部數據源并不支持標準API來進行數據存取,因此,通常需要利用用戶定義函數UDF(user?defined?function)來執行外部數據查詢,將數據從外部數據源取入到數據庫。
圖1示出在數據庫與外部數據源相結合的系統中進行數據查詢的示意圖。在圖1中,以Hadoop系統作為外部數據源的例子。為了在這樣的系統中進行數據查詢,首先用戶側向數據庫管理引擎發出一個SQL查詢請求。查詢請求的代碼可以如右側所示。從右側代碼可以看到,為了獲取Hadoop系統中的數據,在查詢請求中包含了兩個UDF,即jaqlSumit和hdfsRead,用以向Hadoop系統提出請求并從中取出數據。SQL查詢請求中中間部分的代碼段用于在Hadoop中進行數據查詢。對于這樣的查詢請求,數據庫引擎首先對其進行編譯和分析。對于其中的UDF,數據庫引擎開啟單獨的線程來運行UDF。因此,通常還將運行UDF的程序和線程稱為UDF實體。在圖1的例子中,數據庫管理引擎于是創建了兩個UDF實體,分別從外部數據源Hadoop系統讀取數據。最后,數據庫管理引擎將讀取的數據進行組織,返回到用戶接口。
另一方面,如前所述,數據庫可以由多個存儲設備的集群構成。這樣的集群可以有多種共享實現方式,例如內存共享,即多個設備的CPU共享同一片內存,CPU之間通過內部通訊機制進行通訊;磁盤共享,即每一個CPU使用自己的私有內存區域,但通過內部通訊機制直接訪問所有磁盤系統;以及無共享,即每一個設備的CPU都有私有內存區域和私有磁盤空間,2個CPU不能訪問相同磁盤空間,CPU之間的通訊通過網絡連接。在以上的實現方式中,無共享的方式是數據庫常用的典型架構。對于無共享架構的數據庫來說,在與外部數據源相結合進行數據存儲和查詢的情況下,有可能產生數據再分配的問題。
圖2示出在無共享數據庫與外部數據源相結合的系統中進行數據查詢的示意圖。如圖2所示,數據庫由無共享的多個設備構成,每個設備具有獨立的CPU、內存和用于存儲數據的磁盤。通常,也將每個設備稱為數據庫的一個節點,因此圖2的數據庫包含無共享的節點N1-N4。在這樣的無共享數據庫中,為了從外部數據源讀取數據,通常在每個節點都創建一個UDF實體,利用所創建的多個UDF實體并行地執行外部數據讀取。然而,由于數據庫無法識別外部數據源中數據的分布,而外部數據源也無法知道期望的數據分布,因此,在數據庫管理引擎通過UDF從外部數據源取得數據之后,需要對這些數據進行再分配。例如,在一個具體例子中,希望查詢用戶及其近期交易的信息,其中與用戶相關的信息存儲在數據庫本地設備中,而交易信息存儲在外部數據源中。為此,數據庫引擎需要從外部數據源獲得交易信息,然后將這些交易信息與對應的用戶信息進行連接(join)。由于數據庫各個節點之間無共享,數據庫引擎需要將各個交易信息分別發送到存儲有所對應的用戶信息的特定節點中才能進行連接。例如,假定用戶A的信息存儲在節點N1中,而節點N2上的UDF實體獲取到了用戶A的交易信息,那么數據庫引擎需要將N2上的UDF實體所獲得的數據發送到N1中,才能使用戶A與其交易信息相連接。可以理解,對于無共享架構的數據庫來說,節點之間的通信會顯著降低運行性能。因此,希望能夠減少或者避免數據在數據庫中的再分配,從而減小由節點間通信帶來的性能劣化。
發明內容
鑒于以上所述的問題,提出本發明,旨在提供一種方案,能夠減少或避免查詢過程中數據在無共享數據庫中的再分配。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210375556.X/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





