本發(fā)明涉及數(shù)據(jù)庫,更具體地涉及一種數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理方法、裝置、設備和介質(zhì)。
背景技術:
1、隨著數(shù)據(jù)庫的廣泛應用,數(shù)據(jù)庫中固有的函數(shù)已經(jīng)無法滿足用戶復雜的數(shù)據(jù)處理需求,因此數(shù)據(jù)庫通常允許用戶根據(jù)數(shù)據(jù)處理需求創(chuàng)建自定義函數(shù)。
2、但是,在數(shù)據(jù)庫的多集群模式下,用戶僅能在單個集群下創(chuàng)建自定義函數(shù),導致用戶在進行涉及多個集群的查詢時,無法使用自定義函數(shù)。
技術實現(xiàn)思路
1、鑒于上述問題,本發(fā)明提供了數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理方法、裝置、設備、介質(zhì)和程序產(chǎn)品。
2、根據(jù)本發(fā)明的第一個方面,提供了一種數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理方法,包括:響應于接收到結(jié)構(gòu)化查詢語句,對上述結(jié)構(gòu)化查詢語句進行解析,生成上述結(jié)構(gòu)化查詢語句的原始執(zhí)行計劃,其中,上述結(jié)構(gòu)化查詢語句包括自定義函數(shù),上述原始執(zhí)行計劃包括多個原始執(zhí)行步驟;從上述多個原始執(zhí)行步驟中確定目標原始執(zhí)行步驟,其中,上述目標原始執(zhí)行步驟包括上述自定義函數(shù);響應于確定用于執(zhí)行上述目標原始執(zhí)行步驟的第一集群中不包括上述自定義函數(shù),在上述目標原始執(zhí)行步驟之前增加函數(shù)創(chuàng)建步驟,得到目標執(zhí)行計劃,其中,上述函數(shù)創(chuàng)建步驟用于根據(jù)上述自定義函數(shù)在上述第一集群創(chuàng)建臨時函數(shù);以及執(zhí)行上述目標執(zhí)行計劃。
3、根據(jù)本發(fā)明的實施例,上述生成上述結(jié)構(gòu)化查詢語句的原始執(zhí)行計劃,包括:獲取上述自定義函數(shù)的定義信息,以及用于存儲上述自定義函數(shù)的第二集群的集群標識;根據(jù)上述定義信息和上述第二集群的集群標識,生成函數(shù)調(diào)用實例;以及響應于確定上述字段中包括自定義函數(shù),基于上述函數(shù)調(diào)用實例,生成與上述字段對應的原始執(zhí)行步驟。
4、根據(jù)本發(fā)明的實施例,上述上述方法還包括:在確定上述第一集群的集群標識與上述第二集群的集群標識相同的情況下,確定上述第一集群中包括上述自定義函數(shù);以及在確定上述第一集群的集群標識與上述第二集群的集群標識不同的情況下,確定上述第一集群中不包括上述自定義函數(shù)。
5、根據(jù)本發(fā)明的實施例,上述在上述原始執(zhí)行步驟之前增加函數(shù)創(chuàng)建步驟,得到目標執(zhí)行計劃包括:在上述多個原始執(zhí)行步驟中的第一個原始執(zhí)行步驟之前,增加上述函數(shù)創(chuàng)建步驟;在上述多個原始執(zhí)行步驟中的最后一個原始執(zhí)行步驟之后,增加函數(shù)銷毀步驟,其中,上述函數(shù)銷毀步驟用于銷毀上述臨時函數(shù);以及根據(jù)上述多個原始執(zhí)行步驟、上述函數(shù)創(chuàng)建步驟以及上述函數(shù)銷毀步驟,組合得到上述目標執(zhí)行計劃。
6、根據(jù)本發(fā)明的實施例,上述執(zhí)行上述目標執(zhí)行計劃包括:響應于檢測到執(zhí)行上述函數(shù)銷毀步驟的過程中出現(xiàn)異常,不拋出上述異常。
7、根據(jù)本發(fā)明的實施例,上述方法還包括:響應于觸發(fā)定時事件,刪除預定時段內(nèi)在上述第一集群中創(chuàng)建的臨時函數(shù)。
8、根據(jù)本發(fā)明的實施例,上述方法還包括:根據(jù)上述第一集群的第一集群標識,上述自定義函數(shù)的第一函數(shù)標識,上述結(jié)構(gòu)化查詢語句的查詢標識以及上述臨時函數(shù)的創(chuàng)建時刻,確定上述臨時函數(shù)的第二函數(shù)標識。
9、本發(fā)明的第二方面提供了一種數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理裝置,包括:解析模塊,用于響應于接收到結(jié)構(gòu)化查詢語句,對上述結(jié)構(gòu)化查詢語句進行解析,生成上述結(jié)構(gòu)化查詢語句的原始執(zhí)行計劃,其中,上述結(jié)構(gòu)化查詢語句包括自定義函數(shù),上述原始執(zhí)行計劃包括多個原始執(zhí)行步驟;確定模塊,用于從上述多個原始執(zhí)行步驟中確定目標原始執(zhí)行步驟,其中,上述目標原始執(zhí)行步驟包括上述自定義函數(shù);增加模塊,用于響應于確定用于執(zhí)行上述目標原始執(zhí)行步驟的第一集群中不包括上述自定義函數(shù),在上述目標原始執(zhí)行步驟之前增加函數(shù)創(chuàng)建步驟,得到目標執(zhí)行計劃,其中,上述函數(shù)創(chuàng)建步驟用于根據(jù)上述自定義函數(shù)在上述第一集群創(chuàng)建臨時函數(shù);以及執(zhí)行模塊,用于執(zhí)行上述目標執(zhí)行計劃。
10、本發(fā)明的第三方面提供了一種電子設備,包括:一個或多個處理器;存儲器,用于存儲一個或多個計算機程序,其中,上述一個或多個處理器執(zhí)行上述一個或多個計算機程序以實現(xiàn)上述方法的步驟。
11、本發(fā)明的第四方面還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序或指令,上述計算機程序或指令被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
12、本發(fā)明的第五方面還提供了一種計算機程序產(chǎn)品,包括計算機程序或指令,上述計算機程序或指令被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
13、根據(jù)本發(fā)明的實施例,通過在原始執(zhí)行計劃中增加用于在第一集群創(chuàng)建臨時函數(shù)的函數(shù)創(chuàng)建步驟,使得第一集群能夠利用臨時函數(shù)完成目標原始執(zhí)行步驟,進而保證結(jié)構(gòu)化查詢語句的正常執(zhí)行,提高用戶體驗。
1.一種數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述結(jié)構(gòu)化查詢語句包括字段,所述生成所述結(jié)構(gòu)化查詢語句的原始執(zhí)行計劃,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在所述原始執(zhí)行步驟之前增加函數(shù)創(chuàng)建步驟,得到目標執(zhí)行計劃包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述執(zhí)行所述目標執(zhí)行計劃包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
8.一種數(shù)據(jù)庫多集群模式下的結(jié)構(gòu)化查詢語句處理裝置,其特征在于,所述裝置包括:
9.一種電子設備,包括:
10.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序或指令,其特征在于,所述計算機程序或指令被處理器執(zhí)行時實現(xiàn)根據(jù)權(quán)利要求1~7中任一項所述方法的步驟。