本發(fā)明涉及數(shù)據(jù)庫,尤其涉及一種數(shù)據(jù)壓縮存儲(chǔ)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、目前,為降低存儲(chǔ)成本,基于greenplum進(jìn)行列存儲(chǔ)時(shí),通常采用greenplum兼容的壓縮算法進(jìn)行壓縮存儲(chǔ),即按照一定規(guī)則從greenplum數(shù)據(jù)源中導(dǎo)出數(shù)據(jù),再導(dǎo)入到歷史數(shù)據(jù)庫中,歷史數(shù)據(jù)庫的壓縮策略和導(dǎo)出數(shù)據(jù)的方式,往往根據(jù)已有的生產(chǎn)經(jīng)驗(yàn)確定。
2、但是,上述數(shù)據(jù)壓縮存儲(chǔ)方式由于歷史數(shù)據(jù)庫的壓縮策略和導(dǎo)出數(shù)據(jù)的方式都是根據(jù)已有的生產(chǎn)經(jīng)驗(yàn)確定,缺乏理論指導(dǎo)與量化依據(jù),從而導(dǎo)致壓縮效果不佳,進(jìn)而導(dǎo)致數(shù)據(jù)存儲(chǔ)占用空間大,存儲(chǔ)成本高。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的主要目的在于提供一種數(shù)據(jù)壓縮存儲(chǔ)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),旨在解決現(xiàn)有的數(shù)據(jù)壓縮存儲(chǔ)方式由于歷史數(shù)據(jù)庫的壓縮策略和導(dǎo)出數(shù)據(jù)的方式都是根據(jù)已有的生產(chǎn)經(jīng)驗(yàn)確定,缺乏理論指導(dǎo)與量化依據(jù),從而導(dǎo)致壓縮效果不佳,進(jìn)而導(dǎo)致數(shù)據(jù)存儲(chǔ)占用空間大,存儲(chǔ)成本高的技術(shù)問題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供一種數(shù)據(jù)壓縮存儲(chǔ)方法,所述數(shù)據(jù)壓縮存儲(chǔ)方法包括:
3、分別計(jì)算數(shù)據(jù)按列進(jìn)行壓縮存儲(chǔ)時(shí)各列在不同壓縮算法下的壓縮率,并根據(jù)各列在不同壓縮算法下的壓縮率選取各列對(duì)應(yīng)的目標(biāo)壓縮算法;
4、根據(jù)各列的列信息選取多列組合,并確定所述多列組合的導(dǎo)出順序;
5、根據(jù)所述各列對(duì)應(yīng)的目標(biāo)壓縮算法創(chuàng)建歷史數(shù)據(jù)庫;
6、基于所述導(dǎo)出順序?qū)?shù)據(jù)導(dǎo)出,并將導(dǎo)出的數(shù)據(jù)導(dǎo)入到所述歷史數(shù)據(jù)庫,在所述歷史數(shù)據(jù)庫中基于所述目標(biāo)壓縮算法對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行壓縮存儲(chǔ)。
7、可選地,所述根據(jù)各列的列信息選取多列組合,包括:
8、根據(jù)各列在對(duì)應(yīng)的目標(biāo)壓縮算法下的壓縮率對(duì)各列進(jìn)行排序,獲得壓縮率排序結(jié)果;
9、根據(jù)各列的列寬對(duì)各列進(jìn)行排序,獲得列寬排序結(jié)果;
10、根據(jù)各列的不同值比例對(duì)各列進(jìn)行排序,獲得不同值比例排序結(jié)果;
11、根據(jù)所述壓縮率排序結(jié)果、所述列寬排序結(jié)果以及所述不同值比例排序結(jié)果選取多列組合。
12、可選地,所述根據(jù)所述壓縮率排序結(jié)果、所述列寬排序結(jié)果以及所述不同值比例排序結(jié)果選取多列組合,包括:
13、根據(jù)所述壓縮率排序結(jié)果、所述列寬排序結(jié)果、所述不同值比例排序結(jié)果以及各排序結(jié)果對(duì)應(yīng)的權(quán)重系數(shù)計(jì)算各列的單列絕對(duì)權(quán)重值;
14、根據(jù)所述單列絕對(duì)權(quán)重值對(duì)各列進(jìn)行排序,并根據(jù)綜合排序結(jié)果從各列中選取多列組合。
15、可選地,所述根據(jù)各列的列信息選取多列組合之前,還包括:
16、分別對(duì)各列進(jìn)行靜態(tài)分析,獲得各列的列寬、不同值個(gè)數(shù)以及總值個(gè)數(shù);
17、根據(jù)所述不同值個(gè)數(shù)和所述總值個(gè)數(shù)計(jì)算各列的不同值比例。
18、可選地,所述確定所述多列組合的導(dǎo)出順序,包括:
19、根據(jù)所述多列組合在不同排列順序下的壓縮率對(duì)所述不同排列順序進(jìn)行排序;
20、根據(jù)不同排列順序的排序結(jié)果確定所述多列組合的導(dǎo)出順序。
21、可選地,所述分別計(jì)算數(shù)據(jù)按列進(jìn)行壓縮存儲(chǔ)時(shí)各列在不同壓縮算法下的壓縮率,并根據(jù)各列在不同壓縮算法下的壓縮率選取各列對(duì)應(yīng)的目標(biāo)壓縮算法之前,還包括:
22、創(chuàng)建與數(shù)據(jù)源一致的數(shù)據(jù)庫表;
23、從數(shù)據(jù)源中抽取樣本數(shù)據(jù)導(dǎo)入所述數(shù)據(jù)庫表;
24、相應(yīng)地,所述基于所述導(dǎo)出順序?qū)?shù)據(jù)導(dǎo)出,包括:
25、基于所述導(dǎo)出順序?qū)⑺鰯?shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)出。
26、可選地,所述數(shù)據(jù)源為greenplum數(shù)據(jù)源。
27、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)壓縮存儲(chǔ)裝置,所述數(shù)據(jù)壓縮存儲(chǔ)裝置包括:
28、算法選取模塊,用于分別計(jì)算數(shù)據(jù)按列進(jìn)行壓縮存儲(chǔ)時(shí)各列在不同壓縮算法下的壓縮率,并根據(jù)各列在不同壓縮算法下的壓縮率選取各列對(duì)應(yīng)的目標(biāo)壓縮算法;
29、順序確定模塊,用于根據(jù)各列的列信息選取多列組合,并確定所述多列組合的導(dǎo)出順序;
30、數(shù)據(jù)表創(chuàng)建模塊,用于根據(jù)所述各列對(duì)應(yīng)的目標(biāo)壓縮算法創(chuàng)建歷史數(shù)據(jù)庫;
31、壓縮存儲(chǔ)模塊,用于基于所述導(dǎo)出順序?qū)?shù)據(jù)導(dǎo)出,并將導(dǎo)出的數(shù)據(jù)導(dǎo)入到所述歷史數(shù)據(jù)庫,在所述歷史數(shù)據(jù)庫中基于所述目標(biāo)壓縮算法對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行壓縮存儲(chǔ)。
32、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種數(shù)據(jù)壓縮存儲(chǔ)設(shè)備,所述數(shù)據(jù)壓縮存儲(chǔ)設(shè)備包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的數(shù)據(jù)壓縮存儲(chǔ)程序,所述數(shù)據(jù)壓縮存儲(chǔ)程序配置為實(shí)現(xiàn)如上文所述的數(shù)據(jù)壓縮存儲(chǔ)方法。
33、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有數(shù)據(jù)壓縮存儲(chǔ)程序,所述數(shù)據(jù)壓縮存儲(chǔ)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文所述的數(shù)據(jù)壓縮存儲(chǔ)方法。
34、在本發(fā)明中,公開了分別計(jì)算數(shù)據(jù)按列進(jìn)行壓縮存儲(chǔ)時(shí)各列在不同壓縮算法下的壓縮率,并根據(jù)各列在不同壓縮算法下的壓縮率選取各列對(duì)應(yīng)的目標(biāo)壓縮算法,根據(jù)各列的列信息選取多列組合,并確定多列組合的導(dǎo)出順序,根據(jù)各列對(duì)應(yīng)的目標(biāo)壓縮算法創(chuàng)建歷史數(shù)據(jù)庫,基于導(dǎo)出順序?qū)?shù)據(jù)導(dǎo)出,并將導(dǎo)出的數(shù)據(jù)導(dǎo)入到歷史數(shù)據(jù)庫,在歷史數(shù)據(jù)庫中基于目標(biāo)壓縮算法對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行壓縮存儲(chǔ);由于本發(fā)明通過對(duì)單列、多列組合的進(jìn)行分析確定壓縮率最小的目標(biāo)壓縮算法和導(dǎo)出順序,并基于目標(biāo)壓縮算法和導(dǎo)出順序?qū)?shù)據(jù)進(jìn)行壓縮存儲(chǔ),從而能夠提高壓縮存儲(chǔ)效果,進(jìn)而能夠降低數(shù)據(jù)存儲(chǔ)的占用空間,降低存儲(chǔ)成本。
1.一種數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述數(shù)據(jù)壓縮存儲(chǔ)方法包括:
2.如權(quán)利要求1所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述根據(jù)各列的列信息選取多列組合,包括:
3.如權(quán)利要求2所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述根據(jù)所述壓縮率排序結(jié)果、所述列寬排序結(jié)果以及所述不同值比例排序結(jié)果選取多列組合,包括:
4.如權(quán)利要求2所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述根據(jù)各列的列信息選取多列組合之前,還包括:
5.如權(quán)利要求1至4中任一項(xiàng)所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述確定所述多列組合的導(dǎo)出順序,包括:
6.如權(quán)利要求1至4中任一項(xiàng)所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述分別計(jì)算數(shù)據(jù)按列進(jìn)行壓縮存儲(chǔ)時(shí)各列在不同壓縮算法下的壓縮率,并根據(jù)各列在不同壓縮算法下的壓縮率選取各列對(duì)應(yīng)的目標(biāo)壓縮算法之前,還包括:
7.如權(quán)利要求6所述的數(shù)據(jù)壓縮存儲(chǔ)方法,其特征在于,所述數(shù)據(jù)源為greenplum數(shù)據(jù)源。
8.一種數(shù)據(jù)壓縮存儲(chǔ)裝置,其特征在于,所述數(shù)據(jù)壓縮存儲(chǔ)裝置包括:
9.一種數(shù)據(jù)壓縮存儲(chǔ)設(shè)備,其特征在于,所述數(shù)據(jù)壓縮存儲(chǔ)設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的數(shù)據(jù)壓縮存儲(chǔ)程序,所述數(shù)據(jù)壓縮存儲(chǔ)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的數(shù)據(jù)壓縮存儲(chǔ)方法。
10.一種存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)上存儲(chǔ)有數(shù)據(jù)壓縮存儲(chǔ)程序,所述數(shù)據(jù)壓縮存儲(chǔ)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的數(shù)據(jù)壓縮存儲(chǔ)方法。