本公開涉及數(shù)據(jù)處理,具體涉及一種基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法,一種基于深度q網(wǎng)絡的數(shù)據(jù)表清理系統(tǒng),一種電子設備以及一種計算機可讀存儲介質(zhì)。
背景技術(shù):
1、隨著信息技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)及物聯(lián)網(wǎng)的普及,數(shù)據(jù)驅(qū)動的業(yè)務模式迅速發(fā)展,數(shù)據(jù)生成的速度也在以前所未有的速度不斷增加。企業(yè)通過對這些海量數(shù)據(jù)的分析、挖掘,可以在各領(lǐng)域做出更加精準、有效的商業(yè)決策。然而,在數(shù)據(jù)量激增的同時,數(shù)據(jù)中也會夾雜中大量重復、冗余以及無用的垃圾數(shù)據(jù),當垃圾數(shù)據(jù)積累到一定程度時會影響數(shù)據(jù)庫的整體性能,那么對特定的數(shù)據(jù)表進行清理成為了數(shù)據(jù)維護者一大挑戰(zhàn)。為了應對這一挑戰(zhàn),目前許多企業(yè)會根據(jù)數(shù)據(jù)存儲空間使用率設定預警、設定定期數(shù)據(jù)清理計劃、數(shù)據(jù)庫負載分析與數(shù)據(jù)生命周期管理等,進行數(shù)據(jù)庫表清理,降低數(shù)據(jù)庫負載。
2、現(xiàn)有的清理數(shù)據(jù)表方法大部分時候都依賴手工清理數(shù)據(jù),對表清理缺乏明確的規(guī)劃或判斷,這樣的手工清理往往會引發(fā)一系列的連鎖反應,對企業(yè)的運營效率與數(shù)據(jù)安全構(gòu)成潛在的威脅。沒有清晰的表清理計劃可能會導致存儲空間被大量冗余、無效數(shù)據(jù)持續(xù)占用,不僅增加了不必要的硬件設備成本,還可能因存儲空間緊張影響到數(shù)據(jù)庫的整體性能,比如查詢速度表慢、etl(extract-transform-load)處理報錯等,對企業(yè)的精準決策過程造成干擾,更為嚴重的是,如果預警過程失效,長期不清理數(shù)據(jù)庫可能會導致數(shù)據(jù)不一致性增加,影響到業(yè)務的正常運行和數(shù)據(jù)的可用性。此外企業(yè)單位根據(jù)監(jiān)測數(shù)據(jù)庫指標手動清除數(shù)據(jù)表空間,由于需要監(jiān)控數(shù)據(jù)庫指標數(shù)量過多以及指標的重要性難以掌握,可能存在表清理不準確、誤刪等問題。
技術(shù)實現(xiàn)思路
1、為了至少解決現(xiàn)有技術(shù)中存在的手工清理數(shù)據(jù)表對表清理缺乏明確的規(guī)劃或判斷,以及存在表清理不準確、誤刪的問題。本公開提供一種基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法、基于深度q網(wǎng)絡的數(shù)據(jù)表清理系統(tǒng)、電子設備以及計算機可讀存儲介質(zhì),通過強化學習不斷訓練,最終精準預測出每個數(shù)據(jù)表的重要性,從而確保在清理過程中能夠保留關(guān)鍵數(shù)據(jù),同時有效地移除冗余或不再需要的信息,并提高清理數(shù)據(jù)表過程中的效率與準確率。
2、第一方面,本公開提供一種基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法,所述方法包括:
3、對數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)表進行存量數(shù)據(jù)特征信息收集;
4、根據(jù)收集的存量數(shù)據(jù)特征信息確定智能體參數(shù),并新建智能體,所述智能體參數(shù)包括描述數(shù)據(jù)表所處狀態(tài)的狀態(tài)空間、智能體可以執(zhí)行的所有可能動作的動作空間和智能體在執(zhí)行某個動作之后獲得獎勵的獎勵函數(shù);
5、對新建智能體進行dqn(deep?q-network,深度q網(wǎng)絡)算法訓練,得到訓練完成的智能體,使智能體基于智能體參數(shù)學習如何根據(jù)數(shù)據(jù)庫表狀態(tài),選擇優(yōu)化的清理動作,從而最大化累計獎勵;
6、通過訓練完成的智能體對數(shù)據(jù)表進行自動清理。
7、進一步的,所述存量數(shù)據(jù)特征信息包括:
8、結(jié)構(gòu)信息,包括列名、數(shù)據(jù)類型、是否存在索引;
9、屬性信息,包括表的大小,與其他數(shù)據(jù)表之間的關(guān)聯(lián)聯(lián)系。
10、進一步的,
11、所述狀態(tài)空間包括表的記錄數(shù)、創(chuàng)建時間、訪問頻率、數(shù)據(jù)表大小、歸屬存儲是否失效、日增長、月增長、環(huán)比、更新時間、創(chuàng)建人;
12、所述動作空間包括清除表、保留表、遷移表;
13、所述獎勵函數(shù)基于清理表動作之后的表大小、數(shù)據(jù)庫性能提升影響因素進行設計。
14、進一步的,所述獎勵函數(shù)通過以下公式進行計算:
15、r(s,a,s‘)=-m*δ數(shù)據(jù)完整性+o*i/o速度提升+p*δ存儲空間
16、其中r(s,a,s‘)為獎勵函數(shù)值,δ數(shù)據(jù)完整性表示執(zhí)行表清除之后對數(shù)據(jù)庫完整性的約束的變化,i/o(input/output,輸入/輸出)速度提升表示執(zhí)行動作a之后對數(shù)據(jù)庫讀寫性能的積極影響,δ存儲空間表示清理數(shù)據(jù)之后帶來存儲空間的變化,m,o,p為權(quán)重系數(shù)。
17、進一步的,所述對新建智能體進行dqn算法訓練包括:
18、初始化,初始化以下變量:
19、q網(wǎng)絡:初始化一個深度神經(jīng)網(wǎng)絡作為q網(wǎng)絡(s,a;θ),其中θ是神經(jīng)網(wǎng)絡的參數(shù),
20、目標網(wǎng)絡:創(chuàng)建一個q網(wǎng)絡副本作為目標網(wǎng)絡,其初始參數(shù)θ'與q網(wǎng)絡一致;
21、經(jīng)驗池:初始化一個空的經(jīng)驗池,用于存儲智能體與環(huán)境交互產(chǎn)生的經(jīng)驗數(shù)據(jù);
22、智能體選擇動作,包括:
23、在訓練的初期階段,智能體采用ε-貪婪策略來探索環(huán)境:
24、a=隨機動作(以ε的概率)
25、其中ε是探索率;
26、在訓練到一定階段后,智能體通過依賴q網(wǎng)絡進行動作的選擇;
27、執(zhí)行動作、觀察結(jié)果并存儲經(jīng)驗,包括:
28、智能體在數(shù)據(jù)庫環(huán)境中選擇執(zhí)行動作a,并且觀察結(jié)果,其中結(jié)果包含了數(shù)據(jù)庫的下一個狀態(tài)s‘,判斷獎勵r是否達到終止條件;將當前狀態(tài)下的結(jié)果(狀態(tài)s,動作a,獎勵r,下一個狀態(tài)s‘)存入經(jīng)驗池d中;
29、更新目標網(wǎng)絡,包括:
30、從經(jīng)驗池d中抽取一批經(jīng)驗數(shù)據(jù)(si,ai,ri,s‘i)作為訓練樣本,對每一個訓練樣本使用目標網(wǎng)絡q′(s‘i,a‘;θ′)計算目標q值yi:
31、yi=ri+γ*maxq′(s‘i,a‘;θ′)
32、其中γ表示折扣因子,用于控制未來獎勵的重要性,然后使用均方誤差函數(shù)值l來衡量預測q值與目標q值之間的差異:
33、
34、依據(jù)反向傳播算法與梯度下降法更新q網(wǎng)絡中的參數(shù)以最小化損失函數(shù);
35、重復訓練,獲取最優(yōu),包括:
36、重復智能體選擇動作到更新目標網(wǎng)絡的訓練步驟,直到達到預設的訓練輪數(shù),或者智能體的性能與損失函數(shù)收斂趨于穩(wěn)定,即可使用q網(wǎng)絡來選擇表的優(yōu)化使用動作。
37、進一步的,所述方法還包括:
38、為數(shù)據(jù)庫嵌入告警機制,在智能體對數(shù)據(jù)表進行清理前,自動發(fā)送對應的數(shù)據(jù)表的信息到相應的審核方,以使審核方根據(jù)數(shù)據(jù)表的信息進行清理確認,并返回確認信息;
39、若確認信息為確定清理,或者在預設時間內(nèi)未收到確認信息,則對數(shù)據(jù)表進行清理;
40、若確認信息為不清理,則通過更改結(jié)果表中的是否清理字段,對該數(shù)據(jù)表不進行操作,所述結(jié)果表中存儲有所有待清理的數(shù)據(jù)表的信息。
41、第二方面,本公開還提供一種基于深度q網(wǎng)絡的數(shù)據(jù)表清理系統(tǒng),所述系統(tǒng)包括:
42、收集模塊,其設置為對數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)表進行存量數(shù)據(jù)特征信息收集;
43、創(chuàng)建模塊,其設置為根據(jù)收集的存量數(shù)據(jù)特征信息確定智能體參數(shù),并新建智能體,所述智能體參數(shù)包括描述數(shù)據(jù)表所處狀態(tài)的狀態(tài)空間、智能體可以執(zhí)行的所有可能動作的動作空間和智能體在執(zhí)行某個動作之后獲得獎勵的獎勵函數(shù);
44、訓練模塊,其設置為對新建智能體進行dqn算法訓練,得到訓練完成的智能體,使智能體基于智能體參數(shù)學習如何根據(jù)數(shù)據(jù)庫表狀態(tài),選擇優(yōu)化的清理動作,從而最大化累計獎勵;
45、清理模塊,其設置為通過訓練完成的智能體對數(shù)據(jù)表進行自動清理。
46、進一步的,
47、所述狀態(tài)空間包括表的記錄數(shù)、創(chuàng)建時間、訪問頻率、數(shù)據(jù)表大小、歸屬存儲是否失效、日增長、月增長、環(huán)比、更新時間、創(chuàng)建人;
48、所述動作空間包括清除表、保留表、遷移表;
49、所述獎勵函數(shù)基于清理表動作之后的表大小、數(shù)據(jù)庫性能提升影響因素進行設計,并通過以下公式進行計算:
50、r(s,a,s‘)=-m*δ數(shù)據(jù)完整性+o*i/o速度提升+p*δ存儲空間
51、其中r(s,a,s‘)為獎勵函數(shù)值,δ數(shù)據(jù)完整性表示執(zhí)行表清除之后對數(shù)據(jù)庫完整性的約束的變化,i/o速度提升表示執(zhí)行動作a之后對數(shù)據(jù)庫讀寫性能的積極影響,δ存儲空間表示清理數(shù)據(jù)之后帶來存儲空間的變化,m,o,p為權(quán)重系數(shù)。
52、第三方面,本公開提供一種電子設備,包括存儲器和處理器,所述存儲器中存儲有計算機程序,當所述處理器運行所述存儲器存儲的計算機程序時,所述處理器執(zhí)行如第一方面中任一所述的基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法。
53、第四方面,本公開提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)上述第一方面中任一所述的基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法。
54、有益效果:
55、本公開提供的基于深度q網(wǎng)絡的數(shù)據(jù)表清理方法、基于深度q網(wǎng)絡的數(shù)據(jù)表清理系統(tǒng)、電子設備及存儲介質(zhì);通過對數(shù)據(jù)庫中數(shù)據(jù)表的特征狀態(tài)進行訓練分析,最大化優(yōu)化對數(shù)據(jù)庫中數(shù)據(jù)表的清理策略,通過強化學習不斷訓練,最終精準預測出每個數(shù)據(jù)表的重要性,從而確保在清理過程中能夠保留關(guān)鍵數(shù)據(jù),同時有效地移除冗余或不再需要的信息。提升了數(shù)據(jù)工程師在清理數(shù)據(jù)表過程中的效率與準確率,確保了數(shù)據(jù)庫清理工作的精確性與高效性。