[發明專利]一種SQL語句處理方法及裝置在審
| 申請號: | 202110649927.8 | 申請日: | 2021-06-10 |
| 公開(公告)號: | CN113392123A | 公開(公告)日: | 2021-09-14 |
| 發明(設計)人: | 王莉莉;史晨陽;丁永建;向小佳;彭曉;史黎;王志剛;吳海洋;趙振海;王忠璐;高孝鑫;龍禹 | 申請(專利權)人: | 中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/27 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 張秀英 |
| 地址: | 100033 北京市西城區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sql 語句 處理 方法 裝置 | ||
本發明提供了一種SQL語句處理方法及裝置,其中,該方法包括:解析SQL語句語義,得到多個子句;采用有向無環圖的方式構建該多個子句的子句依賴關系;基于該子句依賴關系構建該多個子句的邏輯執行計劃;通過本地數據節點執行該邏輯執行計劃,得到執行結果,可以解決相關技術中從數據庫節點抽取大量數據通過單一計算節點進行計算,計算節點的配置成為數據庫集群的性能瓶頸,容易導致嚴重的網絡流量擁塞,同樣可能影響數據庫集群生產運行的穩定性的問題,通過盡可能利用本地數據節點進行join運算,確保分布式數據庫高效地執行join運算的同時避免單計算節點資源瓶頸和巨量數據的網絡抽取,實現了數據庫集群運行的高效與穩定。
技術領域
本發明涉及數據處理領域,具體而言,涉及一種SQL語句處理方法及裝置。
背景技術
集中式join,需要將結構化查詢語句(Structured Quevy Language,簡稱為SQL)語句join相關的數據從數據存儲層都抽取到數據庫的計算節點/計算層的內存中,而后采用傳統數據庫的內存join算法,例如常規nest-loop join,進行join運算。這樣做的好處是join的實現方式簡單,可以直接復用傳統內存join算法,各類復雜join的支持比較容易。但這種方法的實現方式通常有如下弊端:
負責join的計算節點/協調節點需要緩存所有或大部分數據,容易限制join計算的規模,讓單個計算節點的配置成為數據庫集群的性能瓶頸,同時也大幅限制了該SQL語句可以進行的并發計算規模,并且存在出現OOM影響數據庫集群穩定性的風險。
從數據庫節點抽取大量數據進行單一計算節點,容易導致嚴重的網絡流量擁塞,同樣可能影響數據庫集群生產運行的穩定性。
針對相關技術中從數據庫節點抽取大量數據通過單一計算節點進行計算,計算節點的配置成為數據庫集群的性能瓶頸,容易導致嚴重的網絡流量擁塞,同樣可能影響數據庫集群生產運行的穩定性的問題,尚未提出解決方案。
發明內容
本發明實施例提供了一種SQL語句處理方法及裝置,以至少解決相關技術中從數據庫節點抽取大量數據通過單一計算節點進行計算,計算節點的配置成為數據庫集群的性能瓶頸,容易導致嚴重的網絡流量擁塞,同樣可能影響數據庫集群生產運行的穩定性的問題。
根據本發明的一個實施例,提供了一種SQL語句處理方法,包括:
解析SQL語句語義,得到多個子句;
采用有向無環圖的方式構建所述多個子句的子句依賴關系;
基于所述子句依賴關系構建所述多個子句的邏輯執行計劃;
通過本地數據節點執行所述邏輯執行計劃,得到執行結果。
可選地,基于所述子句依賴關系構建所述多個子句的邏輯執行計劃包括:
基于所述子句依賴關系,分別將所述多個子句所涉及的表進行分組,得到所述多個子句的分組;
分別根據所述多個子句的分組生成所述本地數據節點sep node,得到多個sepnode,以構建所述多個子句的邏輯執行計劃,其中,一個分組對應一個sep node,所述多個sep node中的每個sep node用于完成本地join運算任務并將用于下一個sep node的join運算任務所需的驅動表數據通過臨時表的方式發送給所述下一個sep node。
可選地,基于所述子句依賴關系,分別將所述多個子句所涉及的表進行分組,得到所述多個子句的分組包括:
基于所述子句依賴關系,根據數據分布方式相同的原則將子句所涉及的表進行分組,并將所述多個子句中的表join關系轉換為分組的join關系,得到所述多個子句的分組,其中,同一組的所有表在數據存儲上數據分布方式相同,所述數據分布方式相同包括數據節點相同、數據分片sharding算法相同、存在屬于AND的分片列的查詢條件均為分片列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司,未經中國光大銀行股份有限公司;光大科技有限公司;北京萬里開源軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110649927.8/2.html,轉載請聲明來源鉆瓜專利網。





