[發明專利]一種SQL語句處理方法及裝置在審
| 申請號: | 202110649927.8 | 申請日: | 2021-06-10 |
| 公開(公告)號: | CN113392123A | 公開(公告)日: | 2021-09-14 |
| 發明(設計)人: | 王莉莉;史晨陽;丁永建;向小佳;彭曉;史黎;王志剛;吳海洋;趙振海;王忠璐;高孝鑫;龍禹 | 申請(專利權)人: | 中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/27 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 張秀英 |
| 地址: | 100033 北京市西城區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sql 語句 處理 方法 裝置 | ||
1.一種SQL語句處理方法,其特征在于,包括:
解析結構化查詢語句SQL語句語義,得到多個子句;
采用有向無環圖的方式構建所述多個子句的子句依賴關系;
基于所述子句依賴關系構建所述多個子句的邏輯執行計劃;
通過本地數據節點執行所述邏輯執行計劃,得到執行結果。
2.根據權利要求1所述的方法,其特征在于,基于所述子句依賴關系構建所述多個子句的邏輯執行計劃包括:
基于所述子句依賴關系,分別將所述多個子句所涉及的表進行分組,得到所述多個子句的分組;
分別根據所述多個子句的分組生成所述本地數據節點sep node,得到多個sep node,以構建所述多個子句的邏輯執行計劃,其中,一個分組對應一個sep node,所述多個sepnode中的每個sep node用于完成本地join運算任務并將用于下一個sep node的join運算任務所需的驅動表數據通過臨時表的方式發送給所述下一個sep node。
3.根據權利要求2所述的方法,其特征在于,基于所述子句依賴關系,分別將所述多個子句所涉及的表進行分組,得到所述多個子句的分組包括:
基于所述子句依賴關系,根據數據分布方式相同的原則將子句所涉及的表進行分組,并將所述多個子句中的表join關系轉換為分組的join關系,得到所述多個子句的分組,其中,同一組的所有表在數據存儲上數據分布方式相同,所述數據分布方式相同包括數據節點相同、數據分片sharding算法相同、存在屬于AND的分片列的查詢條件均為分片列。
4.根據權利要求2所述的方法,其特征在于,所述通過本地數據節點執行所述邏輯執行計劃,得到執行結果包括:
對所述多個sep node執行調度,得到子句輸出結果;
基于所述子句輸出結果,觸發對所述邏輯執行計劃進行實例化構建,以執行所述邏輯執行計劃,得到所述執行結果。
5.根據權利要求4所述的方法,其特征在于,對所述多個sep node執行調度,得到所述子句輸出結果包括:
對所述每個sep node完成本地join運算任務并將用于所述下一個sep node的join運算任務所需的驅動表數據通過臨時表的方式發送給所述下一個sep node;
基于臨時表池創建所述臨時表的執行任務;
對所述下一個sep node結合所述臨時表完成本地join運算任務,得到所述子句輸出結果。
6.根據權利要求5所述的方法,其特征在于,基于所述子句輸出結果,觸發對所述邏輯執行計劃進行實例化構建,以執行所述邏輯執行計劃,得到所述執行結果包括:
將所述子句輸出結果作為一個常量值或一個分組用于驅動下一個子句的執行計劃;
對無依賴關系的子句進行并行執行計劃,得到所述執行結果。
7.一種SQL語句處理裝置,其特征在于,包括:
解析模塊,用于解析結構化查詢語句SQL語句語義,得到多個子句;
第一構建模塊,用于采用有向無環圖的方式構建所述多個子句的子句依賴關系;
第二構建模塊,用于基于所述子句依賴關系構建所述多個子句的邏輯執行計劃;
執行模塊,用于通過本地數據節點執行所述邏輯執行計劃,得到執行結果。
8.根據權利要求7所述的裝置,其特征在于,所述第二構建模塊包括:
分組子模塊,用于基于所述子句依賴關系,分別將所述多個子句所涉及的表進行分組,得到所述多個子句的分組;
生成子模塊,用于分別根據所述多個子句的分組生成本地數據節點sep node,得到多個sep node,以構建所述多個子句的邏輯執行計劃,其中,一個分組對應一個sep node,所述多個sep node中的每個sep node用于完成本地join運算任務并將用于下一個sep node的join運算任務所需的驅動表數據通過臨時表的方式發送給所述下一個sep node。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司,未經中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110649927.8/1.html,轉載請聲明來源鉆瓜專利網。





