[發明專利]一種支持多屬性復合條件查詢的虛擬表索引機制及方法有效
| 申請號: | 201210553946.1 | 申請日: | 2012-12-19 |
| 公開(公告)號: | CN103049521A | 公開(公告)日: | 2013-04-17 |
| 發明(設計)人: | 李曉林;謝毅;徐志偉 | 申請(專利權)人: | 廣東電子工業研究院有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京科億知識產權代理事務所(普通合伙) 11350 | 代理人: | 湯東鳳 |
| 地址: | 523808 廣東省東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 支持 屬性 復合 條件 查詢 虛擬 索引 機制 方法 | ||
?
技術領域
本發明涉及計算機應用技術領域,尤其是一種針對多屬性復合條件查詢的虛擬表索引機制及方法。
背景技術
隨著Internet上應用的數據規模迅速增長,單一數據庫表往往無法支撐所有業務數據,需要將大數據分成若干物理子表分塊存儲和管理,通過數據中間件將這些物理子表整合起來形成一張“容量無限”的虛擬表。而隨著網絡應用處理和計算變得越來越復雜,一次針對虛擬表的數據查詢計算可能涉及到對多個分布數據源(塊)的即時訪問,這種大量基于分布數據源上的聯合查詢,由于受數據規模、查詢復雜度、傳輸帶寬等因素的影響,訪問性能常常是這類應用的瓶頸;因此,針對這類應用模式的查詢如何在虛擬層構建索引機制,快速定位子表同時避免不必要的子表查詢是解決查詢性能問題的關鍵之一。
從技術方法層面,主要有兩種思路實現針對多個分布數據源(塊)查詢的索引機制,來提高訪問的性能。
思路一是:針對子表的存儲位置索引,方便快速定位數據塊子表的物理存儲位置。大規模數據的存儲與訪問需要對數據分片分塊的存儲和管理,此時建立每個數據塊的索引機制能方便請求快速定位到目標數據源上。
思路二是:主鍵鍵值分段索引,一張子表會保存一個數據表里面按照主鍵鍵值的某段連續的數據,從開始主鍵到結束主鍵,一張完整的表格是保存在多個物理子表中。這種機制對支持基于主鍵的簡單邏輯運算的查詢非常有效,能確保將查詢只施加到滿足相應鍵值條件的數據子表上。但是不能支持多屬性查詢謂詞條件、相對復雜的運算邏輯的查詢。
如Bigtable這種順序表(Ordered?Table)存儲模型采用了層次化的MetaData模型建立tablet表的索引,既支持存儲位置索引,又支持鍵值分段索引,但只能支持基于主鍵的區間查詢,不能支持多屬性的復合條件查詢,如關系數據庫的SQL查詢標準。
發明內容
本發明解決的技術問題之一在于提出構建支持分布式復合條件查詢的虛擬表索引機制,解決當前的存儲位置索引和鍵值索引不能支持多屬性條件、復雜運算邏輯查詢的問題。本發明引用的虛擬表概念和技術是基于本發明的發明人的另一項專利ZL200810119858.4(名稱:一種網絡系統及其管理方法);本發明所述虛擬表及其管理和使用方式均引用該專利。
本發明解決的技術問題之二在于提出構建支持分布式復合條件查詢的虛擬表索引方法,解決當前的存儲位置索引和鍵值索引不能支持多屬性條件、復雜運算邏輯查詢的問題。
本發明解決上述技術問題之一的技術方案是:所述的機制由三個關鍵部件索引管理器、條件分析器和預執行引擎構成;
所述的索引管理器,管理虛擬表屬性的索引鍵值,支持虛擬表多個屬性的單個鍵值、區間鍵值的管理;
所述的條件分析器,對施加在虛擬表上的查詢條件分解并對謂詞分析;依次對有索引的屬性按照SQL語法分析整個查詢條件,用真值true替換屏蔽掉含其他屬性的謂詞表達式后,只留下該屬性的查詢謂詞條件,以便判斷該屬性索引是否滿足此條件;此時,如果某屬性的索引鍵值是區間,條件分析器進一步通過該區間值再計算被真值替換后的查詢條件中關于該屬性的謂詞的真/假,并用布爾結果(true/false)替換該謂詞;如果該步驟無法計算,則表示直接返回需要對該虛擬表執行查詢的推斷結果;
所述的預執行引擎,通過相應屬性的索引鍵值判斷部分被真值表達式(true)和布爾結果替換后的查詢條件的真/假,確定相應屬性的索引是否滿足查詢條件;如果不滿足,則直接返回不對該虛擬表執行查詢的推斷結果;否則,繼續判斷其他屬性索引;一些特殊情況,默認為滿足執行條件;索引鍵值為區間值時只取開始和結束值。
本發明解決上述技術問題之二的技術方案是:在虛擬表上構建針對多個屬性的索引鍵值;在執行查詢時,計算施加到該虛擬表的查詢條件;依據鍵值索引,預先針對各個屬性獨立判斷是否需要執行該虛擬表映射的物理實體表,從而確保將查詢只施加到滿足相應鍵值條件的子虛擬表上執行。
所述的預先確定哪些子表含有滿足該查詢條件的數據記錄是:在虛擬層,通過在各個子表上基于子表的索引,預先判斷該子表的數據集合是否滿足查詢條件,只定位到滿足條件的子表進行查詢;而對于無查詢過濾條件、未建立索引或者基于索引難于判斷等特例,直接對子表施加查詢。
按照某個屬性鍵值建立類似B+樹的子表索引結構,B+樹的每個葉子節點代表一個子表;在葉子節點對子表建立1個或多個(其他)屬性的索引,索引值可以是單值和區間值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東電子工業研究院有限公司,未經廣東電子工業研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210553946.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:增頻式低能耗脈沖充磁機
- 下一篇:波紋板直接成型機





