本申請涉及數(shù)據(jù)處理,特別涉及一種索引構(gòu)建方法、裝置、存儲介質(zhì)及電子設(shè)備。
背景技術(shù):
1、在現(xiàn)有的數(shù)據(jù)庫優(yōu)化技術(shù)領(lǐng)域,特別是在處理大規(guī)模數(shù)據(jù)集和復(fù)雜查詢優(yōu)化方面,一個常見的挑戰(zhàn)是如何高效地管理和優(yōu)化數(shù)據(jù)模型的訪問效率。為了提高查詢性能,數(shù)據(jù)庫管理系統(tǒng)(dbms)常常采用對特定數(shù)據(jù)段(segment)進行索引構(gòu)建的策略,以加速數(shù)據(jù)檢索過程。然而,傳統(tǒng)的索引構(gòu)建方法在面對包含大量segment的復(fù)雜模型時,往往會采取全量刷新的方式,即逐一針對每個segment生成獨立的構(gòu)建任務(wù)。這種策略在處理segment數(shù)量龐大的情況下,會導(dǎo)致構(gòu)建任務(wù)數(shù)量激增,進而引發(fā)任務(wù)排隊等待現(xiàn)象,不僅增加了系統(tǒng)資源消耗,還嚴重影響了其他模型segment的數(shù)據(jù)加載和刷新效率,甚至可能引發(fā)系統(tǒng)整體的性能瓶頸。
2、具體而言,全量刷新策略下,構(gòu)建任務(wù)數(shù)與被優(yōu)化模型的segment數(shù)直接相等,這意味著每增加一個segment,就需要額外增加一個構(gòu)建任務(wù)。在大數(shù)據(jù)環(huán)境下,這種線性增長的構(gòu)建任務(wù)數(shù)很快就會超出系統(tǒng)處理能力,造成任務(wù)堆積和延遲,對數(shù)據(jù)庫的整體性能和響應(yīng)速度造成不利影響。
3、申請內(nèi)容
4、本申請所要解決的技術(shù)問題是提供一種索引構(gòu)建方法、裝置、存儲介質(zhì)及電子設(shè)備,能夠減少構(gòu)建任務(wù)的數(shù)量。具體方案如下:
5、一種索引構(gòu)建方法,包括:
6、獲取待處理的各個目標sql語句;
7、對于每個所述目標sql語句,在檢測到所述目標sql語句滿足預(yù)設(shè)的加速條件的情況下,獲取所述目標sql語句的優(yōu)化提示信息;在所述優(yōu)化提示信息包含目標模型的索引信息以及模型信息的情況下,根據(jù)所述索引信息生成所述目標sql語句對應(yīng)的加速索引,并將所述模型信息存儲到預(yù)設(shè)的記錄表中;所述目標模型為用于對所述目標sql語句進行加速的kylin模型;
8、生成每個所述目標模型對應(yīng)的索引構(gòu)建任務(wù),并執(zhí)行每個所述索引構(gòu)建任務(wù),以完成每個所述目標模型的索引構(gòu)建,使得每個所述目標sql語句對應(yīng)的加速索引被配置為加速每個所述目標sql語句。
9、上述的方法,可選的,所述生成每個所述目標模型對應(yīng)的索引構(gòu)建任務(wù),包括:
10、獲取每個所述目標模型的目標模型標識;
11、根據(jù)每個目標模型的目標模型標識調(diào)用預(yù)設(shè)的模型構(gòu)建接口,獲得每個目標模型對應(yīng)的索引構(gòu)建任務(wù)。
12、上述的方法,可選的,獲取待處理的目標sql語句的過程,包括:
13、獲取sql語句列表;
14、對所述sql語句列表進行非空校驗、條數(shù)限制校驗以及非kylin數(shù)據(jù)源校驗,獲得所述sql語句列表的校驗結(jié)果;
15、在所述校驗結(jié)果表征校驗通過的情況下,對所述sql語句列表中的sql語句進行拼接;
16、對拼接后的所述sql語句進行格式化,獲得待處理的目標sql語句。
17、上述的方法,可選的,所述根據(jù)所述索引信息生成所述目標sql語句對應(yīng)的加速索引,包括:
18、根據(jù)所述索引信息調(diào)用預(yù)設(shè)的加速索引接口,生成所述加速索引。
19、上述的方法,可選的,檢測到所述目標sql語句滿足預(yù)設(shè)的加速條件的過程,包括:
20、調(diào)用預(yù)設(shè)的模型檢測接口檢測是否存在具有加速所述目標sql語句的能力的目標模型;
21、若存在具有加速所述目標sql語句的能力的目標模型,則確定所述目標sql語句滿足預(yù)設(shè)的加速條件。
22、上述的方法,可選的,還包括:
23、在所述優(yōu)化提示信息為空的情況下,輸出提示消息,所述提示消息用于提示所述目標sql語句已存在加速索引。
24、一種索引構(gòu)建裝置,包括:
25、獲取單元,用于獲取待處理的各個目標sql語句;
26、執(zhí)行單元,用于針對于每個目標sql語句,在檢測到所述目標sql語句滿足預(yù)設(shè)的加速條件的情況下,獲取所述目標sql語句的優(yōu)化提示信息;在所述優(yōu)化提示信息包含目標模型的索引信息以及模型信息的情況下,根據(jù)所述索引信息生成所述目標sql語句對應(yīng)的加速索引,并將所述模型信息存儲到預(yù)設(shè)的記錄表中;所述目標模型為用于對所述目標sql語句進行加速的kylin模型;
27、索引構(gòu)建單元,用于生成每個所述目標模型對應(yīng)的索引構(gòu)建任務(wù),并執(zhí)行每個所述索引構(gòu)建任務(wù),以完成每個所述目標模型的索引構(gòu)建,使得每個所述目標sql語句對應(yīng)的加速索引被配置為加速每個所述目標sql語句。
28、上述的裝置,可選的,所述索引構(gòu)建單元,包括:
29、獲取子單元,用于獲取每個所述目標模型的目標模型標識;
30、索引構(gòu)建子單元,用于根據(jù)每個目標模型的目標模型標識調(diào)用預(yù)設(shè)的模型構(gòu)建接口,獲得每個目標模型對應(yīng)的索引構(gòu)建任務(wù)。
31、一種存儲介質(zhì),所述存儲介質(zhì)包括存儲的指令,其中,在所述指令運行時控制所述存儲介質(zhì)所在的設(shè)備執(zhí)行如上述的索引構(gòu)建方法。
32、一種電子設(shè)備,包括存儲器,以及一個或者一個以上的指令,其中一個或一個以上指令存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行如上述的索引構(gòu)建方法。
33、基于上述本申請實施提供的一種索引構(gòu)建方法、裝置、存儲介質(zhì)及電子設(shè)備,所述方法包括:獲取待處理的各個目標sql語句;對于每個所述目標sql語句,在檢測到所述目標sql語句滿足預(yù)設(shè)的加速條件的情況下,獲取所述目標sql語句的優(yōu)化提示信息;在所述優(yōu)化提示信息包含目標模型的索引信息以及模型信息的情況下,根據(jù)所述索引信息生成所述目標sql語句對應(yīng)的加速索引,并將所述模型信息存儲到預(yù)設(shè)的記錄表中;所述目標模型為用于對所述目標sql語句進行加速的kylin模型;生成每個所述目標模型對應(yīng)的索引構(gòu)建任務(wù),并執(zhí)行每個所述索引構(gòu)建任務(wù),以完成每個所述目標模型的索引構(gòu)建,使得每個所述目標sql語句對應(yīng)的加速索引被配置為加速每個所述目標sql語句。應(yīng)用本申請實施例提供的方法,能夠在模型維度進行索引構(gòu)建,能夠有效地構(gòu)建任務(wù)的數(shù)量。
技術(shù)實現(xiàn)思路
1.一種索引構(gòu)建方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述生成每個所述目標模型對應(yīng)的索引構(gòu)建任務(wù),包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取待處理的目標sql語句的過程,包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述索引信息生成所述目標sql語句對應(yīng)的加速索引,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,檢測到所述目標sql語句滿足預(yù)設(shè)的加速條件的過程,包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括:
7.一種索引構(gòu)建裝置,其特征在于,包括:
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述索引構(gòu)建單元,包括:
9.一種存儲介質(zhì),其特征在于,所述存儲介質(zhì)包括存儲的指令,其中,在所述指令運行時控制所述存儲介質(zhì)所在的設(shè)備執(zhí)行如權(quán)利要求1~6任意一項所述的索引構(gòu)建方法。
10.一種電子設(shè)備,其特征在于,包括存儲器,以及一個或者一個以上的指令,其中一個或一個以上指令存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行如權(quán)利要求1~6任意一項所述的索引構(gòu)建方法。