字符串類型列的壓縮處理方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種字符串類型列的壓縮處理方法及裝置。該方法包括:確定待壓縮處理數(shù)據(jù)表;確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。通過本發(fā)明,解決了現(xiàn)有技術(shù)中對(duì)于字符串類型的列壓縮處理效率低的問題。
【專利說明】
字符串類型列的壓縮處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種字符串類型列的壓縮處理方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]在數(shù)據(jù)庫存儲(chǔ)技術(shù)中,列存儲(chǔ)索引即是按照列進(jìn)行存儲(chǔ)。列存儲(chǔ)索引的好處是能將數(shù)據(jù)庫的性能大幅提升,并且按列存儲(chǔ)壓縮技術(shù)使得空間使用大幅降低。
[0003]列存儲(chǔ)通過將同一列的數(shù)據(jù)存儲(chǔ)在一起,可以最大限度的使用重復(fù)數(shù)據(jù),進(jìn)行壓縮。在數(shù)據(jù)庫中,不同類型的數(shù)據(jù),對(duì)于壓縮的效率也有很大的影響。字符串類型由于其長度的可變以及字符串自身對(duì)空間占用比較大,對(duì)于壓縮而言不是很友好。因此壓縮處理效率低。
[0004]針對(duì)現(xiàn)有技術(shù)中對(duì)于字符串類型的列壓縮處理效率低的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種字符串類型列的壓縮處理方法及裝置,以解決現(xiàn)有技術(shù)中對(duì)于字符串類型的列壓縮處理效率低的問題。
[0006]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種字符串類型列的壓縮處理方法。
[0007]根據(jù)本發(fā)明的字符串類型列的壓縮處理方法包括:確定待壓縮處理數(shù)據(jù)表;確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0008]進(jìn)一步地,在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,以及在獲取第一存儲(chǔ)索引之前,該方法還包括:在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及根據(jù)替換后的鍵值生成第一數(shù)據(jù)表,其中,第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
[0009]進(jìn)一步地,在確定字符串列中字符串值對(duì)應(yīng)的鍵值之后,以及在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之前,該方法還包括:創(chuàng)建第二數(shù)據(jù)表,其中,第二數(shù)據(jù)表用于存儲(chǔ)字符串列中字符串值和字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表,在根據(jù)第一存儲(chǔ)索引對(duì)字符串列進(jìn)行壓縮處理之后,該方法還包括:創(chuàng)建第一視圖,其中,第一視圖為連接第一數(shù)據(jù)表和第二數(shù)據(jù)表的視圖;以及根據(jù)第一視圖顯示數(shù)據(jù)信息。
[0010]進(jìn)一步地,根據(jù)第一視圖顯示數(shù)據(jù)信息之后,該方法還包括:獲取待查詢數(shù)據(jù);接收查詢指令,其中,查詢指令為用于指示查詢的指令;以及根據(jù)查詢指令在第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
[0011]進(jìn)一步地,獲取第一存儲(chǔ)索引包括:確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引;根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;以及根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引。
[0012]為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種字符串類型列的壓縮處理裝置。
[0013]根據(jù)本發(fā)明的字符串類型列的壓縮處理裝置包括:第一確定單元,用于確定待壓縮處理數(shù)據(jù)表;第二確定單元,用于確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;第三確定單元,用于確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;替換單元,用于將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;第一獲取單元,用于獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及壓縮處理單元,用于根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0014]進(jìn)一步地,該裝置還包括:第二獲取單元,用于在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及生成單元,用于根據(jù)替換后的鍵值生成第一數(shù)據(jù)表,其中,第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
[0015]進(jìn)一步地,該裝置還包括:第一創(chuàng)建單元,用于創(chuàng)建第二數(shù)據(jù)表,其中,第二數(shù)據(jù)表用于存儲(chǔ)字符串列中字符串值和字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表,第二創(chuàng)建單元,用于創(chuàng)建第一視圖,其中,第一視圖為連接第一數(shù)據(jù)表和第二數(shù)據(jù)表的視圖;以及顯示單元,用于根據(jù)第一視圖顯示數(shù)據(jù)信息。
[0016]進(jìn)一步地,該裝置還包括:第三獲取單元,用于獲取待查詢數(shù)據(jù);接收單元,用于接收查詢指令,其中,查詢指令為用于指示查詢的指令;以及查詢單元,用于根據(jù)查詢指令在第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
[0017]進(jìn)一步地,第一獲取單元包括:確定模塊,用于確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引;創(chuàng)建模塊,用于根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;以及替換模塊,用于根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引。
[0018]通過本發(fā)明,采用以下步驟:確定待壓縮處理數(shù)據(jù)表;確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理,解決了現(xiàn)有技術(shù)中對(duì)于字符串類型的列壓縮處理效率低的問題,進(jìn)而達(dá)到了提升對(duì)字符串類型的列的壓縮處理效率的效果。
【專利附圖】
【附圖說明】
[0019]構(gòu)成本申請的一部分的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0020]圖1是根據(jù)本發(fā)明第一實(shí)施例的字符串類型列的壓縮處理方法的流程圖;
[0021]圖2是根據(jù)本發(fā)明第二實(shí)施例的字符串類型列的壓縮處理方法的流程圖;以及
[0022]圖3是根據(jù)本發(fā)明實(shí)施例的字符串類型列的壓縮處理裝置的示意圖。
【具體實(shí)施方式】
[0023]需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。
[0024]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請方案,下面將結(jié)合本申請實(shí)施例中的附圖,對(duì)本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分的實(shí)施例,而不是全部的實(shí)施例。基于本申請中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
[0025]需要說明的是,本申請的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本申請的實(shí)施例。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0026]根據(jù)本發(fā)明的實(shí)施例,提供了一種字符串類型列的壓縮處理方法。
[0027]圖1是根據(jù)本發(fā)明第一實(shí)施例的字符串類型列的壓縮處理方法的流程圖。如圖1所示,該方法包括如下的步驟SlOl至步驟S106:
[0028]步驟S101,確定待壓縮處理數(shù)據(jù)表。
[0029]確定需要執(zhí)行壓縮處理的數(shù)據(jù)表。確定需要執(zhí)行壓縮處理的數(shù)據(jù)表的有很多方式,例如,根據(jù)外部數(shù)據(jù)的選擇指令,根據(jù)該選擇指令在多個(gè)數(shù)據(jù)表中選擇需要執(zhí)行壓縮處理的數(shù)據(jù)表等等。
[0030]步驟S102,確定待壓縮處理數(shù)據(jù)表中的字符串列。
[0031]確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列。
[0032]此處,確定待壓縮處理數(shù)據(jù)表中的字符串類型的列即是找出類型為字符串的列,例如,在數(shù)據(jù)庫中,待壓縮處理數(shù)據(jù)表為StudentScore表,該StudentScore表中含有學(xué)生姓名Name,學(xué)生成績Score和學(xué)生住址Address三個(gè)列,其中,Name和Address為字符串類型的列。
[0033]步驟S103,確定字符串列中字符串值對(duì)應(yīng)的鍵值。
[0034]確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值。
[0035]例如,確認(rèn)待壓縮處理數(shù)據(jù)表為StudentScore中字符串列Address對(duì)應(yīng)的鍵值,如,AddressKey自增長列。
[0036]步驟S104,將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值。
[0037]將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值。
[0038]例如,待壓縮處理數(shù)據(jù)表為StudentScore中包含字段AddressKey和Address。根據(jù)SQL中的Update-Select語句,將待壓縮處理數(shù)據(jù)表為StudentScore中Address替換為AddressKey。一種具體實(shí)現(xiàn)該步驟的方式如下:
[0039]UPDATE StudentScore SET AddressKey = a.AddressKey FROM StudentAddressa, StudentScore b WHERE a.Address = b.Address 在 Address 字段上進(jìn)行匹配,把StudentAddress 中的 AddressKey 替代 StudentScore 中的 Address。這樣在該步驟后,待壓縮處理數(shù)據(jù)表StudentScore中包含的列為Name, Score和AddressKey。
[0040]通過該步驟,將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值。在對(duì)待壓縮處理數(shù)據(jù)表中字符串列執(zhí)行壓縮處理時(shí),轉(zhuǎn)換成對(duì)待壓縮處理數(shù)據(jù)表中與字符串列中字符串值對(duì)應(yīng)的數(shù)值類型的鍵值執(zhí)行壓縮處理。在提高了對(duì)待壓縮處理數(shù)據(jù)表中字符串列進(jìn)行壓縮處理的效率。
[0041]優(yōu)選地,本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理方法,在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,以及在獲取第一存儲(chǔ)索引之前,該方法還包括:在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及根據(jù)替換后的鍵值生成第一數(shù)據(jù)表,其中,第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
[0042]具體地,可以根據(jù)數(shù)據(jù)庫中的插入語句Insert-Select,把符合條件的字段插入第一數(shù)據(jù)表,例如,將符合條件的字段插入第一數(shù)據(jù)表的一種具體實(shí)現(xiàn)方式為=Insert intoStudentAddress(Address)Select Address From StudentScore0
[0043]步驟S105,獲取第一存儲(chǔ)索引。
[0044]獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引。
[0045]例如,獲取待壓縮處理數(shù)據(jù)表中與字符串列中字符串值對(duì)應(yīng)的數(shù)值類型的鍵值對(duì)應(yīng)的索引,在待壓縮處理數(shù)據(jù)表為StudentScore中字符串列Address對(duì)應(yīng)的AddressKey鍵值列。AddressKey利用SQL中提供的Create Index語句建立索引Index_AddressKey。將索引Index_AddressKey作為第一存儲(chǔ)索弓丨,獲取第一存儲(chǔ)索弓丨,即索引Index_AddressKey。
[0046]通過該步驟,獲取到字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引,替代了字符串列中對(duì)應(yīng)的索引,因此在根據(jù)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理時(shí),提高了對(duì)待壓縮處理數(shù)據(jù)表中字符串列進(jìn)行壓縮處理的效率。
[0047]步驟S106,根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0048]根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0049]例如,根據(jù)上述獲取的第一存儲(chǔ)索引為IndeX_AddreSSKey對(duì)待壓縮處理數(shù)據(jù)表St udentScore進(jìn)行壓縮處理。
[0050]由于第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理,該第一存儲(chǔ)索引是根據(jù)數(shù)值類的鍵值創(chuàng)建的索引,替代了字符串列中對(duì)應(yīng)的索引,對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理時(shí),通過使字符串列規(guī)范化,利用字符串列對(duì)應(yīng)的鍵值,即占用空間較小的數(shù)值類型來替換,節(jié)省空間,提高列存儲(chǔ)的壓縮效率。根據(jù)數(shù)值類型的鍵值創(chuàng)建的索引執(zhí)行壓縮處理的效率明顯高于根據(jù)字符串列中對(duì)應(yīng)的索引執(zhí)行壓縮處理的效率,因此提高了對(duì)待壓縮處理數(shù)據(jù)表中字符串列進(jìn)行壓縮處理的效率,減少了空間的占用。
[0051]優(yōu)選地,為了實(shí)現(xiàn)對(duì)外部系統(tǒng)的透明,本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理方法,根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理之后,該方法還包括:創(chuàng)建第二數(shù)據(jù)表,其中,第二數(shù)據(jù)表用于存儲(chǔ)字符串列中字符串值和字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表,創(chuàng)建第一視圖,其中,第一視圖為連接第一數(shù)據(jù)表和第二數(shù)據(jù)表的視圖;以及根據(jù)第一視圖顯示數(shù)據(jù)信息。
[0052]例如,使用StudentScore表的外部系統(tǒng),創(chuàng)建StudentScore視圖,視圖中鏈接StudentScore和StudentAddress表,依然提供學(xué)生姓名Name,學(xué)生成績Score和學(xué)生住址Address三個(gè)列,實(shí)現(xiàn)了對(duì)外部系統(tǒng)的透明。
[0053]優(yōu)選地,為了提高查詢效率,本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理方法,根據(jù)第一視圖顯示數(shù)據(jù)信息之后,該方法還包括:獲取待查詢數(shù)據(jù);接收查詢指令,其中,查詢指令為用于指示查詢的指令;以及根據(jù)查詢指令在第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
[0054]通過該方案在第一視圖中對(duì)待查詢數(shù)據(jù)進(jìn)行查詢,根據(jù)字符串列與字符串列對(duì)應(yīng)的鍵值之間的映射關(guān)系,及時(shí)地返回查詢結(jié)果,提高了查詢效率。
[0055]本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理方法,通過確定待壓縮處理數(shù)據(jù)表;確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;獲取第一存儲(chǔ)索弓I,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理,解決了現(xiàn)有技術(shù)中對(duì)于字符串類型的列,壓縮處理效率低的問題,進(jìn)而達(dá)到了提升對(duì)字符串類型的列的壓縮處理效率的效果。
[0056]圖2是根據(jù)本發(fā)明第二實(shí)施例的字符串類型列的壓縮處理方法的流程圖。圖2可以作為圖1所示實(shí)施例的一種優(yōu)選實(shí)施方式。如圖2所示,該方法包括如下的步驟S201至步驟S208:
[0057]步驟S201,確定待壓縮處理數(shù)據(jù)表。
[0058]該步驟同上述步驟S101,在此不作贅述。
[0059]步驟S202,確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列。
[0060]該步驟同上述步驟S102,在此不作贅述。
[0061 ] 步驟203,確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值。
[0062]該步驟同上述步驟S103,在此不作贅述。
[0063]步驟S204,將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值。
[0064]該步驟同上述步驟S104,在此不作贅述。
[0065]步驟S205,確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引。
[0066]確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引,具體地,確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引有很多方式。
[0067]例如,在數(shù)據(jù)庫中,待壓縮處理數(shù)據(jù)表為StudentScore表,該StudentScore表中含有學(xué)生姓名Name,學(xué)生成績Score和學(xué)生住址Address三個(gè)列,其中,Name和Address為字符串類型的列。通過SQL中Create Index語句在Address和Name上創(chuàng)建列存儲(chǔ)索引Index_Address和Index_Name。確定出Address和Name上對(duì)應(yīng)的存儲(chǔ)索引為Index_Address和 Index_Name。
[0068]步驟S206,根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引。
[0069]根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引。
[0070]例如,在數(shù)據(jù)庫中,待壓縮處理數(shù)據(jù)表為StudentScore表,該StudentScore表中含有學(xué)生姓名Name,學(xué)生成績Score和學(xué)生住址Address三個(gè)列,其中,Name和Address為字符串類型的列。確定出Address字符串列對(duì)應(yīng)的AddressKey,根據(jù)SQL中提供的CreateIndex 語句建立索引 Index_AddressKey。
[0071]步驟S207,根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引。
[0072]例如,根據(jù)字符串列Address中字符串值對(duì)應(yīng)的鍵值A(chǔ)ddressKey創(chuàng)建的Index_AddressKey索引替代字符串列Address中字符串值對(duì)應(yīng)Index_Address索引。
[0073]通過該步驟,將字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引,充分利用到數(shù)值對(duì)于列存儲(chǔ)索引在壓縮時(shí)的友好特性。
[0074]步驟S208,根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0075]該步驟同上述步驟S106,在此不作贅述。
[0076]本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理方法,通過確定待壓縮處理數(shù)據(jù)表;確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引;根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引;以及根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理,解決了現(xiàn)有技術(shù)中對(duì)于字符串類型的列,壓縮處理效率低的問題,進(jìn)而達(dá)到了提升對(duì)字符串類型的列的壓縮處理效率的效果。
[0077]需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0078]本發(fā)明實(shí)施例還提供了一種字符串類型列的壓縮處理裝置,需要說明的是,本發(fā)明實(shí)施例的字符串類型列的壓縮處理裝置可以用于執(zhí)行本發(fā)明實(shí)施例所提供的用于字符串類型列的壓縮處理方法。以下對(duì)本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理裝置進(jìn)行介紹。
[0079]圖3是根據(jù)本發(fā)明實(shí)施例的字符串類型列的壓縮處理裝置的示意圖。如圖3所示,該裝置包括:第一確定單元10、第二確定單元20、第三確定單元30、替換單元40、第一獲取單元50和壓縮處理單元60。
[0080]第一確定單元10,用于確定待壓縮處理數(shù)據(jù)表。
[0081]第二確定單元20,用于確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列。
[0082]第三確定單元30,用于確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值。
[0083]替換單元40,用于將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值。
[0084]第一獲取單元50,用于獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引。
[0085]優(yōu)選地,該第一獲取單元還包括:確定模塊,用于確定字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引;創(chuàng)建模塊,用于根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;以及替換模塊,用于根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換第二存儲(chǔ)索引,得到第一存儲(chǔ)索引。
[0086]壓縮處理單元60,用于根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
[0087]優(yōu)選地,在本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理裝置中,該裝置還包括:第二獲取單元,用于在將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及生成單元,用于根據(jù)替換后的鍵值生成第一數(shù)據(jù)表,其中,第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
[0088]優(yōu)選地,為了實(shí)現(xiàn)對(duì)外部系統(tǒng)的透明,在本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理裝置中,該裝置還包括:第一創(chuàng)建單元,用于創(chuàng)建第二數(shù)據(jù)表,其中,第二數(shù)據(jù)表用于存儲(chǔ)字符串列中字符串值和字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表,第二創(chuàng)建單元,用于創(chuàng)建第一視圖,其中,第一視圖為連接第一數(shù)據(jù)表和第二數(shù)據(jù)表的視圖;以及顯示單元,用于根據(jù)第一視圖顯示數(shù)據(jù)信息。
[0089]優(yōu)選地,為了提高查詢效率,在本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理裝置中,該裝置還包括:第三獲取單元,用于獲取待查詢數(shù)據(jù);接收單元,用于接收查詢指令,其中,查詢指令為用于指示查詢的指令;以及查詢單元,用于根據(jù)查詢指令在第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
[0090]本發(fā)明實(shí)施例提供的字符串類型列的壓縮處理裝置,通過第一確定單元10確定待壓縮處理數(shù)據(jù)表;第二確定單元20確定待壓縮處理數(shù)據(jù)表中的字符串列,其中,字符串列為待壓縮處理數(shù)據(jù)表中為字符串類型的列;第三確定單元30確定字符串列中字符串值對(duì)應(yīng)的鍵值,其中,鍵值為數(shù)據(jù)類型的值;替換單元40將字符串列中字符串值替換為與字符串列中字符串值對(duì)應(yīng)的鍵值;第一獲取單元50獲取第一存儲(chǔ)索引,其中,第一存儲(chǔ)索引為根據(jù)字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;壓縮處理單元60根據(jù)第一存儲(chǔ)索引對(duì)待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理,解決了現(xiàn)有技術(shù)中對(duì)于字符串類型的列,壓縮處理效率低的問題,進(jìn)而達(dá)到了提升對(duì)字符串類型的列的壓縮處理效率的效果。
[0091]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0092]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0093]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種字符串類型列的壓縮處理方法,其特征在于,包括: 確定待壓縮處理數(shù)據(jù)表; 確定所述待壓縮處理數(shù)據(jù)表中的字符串列,其中,所述字符串列為所述待壓縮處理數(shù)據(jù)表中為字符串類型的列; 確定所述字符串列中字符串值對(duì)應(yīng)的鍵值,其中,所述鍵值為數(shù)據(jù)類型的值; 將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值; 獲取第一存儲(chǔ)索引,其中,所述第一存儲(chǔ)索引為根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及 根據(jù)所述第一存儲(chǔ)索引對(duì)所述待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值之后,以及在獲取所述第一存儲(chǔ)索引之前,所述方法還包括: 在將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及 根據(jù)所述替換后的鍵值生成第一數(shù)據(jù)表,其中,所述第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和所述待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于, 在確定所述字符串列中字符串值對(duì)應(yīng)的鍵值之后,以及在將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值之前,所述方法還包括: 創(chuàng)建第二數(shù)據(jù)表,其中,所述第二數(shù)據(jù)表用于存儲(chǔ)所述字符串列中字符串值和所述字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表, 在根據(jù)所述第一存儲(chǔ)索弓I對(duì)所述字符串列進(jìn)行壓縮處理之后,所述方法還包括: 創(chuàng)建第一視圖,其中,所述第一視圖為連接所述第一數(shù)據(jù)表和所述第二數(shù)據(jù)表的視圖;以及 根據(jù)所述第一視圖顯示數(shù)據(jù)信息。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述第一視圖顯示數(shù)據(jù)信息之后,所述方法還包括: 獲取待查詢數(shù)據(jù); 接收查詢指令,其中,所述查詢指令為用于指示查詢的指令;以及 根據(jù)所述查詢指令在所述第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取所述第一存儲(chǔ)索引包括: 確定所述字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引; 根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;以及根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換所述第二存儲(chǔ)索引,得到所述第一存儲(chǔ)索引。
6.一種字符串類型列的壓縮處理裝置,其特征在于,包括: 第一確定單元,用于確定待壓縮處理數(shù)據(jù)表; 第二確定單元,用于確定所述待壓縮處理數(shù)據(jù)表中的字符串列,其中,所述字符串列為所述待壓縮處理數(shù)據(jù)表中為字符串類型的列; 第三確定單元,用于確定所述字符串列中字符串值對(duì)應(yīng)的鍵值,其中,所述鍵值為數(shù)據(jù)類型的值; 替換單元,用于將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值; 第一獲取單元,用于獲取第一存儲(chǔ)索引,其中,所述第一存儲(chǔ)索引為根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建的對(duì)應(yīng)的索引;以及 壓縮處理單元,用于根據(jù)所述第一存儲(chǔ)索引對(duì)所述待壓縮處理數(shù)據(jù)表進(jìn)行壓縮處理。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 第二獲取單元,用于在將所述字符串列中字符串值替換為與所述字符串列中字符串值對(duì)應(yīng)的鍵值之后,獲取替換后的鍵值;以及 生成單元,用于根據(jù)所述替換后的鍵值生成第一數(shù)據(jù)表,其中,所述第一數(shù)據(jù)表為存儲(chǔ)有替換后的鍵值和所述待壓縮處理數(shù)據(jù)表中除去字符串列之外的數(shù)據(jù)表。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 第一創(chuàng)建單元,用于創(chuàng)建第二數(shù)據(jù)表,其中,所述第二數(shù)據(jù)表用于存儲(chǔ)所述字符串列中字符串值和所述字符串列中字符串值對(duì)應(yīng)的鍵值的數(shù)據(jù)表, 第二創(chuàng)建單元,用于創(chuàng)建第一視圖,其中,所述第一視圖為連接所述第一數(shù)據(jù)表和所述第二數(shù)據(jù)表的視圖;以及 顯示單元,用于根據(jù)所述第一視圖顯示數(shù)據(jù)信息。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括: 第三獲取單元,用于獲取待查詢數(shù)據(jù); 接收單元,用于接收查詢指令,其中,所述查詢指令為用于指示查詢的指令;以及 查詢單元,用于根據(jù)所述查詢指令在所述第一視圖中對(duì)待查詢數(shù)據(jù)執(zhí)行查詢操作。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一獲取單元包括: 確定模塊,用于確定所述字符串列中字符串值對(duì)應(yīng)的第二存儲(chǔ)索引; 創(chuàng)建模塊,用于根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值創(chuàng)建對(duì)應(yīng)的索引;以及替換模塊,用于根據(jù)所述字符串列中字符串值對(duì)應(yīng)的鍵值對(duì)應(yīng)的索引替換所述第二存儲(chǔ)索引,得到所述第一存儲(chǔ)索引。
【文檔編號(hào)】G06F17/30GK104408192SQ201410779397
【公開日】2015年3月11日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】黃健 申請人:北京國雙科技有限公司