[發(fā)明專(zhuān)利]一種基于列存的多列聯(lián)合存儲(chǔ)的方法在審
| 申請(qǐng)?zhí)枺?/td> | 201910727581.1 | 申請(qǐng)日: | 2019-08-07 |
| 公開(kāi)(公告)號(hào): | CN110413624A | 公開(kāi)(公告)日: | 2019-11-05 |
| 發(fā)明(設(shè)計(jì))人: | 王帥 | 申請(qǐng)(專(zhuān)利權(quán))人: | 南京錄信軟件技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F16/22 | 分類(lèi)號(hào): | G06F16/22;G06F16/28 |
| 代理公司: | 暫無(wú)信息 | 代理人: | 暫無(wú)信息 |
| 地址: | 210000 江蘇省南京*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 多列 存儲(chǔ) 列存儲(chǔ) 聯(lián)合 讀取 多列索引 分塊存儲(chǔ) 加速數(shù)據(jù) 排序存儲(chǔ) 數(shù)據(jù)分塊 數(shù)據(jù)入庫(kù) 索引數(shù)據(jù) 最小單位 列數(shù)據(jù) 數(shù)據(jù)存 磁盤(pán) 映射 兩級(jí) 索引 跳表 排序 運(yùn)算 檢索 數(shù)據(jù)庫(kù) 儲(chǔ)存 查詢 干預(yù) 創(chuàng)建 | ||
本發(fā)明公開(kāi)了一種基于列存的多列聯(lián)合存儲(chǔ)的方法,涉及多列儲(chǔ)存技術(shù)領(lǐng)域,步驟如下:S1:對(duì)多列創(chuàng)建聯(lián)合索引,數(shù)據(jù)入庫(kù)時(shí)干預(yù)數(shù)據(jù)的排序分布(按照group by排序存儲(chǔ))。S2:多列索引中的每一列采用列存儲(chǔ),每一個(gè)列數(shù)據(jù)存儲(chǔ)在單獨(dú)的連續(xù)的區(qū)域,每列索引數(shù)據(jù)分塊存儲(chǔ),塊是數(shù)據(jù)存取得最小單位。S3:建立兩級(jí)跳表查詢結(jié)構(gòu),加速數(shù)據(jù)的檢索。該基于列存的多列聯(lián)合存儲(chǔ)的方法,由于數(shù)據(jù)都以列的形式存儲(chǔ),在SQL語(yǔ)句執(zhí)行過(guò)程中,節(jié)省了行數(shù)據(jù)庫(kù)中映射運(yùn)算的開(kāi)銷(xiāo),數(shù)據(jù)按列存儲(chǔ)和數(shù)據(jù)分塊的特點(diǎn),可以根據(jù)需要從磁盤(pán)只讀取有用的屬性和數(shù)據(jù),以節(jié)省IO帶寬。
技術(shù)領(lǐng)域
本發(fā)明涉及多列儲(chǔ)存技術(shù)領(lǐng)域,具體為一種基于列存的多列聯(lián)合存儲(chǔ)的方法。
背景技術(shù)
近年來(lái)隨著各個(gè)行業(yè)數(shù)據(jù)量的大幅度增長(zhǎng),使得存儲(chǔ)費(fèi)用和管理費(fèi)用也隨之增長(zhǎng),面對(duì)海量數(shù)據(jù)的OLAP需求,行存儲(chǔ)數(shù)據(jù)庫(kù)在統(tǒng)計(jì)數(shù)據(jù)的時(shí)候會(huì)消耗大量的時(shí)間做映射。對(duì)海量數(shù)據(jù)的操作,使得數(shù)據(jù)庫(kù)性能受到計(jì)算機(jī)內(nèi)存和硬盤(pán)的限制。為了減少存儲(chǔ)費(fèi)用和對(duì)機(jī)器配置的需求,數(shù)據(jù)庫(kù)系統(tǒng)采用壓縮數(shù)據(jù)的方法保存數(shù)據(jù)。為了方便OLAP的統(tǒng)計(jì)需求,采用了列存儲(chǔ)數(shù)據(jù)的方法。但是傳統(tǒng)的列存儲(chǔ)是針對(duì)單列存儲(chǔ),多列之間并未建立關(guān)聯(lián),數(shù)據(jù)也沒(méi)有按照順序排列,這樣在多列統(tǒng)計(jì)的場(chǎng)景效率提升并不明顯。
現(xiàn)有的列存儲(chǔ)數(shù)據(jù)庫(kù)當(dāng)需要讀取某條記錄的所有屬性的時(shí)候,列存儲(chǔ)數(shù)據(jù)庫(kù)不再高效。因?yàn)樾枰x取每個(gè)列屬性文件的相應(yīng)行的內(nèi)容,浪費(fèi)大量的IO時(shí)間;目前的列存儲(chǔ)內(nèi)部多列之間時(shí)獨(dú)立排序,在基于多列的分組統(tǒng)計(jì)時(shí)消耗過(guò)多的cpu和io資源;現(xiàn)有的列存儲(chǔ)數(shù)據(jù)庫(kù)壓縮比不高;現(xiàn)有的列存儲(chǔ)數(shù)據(jù)庫(kù)執(zhí)行引擎訪問(wèn)數(shù)據(jù)的基本單位是單個(gè)屬性值,列數(shù)據(jù)庫(kù)對(duì)屬性值的訪問(wèn)存在大量的跳躍訪問(wèn)和隨機(jī)訪問(wèn)嚴(yán)重影響查詢性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于列存的多列聯(lián)合存儲(chǔ)的方法,以解決上述背景技術(shù)中提出的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:一種基于列存的多列聯(lián)合存儲(chǔ)的方法,步驟如下:
S1:對(duì)多列創(chuàng)建聯(lián)合索引,數(shù)據(jù)入庫(kù)時(shí)干預(yù)數(shù)據(jù)的排序分布(按照group by排序存儲(chǔ))。
S2:多列索引中的每一列采用列存儲(chǔ),每一個(gè)列數(shù)據(jù)存儲(chǔ)在單獨(dú)的連續(xù)的區(qū)域,每列索引數(shù)據(jù)分塊存儲(chǔ),塊是數(shù)據(jù)存取得最小單位。
S3:建立兩級(jí)跳表查詢結(jié)構(gòu),加速數(shù)據(jù)的檢索。
S4:基于lucene的payload實(shí)現(xiàn)k/v存儲(chǔ)。
S5:創(chuàng)建聯(lián)合索引時(shí)根據(jù)每列數(shù)據(jù)特點(diǎn)自動(dòng)匹配對(duì)應(yīng)的數(shù)據(jù)壓縮類(lèi)型,針對(duì)數(shù)值型的數(shù)據(jù)可以選擇行程編碼、差值編碼、基于相鄰值的差值編碼、基于位置的差值編碼、整數(shù)壓縮算法、字典壓縮編碼,針對(duì)字符型的數(shù)據(jù)可以選擇行程編碼、字典編碼。除此之外,壓縮編碼之間可以二次壓縮。
優(yōu)選的,所述S3中的兩級(jí)跳的跳躍表節(jié)點(diǎn)中保存下一層指針信息,和當(dāng)前區(qū)間最大值最小值。
優(yōu)選的,所述S1中首先根據(jù)level1節(jié)點(diǎn)最大值最小值檢索。
優(yōu)選的,在level1命中的節(jié)點(diǎn)中依次對(duì)level2層檢索。
優(yōu)選的,Level2中命中的數(shù)據(jù)就為真正的數(shù)據(jù)塊,最后就是對(duì)數(shù)據(jù)塊中的數(shù)據(jù)順序掃描判斷。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
(1)、該基于列存的多列聯(lián)合存儲(chǔ)的方法,由于數(shù)據(jù)都以列的形式存儲(chǔ),在SQL語(yǔ)句執(zhí)行過(guò)程中,節(jié)省了行數(shù)據(jù)庫(kù)中映射運(yùn)算的開(kāi)銷(xiāo)。
(2)、該基于列存的多列聯(lián)合存儲(chǔ)的方法,數(shù)據(jù)按列存儲(chǔ)和數(shù)據(jù)分塊的特點(diǎn),可以根據(jù)需要從磁盤(pán)只讀取有用的屬性和數(shù)據(jù),以節(jié)省IO帶寬。
(3)、該基于列存的多列聯(lián)合存儲(chǔ)的方法,同一列數(shù)據(jù)具有相同的數(shù)據(jù)類(lèi)型并且有序排列,增加了相鄰數(shù)據(jù)之間的相似性,從而有利于數(shù)據(jù)壓縮,可以達(dá)到更高的壓縮比。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于南京錄信軟件技術(shù)有限公司,未經(jīng)南京錄信軟件技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910727581.1/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類(lèi)存儲(chǔ)方法和裝置
- 中繼網(wǎng)絡(luò)中的聯(lián)合方法、系統(tǒng)、中繼站及移動(dòng)臺(tái)
- 中繼網(wǎng)絡(luò)中的聯(lián)合方法、系統(tǒng)、中繼站及移動(dòng)臺(tái)
- 便攜信息終端、以及便攜信息終端的控制方法
- 電法與地震同步聯(lián)合反演方法及系統(tǒng)
- 銀行聯(lián)合放款的放款方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 一種基于自主學(xué)習(xí)群搜索算法的聯(lián)合調(diào)度方法及系統(tǒng)
- 一種基于多目標(biāo)種群群搜索算法的聯(lián)合調(diào)度方法及系統(tǒng)
- 聯(lián)合貸款中的罰息與利息結(jié)算方法、裝置、介質(zhì)和設(shè)備
- 一種基坑支護(hù)用H型鋼構(gòu)件
- 用于云環(huán)境的語(yǔ)義元聯(lián)合代理





