[發(fā)明專利]一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法有效
| 申請(qǐng)?zhí)枺?/td> | 202110761594.8 | 申請(qǐng)日: | 2021-07-06 |
| 公開(公告)號(hào): | CN113641487B | 公開(公告)日: | 2023-06-13 |
| 發(fā)明(設(shè)計(jì))人: | 徐長明;周亞軍 | 申請(qǐng)(專利權(quán))人: | 多點(diǎn)生活(成都)科技有限公司 |
| 主分類號(hào): | G06F9/50 | 分類號(hào): | G06F9/50 |
| 代理公司: | 成都三誠知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 51251 | 代理人: | 饒振浪 |
| 地址: | 610000 四川省成都市高*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù) 平臺(tái) sql 任務(wù) 執(zhí)行 引擎 智能 自動(dòng) 切換 方法 | ||
1.一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:包括以下步驟:
步驟1:獲取原始SQL語句和執(zhí)行參數(shù)信息;其中,執(zhí)行參數(shù)信息包括是否有指定執(zhí)行引擎、是否設(shè)置為SQL任務(wù)分配的CPU個(gè)數(shù)及內(nèi)存資源;
步驟2:根據(jù)執(zhí)行參數(shù)信息和原始SQL語句,計(jì)算決策出當(dāng)前SQL任務(wù)適合的執(zhí)行引擎及資源配置數(shù)據(jù);
步驟3:根據(jù)執(zhí)行引擎類型確認(rèn)預(yù)先設(shè)計(jì)制作好的引擎落地執(zhí)行程序包;獲取到執(zhí)行引擎及資源配置數(shù)據(jù)后,根據(jù)執(zhí)行引擎類型確認(rèn)預(yù)先設(shè)計(jì)制作好的引擎落地執(zhí)行程序包,該落地執(zhí)行程序包在集群中調(diào)度執(zhí)行時(shí)對(duì)封裝參數(shù)進(jìn)行解析,并將SQL語句通過執(zhí)行參數(shù)傳入程序包中,同時(shí)在引擎計(jì)算資源集群中申請(qǐng)程序執(zhí)行包所需要的計(jì)算資源,并將該資源由程序包通過參數(shù)解析封裝到執(zhí)行的邏輯設(shè)置中;
步驟4:將確認(rèn)好的引擎落地執(zhí)行程序包提交給確定好的執(zhí)行引擎去執(zhí)行,同時(shí),將執(zhí)行狀態(tài)數(shù)據(jù)及占用的資源情況上報(bào)給服務(wù)器進(jìn)行數(shù)據(jù)統(tǒng)計(jì)使用;
步驟5:SQL任務(wù)執(zhí)行完成后,將任務(wù)的完成狀態(tài)上報(bào)給服務(wù)器中進(jìn)行業(yè)務(wù)終止數(shù)據(jù)統(tǒng)計(jì)及資源釋放數(shù)據(jù)統(tǒng)計(jì);
步驟6:用戶通過前端頁面展示查看返回任務(wù)執(zhí)行結(jié)果及任務(wù)運(yùn)行狀態(tài);
其中,所述步驟4之前還包括對(duì)確認(rèn)好的引擎落地執(zhí)行程序包進(jìn)行整合,具體包括以下步驟:
Ⅰ、將步驟2中確定的SQL語句和資源配置數(shù)據(jù)組裝起來作為引擎落地執(zhí)行程序包的參數(shù),并將參數(shù)分配為命令行參數(shù)和程序內(nèi)集群資源分配參數(shù)兩種調(diào)用模式;
Ⅱ、根據(jù)確定的執(zhí)行引擎類型,獲取預(yù)先設(shè)置好的獲取地址,拉取到最新版本的執(zhí)行文件包來解析引擎落地執(zhí)行程序包的參數(shù),并在啟動(dòng)執(zhí)行文件包時(shí),解析出資源參數(shù)來申請(qǐng)集群的資源,設(shè)置調(diào)用并行度。
2.根據(jù)權(quán)利要求1所述的一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:步驟2中計(jì)算決策出當(dāng)前SQL任務(wù)適合的執(zhí)行引擎及資源配置數(shù)據(jù)包括以下步驟:
S1:根據(jù)執(zhí)行參數(shù)信息判定是否已指定執(zhí)行引擎;是,以指定的執(zhí)行引擎作為運(yùn)行原始SQL語句的執(zhí)行引擎;否,執(zhí)行步驟S2;
S2:獲取當(dāng)前大數(shù)據(jù)集群的各執(zhí)行引擎的當(dāng)前任務(wù)個(gè)數(shù)和空閑資源以及所有服務(wù)器的公共空閑資源;
S3:根據(jù)步驟S2中獲取到的數(shù)據(jù),選擇出最優(yōu)的執(zhí)行引擎;
S4:通過SQL解析器解析出原始SQL語句的函數(shù)列表;
S5:判定函數(shù)列表中是否有函數(shù)需要改造:是,統(tǒng)計(jì)需改造函數(shù),并生成待改造函數(shù)列表,執(zhí)行步驟S6;否,則不對(duì)原始SQL語句進(jìn)行改造,直接輸出選擇好的執(zhí)行引擎和原始SQL語句;
S6:根據(jù)預(yù)先設(shè)置好的引擎函數(shù)實(shí)現(xiàn)方式對(duì)待改造函數(shù)列表里的函數(shù)進(jìn)行改造,得到改造SQL語句;
S7:輸出選擇好的執(zhí)行引擎類型、改造SQL語句以及資源占用參數(shù)。
3.根據(jù)權(quán)利要求2所述的一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:所述步驟S2中獲取的空閑資源包括CPU與內(nèi)存資源中的空閑資源。
4.根據(jù)權(quán)利要求2所述的一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:步驟S2中通過大數(shù)據(jù)計(jì)算資源模型來獲取當(dāng)前大數(shù)據(jù)集群的各執(zhí)行引擎的當(dāng)前任務(wù)個(gè)數(shù)和空閑資源以及所有服務(wù)器的公共空閑資源。
5.根據(jù)權(quán)利要求4所述的一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:所述大數(shù)據(jù)計(jì)算資源模型包括數(shù)據(jù)層、收集層、統(tǒng)計(jì)計(jì)算層以及數(shù)據(jù)輸出層;其中,
數(shù)據(jù)層,用于將每個(gè)SQL任務(wù)開始時(shí)運(yùn)行的資源占用數(shù)據(jù)、每個(gè)SQL任務(wù)結(jié)束后歸還的資源數(shù)據(jù)以及服務(wù)器總體資源數(shù)據(jù)上報(bào)到收集層中;
收集層,用于將收集到的數(shù)據(jù)分別按執(zhí)行引擎進(jìn)行數(shù)據(jù)歸類整理,分別對(duì)收集服務(wù)器資源的占用、空閑情況、任務(wù)上報(bào)時(shí)的執(zhí)行引擎類型、占用資源信息、任務(wù)的運(yùn)行狀態(tài)信息進(jìn)行分字段整理歸類集合存放于內(nèi)存中;
統(tǒng)計(jì)計(jì)算層,用于統(tǒng)計(jì)各項(xiàng)資源數(shù)據(jù);包括統(tǒng)計(jì)各執(zhí)行引擎的占用資源、各引擎使用的時(shí)長與頻次、服務(wù)器總體剩下的資源;
數(shù)據(jù)輸出層,用于將統(tǒng)計(jì)的各項(xiàng)資源數(shù)據(jù)寫入數(shù)據(jù)庫,以便提供給第三方頁面展示用;其還用于將統(tǒng)計(jì)的各項(xiàng)資源數(shù)據(jù)寫入緩存,以便后續(xù)智能切換計(jì)算使用。
6.根據(jù)權(quán)利要求2所述的一種大數(shù)據(jù)平臺(tái)SQL任務(wù)執(zhí)行引擎智能自動(dòng)切換的方法,其特征在于:步驟S3中選擇出最優(yōu)的執(zhí)行引擎的方法如下:
方法A:如果所有的引擎都無歷史任務(wù)執(zhí)行的情況下,資源都滿足的情況下,則在預(yù)先設(shè)定的業(yè)界公認(rèn)最適合的引擎排名列表中,選擇排名最高的引擎作為當(dāng)前SQL任務(wù)的執(zhí)行引擎;
方法B:如果所有的引擎都沒有執(zhí)行過歷史任務(wù),并且當(dāng)前SQL任務(wù)沒有指定資源占用情況,則按預(yù)先設(shè)定的以資源要求高低來排名的引擎排名列表中選擇最低資源要求配置的引擎來作為當(dāng)前SQL任務(wù)的執(zhí)行引擎;如果當(dāng)前SQL任務(wù)指定了資源占用參數(shù),在所有引擎都滿足服務(wù)器的空閑資源的情況下,按排名高低選擇排名最高的引擎作為當(dāng)前SQL任務(wù)的執(zhí)行引擎,而在所有引擎都不滿足服務(wù)器的空閑資源的情況下,則選擇排名最中間的引擎作為當(dāng)前SQL任務(wù)的執(zhí)行引擎;
方法C:如果有部分引擎有過歷史任務(wù),則選出所有還沒有執(zhí)行過任務(wù)的引擎,并參照預(yù)先設(shè)定的業(yè)界公認(rèn)最適合的引擎排名列表和預(yù)先設(shè)定的以資源要求高低來排名的引擎排名列表,將沒有執(zhí)行過任務(wù)的引擎按資源情況進(jìn)行排名,滿足排名最高的引擎作為當(dāng)前SQL任務(wù)的執(zhí)行引擎;當(dāng)資源不滿足引擎時(shí),則按照上述B中的方法進(jìn)行選擇;
方法D:當(dāng)所有引擎都有過執(zhí)行任務(wù)的情況下,統(tǒng)計(jì)各引擎任務(wù)單位時(shí)間內(nèi)的執(zhí)行個(gè)數(shù)及執(zhí)行時(shí)資源占用情況對(duì)比,排列出一個(gè)效率由高到低的引擎排名,并計(jì)算各引擎的策略值,選擇策略值最小的引擎作為SQL任務(wù)的執(zhí)行引擎;當(dāng)出現(xiàn)策略值相同時(shí),則根據(jù)預(yù)設(shè)的最優(yōu)化引擎排名值最高的引擎作為執(zhí)行引擎;其中,策略值的計(jì)算公式為:CValue?=(Abs(Pcpu-eTaskAvgCpu)?+?Abs(Pmem-eTaskAvgMem))/2;CValue為策略值,Abs為絕對(duì)值函數(shù),Pcpu為?當(dāng)前集群中服務(wù)器的空閑CPU資源數(shù),Pmem為當(dāng)前集群中服務(wù)器的空閑內(nèi)存資源數(shù),eTaskAvgCpu為執(zhí)行引擎單位時(shí)間內(nèi)任務(wù)執(zhí)行的平均CPU資源數(shù),eTaskAvgMem為執(zhí)行引擎單位時(shí)間內(nèi)任務(wù)執(zhí)行占用的平均內(nèi)存大小。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于多點(diǎn)生活(成都)科技有限公司,未經(jīng)多點(diǎn)生活(成都)科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110761594.8/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法、數(shù)據(jù)系統(tǒng)、接收設(shè)備和數(shù)據(jù)讀取方法
- 數(shù)據(jù)記錄方法、數(shù)據(jù)記錄裝置、數(shù)據(jù)記錄媒體、數(shù)據(jù)重播方法和數(shù)據(jù)重播裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)發(fā)送系統(tǒng)、數(shù)據(jù)發(fā)送裝置以及數(shù)據(jù)結(jié)構(gòu)
- 數(shù)據(jù)顯示系統(tǒng)、數(shù)據(jù)中繼設(shè)備、數(shù)據(jù)中繼方法及數(shù)據(jù)系統(tǒng)
- 數(shù)據(jù)嵌入裝置、數(shù)據(jù)嵌入方法、數(shù)據(jù)提取裝置及數(shù)據(jù)提取方法
- 數(shù)據(jù)管理裝置、數(shù)據(jù)編輯裝置、數(shù)據(jù)閱覽裝置、數(shù)據(jù)管理方法、數(shù)據(jù)編輯方法以及數(shù)據(jù)閱覽方法
- 數(shù)據(jù)發(fā)送和數(shù)據(jù)接收設(shè)備、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收方法
- 數(shù)據(jù)發(fā)送裝置、數(shù)據(jù)接收裝置、數(shù)據(jù)收發(fā)系統(tǒng)、數(shù)據(jù)發(fā)送方法、數(shù)據(jù)接收方法和數(shù)據(jù)收發(fā)方法
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 數(shù)據(jù)發(fā)送方法、數(shù)據(jù)再現(xiàn)方法、數(shù)據(jù)發(fā)送裝置及數(shù)據(jù)再現(xiàn)裝置
- 一種SQL注入檢測(cè)方法及裝置
- SQL檢查方法與裝置
- 一種結(jié)構(gòu)化查詢語言性能優(yōu)化方法及系統(tǒng)
- 使用SQL實(shí)現(xiàn)MDX查詢效果的方法和裝置
- SQL語句處理方法和系統(tǒng)
- 一種SQL審核方法與系統(tǒng)
- 異常SQL語句檢測(cè)方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- SQL代碼信息顯示方法、裝置、計(jì)算機(jī)裝置及存儲(chǔ)介質(zhì)
- PaaS平臺(tái)中SQL執(zhí)行引擎的適配方法及裝置
- 一種SQL預(yù)執(zhí)行優(yōu)化的方法、裝置、設(shè)備及可讀介質(zhì)
- 任務(wù)協(xié)作裝置及方法
- 用于量化任務(wù)價(jià)值的任務(wù)管理方法及裝置
- 用于運(yùn)行任務(wù)的系統(tǒng)、方法和裝置
- 一種分布式任務(wù)調(diào)度系統(tǒng)及方法
- 任務(wù)信息處理方法
- 一種同步任務(wù)異步執(zhí)行的方法和調(diào)度系統(tǒng)
- 數(shù)據(jù)處理方法、裝置、電子設(shè)備及計(jì)算機(jī)可讀介質(zhì)
- 一種自動(dòng)分配和推送的任務(wù)管理平臺(tái)及方法
- 程序執(zhí)行控制的裝置及方法、終端和存儲(chǔ)介質(zhì)
- 基于會(huì)話的任務(wù)待辦方法、系統(tǒng)、電子設(shè)備及存儲(chǔ)介質(zhì)





