[發明專利]多維度范圍分區裁剪的方法、裝置和存儲介質有效
| 申請號: | 201711478050.0 | 申請日: | 2017-12-29 |
| 公開(公告)號: | CN110019238B | 公開(公告)日: | 2023-01-06 |
| 發明(設計)人: | 汪龍重;徐冬;連杰紅;鄭君正;雷春蔚 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 北京東方億思知識產權代理有限責任公司 11258 | 代理人: | 賀琳 |
| 地址: | 開曼群島*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 多維 范圍 分區 裁剪 方法 裝置 存儲 介質 | ||
本發明公開了一種多維度范圍分區裁剪的方法、裝置和存儲介質。該方法包括:基于待裁剪的數據表的多個維度范圍的字段,將用于裁剪數據表的表達式分解為多個子表達式;獲取子表達式在數據表中所針對的子范圍;擴展子范圍,生成多個擴展范圍;基于各個擴展范圍,裁剪數據表,得到各個分區域;合并各個分區域,得到合并區域。由此,發明實施例可以支持多維度范圍分區裁剪,擴大了分區裁剪的應用范圍;還可以處理更多排列組合情況,而且可以使得分區裁剪得既徹底又精確;還可以縮小后續掃描范圍,縮短掃描耗時,而且可以為獲取精確的目標數據提供支持。
技術領域
本發明涉及數據庫查詢優化技術領域,尤其涉及一種多維度范圍分區裁剪(Partition Pruning)的方法、裝置和存儲介質。
背景技術
隨著網絡技術的快速發展,數據庫中的數據量隨之急速增多,大數據時代已經來臨。通常數據按區域存儲在數據庫中。在邏輯層,數據可以分為多個分區存放在不同的分區表中;在物理層,數據可以分為多個分區存放在不同的數據文件或分布式數據庫節點中。在包括海量數據的數據庫里,用戶可以通過分區裁剪的方法來獲取目標分區。
其中,分區裁剪是根據謂詞表達式對分區進行剪裁,以裁剪掉那些不屬于謂詞表達式所屬的分區,剩余目標分區。謂詞表達式是在數據庫中表示一種計算表達式。例如,針對命題:王亮是足球運動員或排球運動員。如果,將王亮計做:a,王亮是足球運動員計做:f(a),王亮是排球運動員計做:g(a),那么,該命題的謂詞表達式可以是:f(a)∨g(a)。
具體的,分區裁剪是數據庫中一種掃描分區表的優化方法。當對分區表進行掃描時,裁剪組件可以先檢查謂詞的條件表達式中是否存在分區字段的過濾條件。如果存在該過濾條件,則訪問符合過濾條件的分區。對于不符合條件的分區,則不需要掃描,從而達到減少掃描數據量的目的,進而減少數據掃描時間。
現有的數據庫產品,例如Mysql等,僅對涉及到一個維度范圍的謂詞進行分區裁剪,如果涉及到多個維度范圍的謂詞則無法進行分區裁剪。當無法分區裁剪時,就需要掃描所有分區。導致多個維度范圍的分區表掃描整體耗時更長。
如何解決多個維度范圍的分區表掃描耗時長,是亟待解決的技術問題。
發明內容
為了解決多個維度范圍的分區表掃描耗時長的問題,本發明實施例提供了一種多維度范圍分區裁剪的方法、裝置和存儲介質。
第一方面,提供了一種多維度范圍分區裁剪的方法。該方法包括以下步驟:
基于待裁剪的數據表的多個維度范圍的字段,將用于裁剪數據表的表達式分解為多個子表達式;
獲取子表達式在數據表中所針對的子范圍;
擴展子范圍,生成多個擴展范圍;
基于各個擴展范圍,裁剪數據表,得到各個分區域;
合并各個分區域,得到合并區域。
第二方面,提供了一種多維度范圍分區裁剪的裝置。該裝置包括:
表達式分解組件、范圍獲取組件、范圍擴展組件、分區裁剪組件和分區合并組件,
表達式分解組件和范圍擴展組件分別與范圍獲取組件耦合,
范圍擴展組件和分區合并組件分別與分區裁剪組件耦合,
其中:
表達式分解組件,基于待裁剪的數據表的多個維度范圍的字段,將用于裁剪數據表的表達式分解為多個子表達式;
范圍獲取組件,用于獲取子表達式在數據表中所針對的子范圍;
范圍擴展組件,用于擴展子范圍,生成多個擴展范圍;
分區裁剪組件,基于各個擴展范圍,裁剪數據表,得到各個分區域;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711478050.0/2.html,轉載請聲明來源鉆瓜專利網。





