[發明專利]SQL優化查詢方法及裝置有效
| 申請號: | 202011048287.7 | 申請日: | 2020-09-29 |
| 公開(公告)號: | CN112286961B | 公開(公告)日: | 2022-11-18 |
| 發明(設計)人: | 盧勇亮;鄭堯峰;湯國強;桑強;孫遷 | 申請(專利權)人: | 蘇寧云計算有限公司 |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453;G06F16/248 |
| 代理公司: | 北京市萬慧達律師事務所 11111 | 代理人: | 黃玉東 |
| 地址: | 210000 江蘇省南*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | sql 優化 查詢 方法 裝置 | ||
本發明公開一種SQL優化查詢方法及裝置,涉及大數據技術領域,能夠避免熔斷機制的啟動,同時提升查詢效率。該方法包括:解析SQL查詢語句為UNION集合類型的查詢語句時,統計目標數據所涉及存儲片段的數量,UNION集合類型的查詢語句包括多個子查詢語句;在涉及的存儲片段的數量大于閾值時,將子查詢語句對應的查詢周期拆分成多個粒度周期,以及將多個子查詢語句對應的目標數據維度匯總后作為新增條件加入子查詢語句的過濾條件中;將包含過濾條件的子查詢語句下推至計算引擎并發讀取每個粒度周期所對應的目標數據及其中的維度值,經處理端計算后向用戶返回查詢結果。該裝置應用有上述方案所提的方法。
技術領域
本發明涉及大數據技術領域,尤其涉及一種SQL優化查詢方法及裝置。
背景技術
隨著業務數據量的不斷增加,流量模型攝入到Druid引擎中datasource的數據量巨大,每次SQL進行同環比查詢時,內層的union all子句需要去查SQL指定周期內的所有數據。而為了保護druid引擎對其他任務的有效查詢,druid引擎會判斷當前SQL周期內的segment總數,并在segment總數超過閾值時啟動熔斷機制,即便未超過閾值,采用全量查詢的方式也會增加查詢時間,降低了查詢效率。
發明內容
本發明的目的在于提供一種SQL優化查詢的方法及裝置,能夠避免熔斷機制的啟動,同時提升查詢效率。
為了實現上述目的,本發明的第一方面提供一種SQL優化查詢的方法,包括:
解析SQL查詢語句為UNION集合類型的查詢語句時,統計目標數據所涉及存儲片段的數量,所述UNION集合類型的查詢語句包括多個子查詢語句;
在涉及的所述存儲片段的數量大于閾值時,將所述子查詢語句對應的查詢周期拆分成多個粒度周期,以及將多個子查詢語句對應的目標數據維度匯總后作為新增條件加入所述子查詢語句的過濾條件中;
將包含所述過濾條件的子查詢語句下推至計算引擎并發讀取每個粒度周期所對應的目標數據及其中的維度值,經處理端計算后向用戶返回查詢結果。
優選地,在所述存儲片段的數量大于閾值時,將所述子查詢語句對應的查詢周期拆分成多個粒度周期的方法包括:
提取每個所述子查詢語句對應的查詢周期,將各查詢周期按照預設粒度平均拆分成多個粒度周期。
較佳地,將多個子查詢語句對應的目標數據維度匯總后作為新增條件加入所述子查詢語句的過濾條件中的方法包括:
識別每個子查詢語句對應的目標數據維度,當各所述子查詢語句的目標數據維度一致,則取任一所述子查詢語句的目標數據維度作為新增條件加入每個所述子查詢語句的過濾條件中;
當各所述子查詢語句的目標數據維度不一致,則分別將各所述子查詢語句的目標數據維度匯總合并后作為新增條件加入每個所述子查詢語句的過濾條件中。
優選地,所述UNION集合類型的查詢語句至少包括第一周期子查詢語句和第二周期子查詢語句,所述過濾條件除所述新增條件之外還包括查詢度量、維度排序和目標數據查詢數量。
較佳地,計算引擎并發讀取每個粒度周期所對應的目標數據及其中的維度值的方法包括:
計算引擎根據每個子查詢語句及其中的過濾條件,分別從相應數據源的對應存儲片段中查詢符合所述目標數據查詢數量條件的目標數據并提取其中的維度值。
進一步地,經處理端計算后向用戶返回查詢結果的方法包括:
處理端根據各子查詢語句返回的所述維度值,按照預設規則計算后向用戶返回查詢結果。
優選地,在步驟將包含所述過濾條件的子查詢語句下推至計算引擎并發讀取每個粒度周期所對應的目標數據及其中的維度值,經處理端計算后向用戶返回查詢結果之后還包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于蘇寧云計算有限公司,未經蘇寧云計算有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011048287.7/2.html,轉載請聲明來源鉆瓜專利網。





