本發(fā)明涉及數(shù)據(jù)庫與大數(shù)據(jù),具體涉及一種用于數(shù)據(jù)庫的數(shù)據(jù)處理優(yōu)化方法和裝置、電子設(shè)備以及存儲介質(zhì)。
背景技術(shù):
1、分布式數(shù)據(jù)庫在處理大規(guī)模數(shù)據(jù)和高并發(fā)訪問方面具有明顯優(yōu)勢,通過有效地管理和存儲數(shù)據(jù),支持企業(yè)的大數(shù)據(jù)分析、實時應(yīng)用和云原生架構(gòu)。?分布式數(shù)據(jù)庫將數(shù)據(jù)存儲在多個物理節(jié)點上,通過分布式計算和存儲技術(shù)來實現(xiàn)數(shù)據(jù)管理。在分布式數(shù)據(jù)庫進(jìn)行數(shù)據(jù)處理過程中,經(jīng)常需要對數(shù)據(jù)進(jìn)行分組與聚合操作(例如group?by操作),即根據(jù)一個或多個列的值將結(jié)果集分為多個分組,然后在每個分組內(nèi)獨立地使用聚合函數(shù),進(jìn)而使得用戶能夠根據(jù)特定的規(guī)則對數(shù)據(jù)進(jìn)行分組,并對每個分組執(zhí)行聚合操作,從而得到匯總的數(shù)據(jù)結(jié)果。然而,現(xiàn)有的數(shù)據(jù)分組與聚合處理技術(shù)方案存在運算耗時、查詢時間偏長等技術(shù)問題,從而非常影響用戶的使用體驗。因此,需要提出新的技術(shù)方案用于優(yōu)化現(xiàn)有的數(shù)據(jù)分組與聚合處理技術(shù)方案。
技術(shù)實現(xiàn)思路
1、鑒于上述問題,本發(fā)明提供了一種用于數(shù)據(jù)庫的數(shù)據(jù)處理優(yōu)化方法和裝置、電子設(shè)備以及存儲介質(zhì)。
2、根據(jù)本發(fā)明的第一個方面,提供了一種用于數(shù)據(jù)庫的數(shù)據(jù)處理優(yōu)化方法,該方法包括:
3、確定分布式數(shù)據(jù)庫中每個存儲節(jié)點需要進(jìn)行分組與聚合處理的原始數(shù)據(jù)集,并利用混合采樣方法從原始數(shù)據(jù)集中篩選出目標(biāo)數(shù)據(jù)子集;
4、利用哈希分片算法對目標(biāo)數(shù)據(jù)子集進(jìn)行獨立分片,將映射到不同處理節(jié)點中的獨立分片結(jié)果作為獨立數(shù)據(jù)塊,并將原始數(shù)據(jù)集中的其他數(shù)據(jù)子集進(jìn)行初始數(shù)據(jù)切片;
5、計算初始數(shù)據(jù)切片結(jié)果的平均數(shù)據(jù)量,基于平均數(shù)據(jù)量對符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次分片,并將再次分片的結(jié)果作為普通數(shù)據(jù)塊;
6、將獨立數(shù)據(jù)塊和普通數(shù)據(jù)塊進(jìn)行混合排序,并通過分布式數(shù)據(jù)庫的多線程數(shù)據(jù)功能對混合排序的結(jié)果進(jìn)行調(diào)度以便并發(fā)地執(zhí)行對原始數(shù)據(jù)集的分組與聚合操作。
7、根據(jù)本發(fā)明的實施例,上述利用混合采樣方法從原始數(shù)據(jù)集中篩選出目標(biāo)數(shù)據(jù)子集包括:
8、對每個存儲節(jié)點中的原始數(shù)據(jù)集進(jìn)行固定采樣,從原始數(shù)據(jù)集中篩選出重復(fù)率滿足預(yù)設(shè)采樣條件的數(shù)據(jù),并將被篩選出來的數(shù)據(jù)添加到目標(biāo)數(shù)據(jù)子集中的數(shù)據(jù);和/或
9、對每個存儲節(jié)點中的原始數(shù)據(jù)集進(jìn)行按比例采樣,從原始數(shù)據(jù)集中篩選出重復(fù)率滿足預(yù)設(shè)采樣條件的數(shù)據(jù),并將被篩選出來的數(shù)據(jù)添加到目標(biāo)數(shù)據(jù)子集中。
10、根據(jù)本發(fā)明的實施例,上述對每個存儲節(jié)點中的原始數(shù)據(jù)集進(jìn)行固定采樣,從原始數(shù)據(jù)集中篩選出重復(fù)率滿足預(yù)設(shè)采樣條件的數(shù)據(jù)包括:
11、統(tǒng)計每個原始數(shù)據(jù)集中每個數(shù)據(jù)的重復(fù)率,并按照重復(fù)率進(jìn)行從大到小的排序,得到第一排序結(jié)果;
12、基于第一排序結(jié)果,篩選重復(fù)率排名靠前的n個數(shù)據(jù)作為符合預(yù)設(shè)采樣條件的數(shù)據(jù),其中,n為基于用戶需求設(shè)定的正整數(shù);
13、獲取每個原始數(shù)據(jù)集的數(shù)據(jù)總量,并根據(jù)數(shù)據(jù)總量設(shè)置采樣點數(shù)量和每個采樣點的采集量;
14、根據(jù)采樣點數(shù)量和每個采樣點的采集量計算采樣總量,并根據(jù)采樣總量,對每個原始數(shù)據(jù)集中滿足預(yù)設(shè)采樣條件的數(shù)據(jù)進(jìn)行均勻采樣;
15、在原始數(shù)據(jù)集中滿足預(yù)設(shè)采樣條件的數(shù)據(jù)小于采樣總量的情況下,對原始數(shù)據(jù)集中滿足預(yù)設(shè)采樣條件的數(shù)據(jù)進(jìn)行全部采樣。
16、根據(jù)本發(fā)明的實施例,上述對每個存儲節(jié)點中的原始數(shù)據(jù)集進(jìn)行按比例采樣,從原始數(shù)據(jù)集中篩選出重復(fù)率滿足預(yù)設(shè)采樣條件的數(shù)據(jù)包括:
17、統(tǒng)計每個原始數(shù)據(jù)集中每個數(shù)據(jù)的重復(fù)率,并按照重復(fù)率進(jìn)行從大到小的排序,得到第二排序結(jié)果;
18、基于第二排序結(jié)果,篩選重復(fù)率排名靠前的n個數(shù)據(jù)作為符合預(yù)設(shè)采樣條件的數(shù)據(jù),其中,n為基于用戶需求設(shè)定的正整數(shù);
19、獲取每個原始數(shù)據(jù)集的數(shù)據(jù)總量,并根據(jù)每個原始數(shù)據(jù)集的數(shù)據(jù)總量設(shè)置采樣點數(shù)量、采樣總行數(shù)、采樣間隔以及點采樣條數(shù);
20、根據(jù)采樣點數(shù)量、采樣總行數(shù)、采樣間隔以及點采樣條數(shù),對每個原始數(shù)據(jù)集中滿足預(yù)設(shè)采樣條件的數(shù)據(jù)進(jìn)行按比例采樣。
21、根據(jù)本發(fā)明的實施例,上述計算初始數(shù)據(jù)切片結(jié)果的平均數(shù)據(jù)量,基于平均數(shù)據(jù)量對符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次分片包括:
22、基于初始數(shù)據(jù)切片結(jié)果的數(shù)量以及初始數(shù)據(jù)切片結(jié)果所包含的數(shù)據(jù)總量,計算得到平均數(shù)據(jù)量;
23、將每個初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)量與平均數(shù)據(jù)量進(jìn)行運算,并基于運算結(jié)果和預(yù)定義閾值確定符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果;
24、利用二次劃分方法對符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次切片。
25、根據(jù)本發(fā)明的實施例,上述利用二次劃分方法對符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次切片包括:
26、將符合預(yù)設(shè)再次分片條件的所有初始數(shù)據(jù)切片結(jié)果按照所包含的數(shù)據(jù)量進(jìn)行從大到小的排序,得到第三排序結(jié)果;
27、基于符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)總量、每個符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)量以及第三排序結(jié)果確定再次分片的數(shù)量;
28、構(gòu)建哈希函數(shù)并進(jìn)行參數(shù)初始化,利用哈希函數(shù)和再次分片的數(shù)量計算再次分片的哈希值;
29、根據(jù)再次分片的哈希值,將符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次分片。
30、根據(jù)本發(fā)明的實施例,上述基于符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)總量、每個符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)量確定再次分片的數(shù)量以及第三排序結(jié)果包括:
31、計算每個符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)量在符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果的數(shù)據(jù)總量中的占比;
32、基于第三排序結(jié)果,利用用戶設(shè)定的閾值以及占比確定再次分片的數(shù)量。
33、根據(jù)本發(fā)明的第二個方面,提供了一種用于數(shù)據(jù)庫的數(shù)據(jù)處理優(yōu)化裝置,該裝置包括:
34、數(shù)據(jù)篩選模塊,用于確定分布式數(shù)據(jù)庫中每個存儲節(jié)點需要進(jìn)行分組與聚合處理的原始數(shù)據(jù)集,并利用混合采樣方法從原始數(shù)據(jù)集中篩選出目標(biāo)數(shù)據(jù)子集;
35、初始分片模塊,用于利用哈希分片算法對目標(biāo)數(shù)據(jù)子集進(jìn)行獨立分片,將映射到不同處理節(jié)點中的獨立分片結(jié)果作為獨立數(shù)據(jù)塊,并將原始數(shù)據(jù)集中的其他數(shù)據(jù)子集進(jìn)行初始數(shù)據(jù)切片;
36、再次分片模塊,用于計算初始數(shù)據(jù)切片結(jié)果的平均數(shù)據(jù)量,基于平均數(shù)據(jù)量對符合預(yù)設(shè)再次分片條件的初始數(shù)據(jù)切片結(jié)果進(jìn)行再次分片,并將再次分片的結(jié)果作為普通數(shù)據(jù)塊;
37、優(yōu)化處理模塊,用于將獨立數(shù)據(jù)塊和普通數(shù)據(jù)塊進(jìn)行混合排序,并通過分布式數(shù)據(jù)庫的多線程數(shù)據(jù)功能對混合排序的結(jié)果進(jìn)行調(diào)度以便并發(fā)地執(zhí)行對原始數(shù)據(jù)集的分組與聚合操作。
38、本發(fā)明的第三方面提供了一種電子設(shè)備,包括:一個或多個處理器;存儲器,用于存儲一個或多個計算機(jī)程序,其中,上述一個或多個處理器執(zhí)行上述一個或多個計算機(jī)程序以實現(xiàn)上述方法的步驟。
39、本發(fā)明的第四方面還提供了一種計算機(jī)可讀存儲介質(zhì),其上存儲有計算機(jī)程序或指令,上述計算機(jī)程序或指令被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
40、本發(fā)明提供的上述用于數(shù)據(jù)庫的數(shù)據(jù)處理優(yōu)化方法,通過對目標(biāo)數(shù)據(jù)子集進(jìn)行獨立切片,使得重復(fù)率較高的數(shù)據(jù)能夠得到優(yōu)先處理;同時對初始分片所得到的大切片進(jìn)行二次切片,使得所得到的每個數(shù)據(jù)塊擁有合理的數(shù)據(jù)量,從而避免在某個大切片上耗費大量的時間進(jìn)行分組與聚合操作。本發(fā)明所提供的上述方法,能夠有效減少數(shù)據(jù)庫進(jìn)行分組與聚合操作過程中的“木桶效應(yīng)”,大幅度提升分組與聚合操作的性能,有效降低了用戶的查詢時間成本。