一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)庫存儲技術(shù)領(lǐng)域,尤其是涉及一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法。
【背景技術(shù)】
[0002]隨著列存數(shù)據(jù)庫技術(shù)的不斷發(fā)展,越來越多的場景應(yīng)用在列存數(shù)據(jù)庫上。其中一些場景應(yīng)用復(fù)雜多變,既包括適合列存儲技術(shù)數(shù)據(jù)庫的場景,例如對一個(gè)大表(列數(shù)很多的表)的某些列的查詢、定位、訪問,也包括一些在列存儲數(shù)據(jù)庫上執(zhí)行效率低下的場景,例如上面提到的對列數(shù)非常多的表進(jìn)行類似于select*的查詢。對于把大表的整行作為投影列的查詢一般是行存數(shù)據(jù)庫擅長的地方,所以列存儲數(shù)據(jù)庫通??紤]融合行存儲技術(shù)的方法來解決這個(gè)問題。
[0003]現(xiàn)有技術(shù)中,解決的方式是在列存儲數(shù)據(jù)的基礎(chǔ)上冗余存儲一份行存數(shù)據(jù),如圖1所示,當(dāng)進(jìn)行select*類型的投影訪問時(shí),不再訪問列存儲數(shù)據(jù),而是直接訪問行存儲結(jié)構(gòu)的數(shù)據(jù),從而提高1訪問效率。這種結(jié)構(gòu)存在的問題是:存儲空間占用增加很多,且由于行存儲的特點(diǎn)導(dǎo)致數(shù)據(jù)壓縮的效率比列存儲要低上不少,所以存儲空間額外占用可能會進(jìn)一步加大。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的問題是提供一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法。
[0005]為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是:
[0006]一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,將采用列存儲的原數(shù)據(jù)庫表中的列數(shù)據(jù)分為列存儲數(shù)據(jù)和行存儲數(shù)據(jù)并存儲在同一數(shù)據(jù)庫表中;所述行存儲數(shù)據(jù)的存儲結(jié)構(gòu)在內(nèi)部融合列存儲數(shù)據(jù)的數(shù)據(jù)存儲特征,所述列存儲的原數(shù)據(jù)庫表中的每列數(shù)據(jù)存儲為行存儲數(shù)據(jù)時(shí)在一起。
[0007]優(yōu)選的,所述數(shù)據(jù)庫表中的列存儲數(shù)據(jù)是根據(jù)運(yùn)行系統(tǒng)查詢特征選擇的數(shù)據(jù)列,用于進(jìn)行列掃描多表關(guān)聯(lián)的條件列等數(shù)據(jù)查詢定位操作。
[0008]優(yōu)選的,所述列存儲數(shù)據(jù)保存的列數(shù)據(jù)以及行存儲數(shù)據(jù)中保存的行數(shù)據(jù)并不是固定的,可以根據(jù)應(yīng)用場景需要自由定制。
[0009]優(yōu)選的,所述列存儲數(shù)據(jù)和行存儲數(shù)據(jù)的總和需要包含所有列的數(shù)據(jù)內(nèi)容,可以有冗余但不能缺少數(shù)據(jù)。
[0010]本發(fā)明具有的優(yōu)點(diǎn)和積極效果是:
[0011]解決了列存數(shù)據(jù)庫中當(dāng)遇到訪問整行的數(shù)據(jù)(select*),同時(shí)訪問的數(shù)據(jù)記錄又非常離散時(shí),會造成大量的離散1/0,引起I/O性能低下,嚴(yán)重影響執(zhí)行性能;
[0012]為在復(fù)雜應(yīng)用場景下的列存數(shù)據(jù)庫提供了一種有效解決select*應(yīng)用模型物化效率低下的方法,提高了列存數(shù)據(jù)庫對于select*類型的查詢效率,擴(kuò)展了列存數(shù)據(jù)庫的適用范圍;減小了現(xiàn)有行列混合存儲方式占用的空間,同時(shí)數(shù)據(jù)的壓縮效率與列存儲相差不多。
【附圖說明】
[0013]圖1是現(xiàn)有技術(shù)行列混合存儲方式的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0014]圖2是本發(fā)明一實(shí)施例行列混合存儲方式的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0015]圖3是本發(fā)明另一實(shí)施例行列混合存儲方式的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0016]圖4是本發(fā)明另一實(shí)施例根據(jù)已有的列存儲數(shù)據(jù)和行存儲數(shù)據(jù)建立需要的行存儲數(shù)據(jù)或者列存儲數(shù)據(jù)的過程示意圖;
【具體實(shí)施方式】
[0017]下面結(jié)合附圖對本發(fā)明的具體實(shí)施例做詳細(xì)說明。
[0018]一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,將采用列存儲的原數(shù)據(jù)庫表中的列數(shù)據(jù)分為列存儲數(shù)據(jù)和行存儲數(shù)據(jù)并存儲在同一數(shù)據(jù)庫表中,所述行存儲數(shù)據(jù)的存儲結(jié)構(gòu)在內(nèi)部融合列存儲數(shù)據(jù)的數(shù)據(jù)存儲特征,所述列存儲的原數(shù)據(jù)庫表中的每列數(shù)據(jù)存儲為行存儲數(shù)據(jù)時(shí)在一起,如圖2所示。
[0019]所述數(shù)據(jù)庫表中的列存儲數(shù)據(jù)是根據(jù)運(yùn)行系統(tǒng)查詢特征選擇的數(shù)據(jù)列,用于進(jìn)行列掃描多表關(guān)聯(lián)的條件列等數(shù)據(jù)查詢定位操作。
[0020]其中所述列存儲數(shù)據(jù)保存的列數(shù)據(jù)以及行存儲數(shù)據(jù)中保存的行數(shù)據(jù)并不是一定固定的,可以根據(jù)應(yīng)用場景需要自由定制,如圖3所示。
[0021]所述列存儲數(shù)據(jù)和行存儲數(shù)據(jù)的總和需要包含所有列的數(shù)據(jù)內(nèi)容,可以有冗余但不能缺少數(shù)據(jù)。這樣在一些應(yīng)用場景中查詢語句的特征如果發(fā)生了變化,可以根據(jù)已有的列存儲數(shù)據(jù)和行存儲數(shù)據(jù)建立需要的行存儲數(shù)據(jù)或者列存儲數(shù)據(jù),如圖4所示。
[0022]所述行存儲數(shù)據(jù)的存儲結(jié)構(gòu)在內(nèi)部融合列存儲數(shù)據(jù)的數(shù)據(jù)存儲特征,這樣可以為數(shù)據(jù)壓縮提供較好的數(shù)據(jù)排列特征,提高數(shù)據(jù)壓縮效率。
[0023]以上對本發(fā)明的一個(gè)實(shí)施例進(jìn)行了詳細(xì)說明,但所述內(nèi)容僅為本發(fā)明的較佳實(shí)施例,不能被認(rèn)為用于限定本發(fā)明的實(shí)施范圍。凡依本發(fā)明申請范圍所作的均等變化與改進(jìn)等,均應(yīng)仍歸屬于本發(fā)明的專利涵蓋范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,其特征在于包含:將采用列存儲的原數(shù)據(jù)庫表中的列數(shù)據(jù)分為列存儲數(shù)據(jù)和行存儲數(shù)據(jù)并存儲在同一數(shù)據(jù)庫表中;所述行存儲數(shù)據(jù)的存儲結(jié)構(gòu)在內(nèi)部融合列存儲數(shù)據(jù)的數(shù)據(jù)存儲特征,所述列存儲的原數(shù)據(jù)庫表中的每列數(shù)據(jù)存儲為行存儲數(shù)據(jù)時(shí)在一起。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,其特征在于:所述數(shù)據(jù)庫表中的列存儲數(shù)據(jù)是根據(jù)運(yùn)行系統(tǒng)查詢特征選擇的數(shù)據(jù)列,用于進(jìn)行列掃描多表關(guān)聯(lián)的條件列等數(shù)據(jù)查詢定位操作。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,其特征在于:所述列存儲數(shù)據(jù)保存的列數(shù)據(jù)以及行存儲數(shù)據(jù)中保存的行數(shù)據(jù)并不是固定的,可以根據(jù)應(yīng)用場景需要自由定制。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,其特征在于:所述列存儲數(shù)據(jù)和行存儲數(shù)據(jù)的總和需要包含原數(shù)據(jù)庫表所有列的數(shù)據(jù)內(nèi)容,可以有冗余但不能缺少數(shù)據(jù)。
【專利摘要】本發(fā)明提供一種數(shù)據(jù)庫中的數(shù)據(jù)混合存儲方法,將采用列存儲的原數(shù)據(jù)庫表中的列數(shù)據(jù)分為列存儲數(shù)據(jù)和行存儲數(shù)據(jù)并存儲在同一數(shù)據(jù)庫表中;所述行存儲數(shù)據(jù)的存儲結(jié)構(gòu)在內(nèi)部融合列存儲數(shù)據(jù)的數(shù)據(jù)存儲特征;所述數(shù)據(jù)庫表中的列存儲數(shù)據(jù)是根據(jù)運(yùn)行系統(tǒng)查詢特征選擇的數(shù)據(jù)列,用于進(jìn)行列掃描多關(guān)聯(lián)的條件列等數(shù)據(jù)查詢定位操作。本發(fā)明具有的優(yōu)點(diǎn)和積極效果是:為在復(fù)雜應(yīng)用場景下的列存數(shù)據(jù)庫提供了一種有效解決select*應(yīng)用模型物化效率低下的方法,提高了列存數(shù)據(jù)庫對于select*類型的查詢效率,擴(kuò)展了列存數(shù)據(jù)庫的適用范圍;減小了現(xiàn)有行列混合存儲方式占用的空間,同時(shí)數(shù)據(jù)的壓縮效率與列存儲相差不多。
【IPC分類】G06F17-30
【公開號】CN104572893
【申請?zhí)枴緾N201410818000
【發(fā)明人】賀巖, 鄭黎輝, 鹿明, 武新, 崔維力
【申請人】天津南大通用數(shù)據(jù)技術(shù)股份有限公司
【公開日】2015年4月29日
【申請日】2014年12月24日