![列式數(shù)據(jù)庫(kù)壓縮方法探討_第1頁(yè)](http://file4.renrendoc.com/view/c7d0c5f4673f7ace6982d0c598d1bde4/c7d0c5f4673f7ace6982d0c598d1bde41.gif)
![列式數(shù)據(jù)庫(kù)壓縮方法探討_第2頁(yè)](http://file4.renrendoc.com/view/c7d0c5f4673f7ace6982d0c598d1bde4/c7d0c5f4673f7ace6982d0c598d1bde42.gif)
![列式數(shù)據(jù)庫(kù)壓縮方法探討_第3頁(yè)](http://file4.renrendoc.com/view/c7d0c5f4673f7ace6982d0c598d1bde4/c7d0c5f4673f7ace6982d0c598d1bde43.gif)
![列式數(shù)據(jù)庫(kù)壓縮方法探討_第4頁(yè)](http://file4.renrendoc.com/view/c7d0c5f4673f7ace6982d0c598d1bde4/c7d0c5f4673f7ace6982d0c598d1bde44.gif)
![列式數(shù)據(jù)庫(kù)壓縮方法探討_第5頁(yè)](http://file4.renrendoc.com/view/c7d0c5f4673f7ace6982d0c598d1bde4/c7d0c5f4673f7ace6982d0c598d1bde45.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
列式數(shù)據(jù)庫(kù)——壓縮算法探討OUTLINE簡(jiǎn)介背景優(yōu)勢(shì)現(xiàn)狀數(shù)據(jù)壓縮簡(jiǎn)介列數(shù)據(jù)庫(kù)壓縮算法列數(shù)據(jù)庫(kù)簡(jiǎn)介列存儲(chǔ)數(shù)據(jù)庫(kù)是相對(duì)于傳統(tǒng)的以記錄或數(shù)據(jù)行(Record,Row)為單位進(jìn)行數(shù)據(jù)處理的數(shù)據(jù)庫(kù)(例如SQLServer)來(lái)說(shuō)的,它以數(shù)據(jù)表中的列(Column)為單位對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和查詢(xún)等處理。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),即數(shù)據(jù)按記錄存儲(chǔ),每一條記錄的所有屬性都存儲(chǔ)在一起,如果要查詢(xún)一條記錄的一個(gè)屬性值,需要先讀取整條記錄的數(shù)據(jù)。而列數(shù)據(jù)庫(kù)是按數(shù)據(jù)庫(kù)記錄的列來(lái)組織和存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)庫(kù)中每個(gè)表由一組據(jù)庫(kù)記錄的列來(lái)組織和存儲(chǔ)數(shù)據(jù)的,數(shù)據(jù)庫(kù)中每個(gè)表由一組頁(yè)鏈的集合組成,每條頁(yè)鏈對(duì)應(yīng)表中的一個(gè)存儲(chǔ)列,而該頁(yè)鏈中每一頁(yè)存儲(chǔ)的是該列的一個(gè)或多個(gè)值。列數(shù)據(jù)庫(kù)產(chǎn)生背景現(xiàn)今的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)大多衍生于70年代的SystemR項(xiàng)目原型和Ingres項(xiàng)目原型,但是隨著應(yīng)用和硬件技術(shù)的發(fā)展,DBMS的需求不僅僅滿(mǎn)足于SystemR和higres設(shè)計(jì)面向OLTP數(shù)據(jù)處理的初衷,而更多的是地球科學(xué)、醫(yī)學(xué)等數(shù)據(jù)倉(cāng)庫(kù)以及決策支持系統(tǒng)等的OLAP的數(shù)據(jù)處理需求,而在這些應(yīng)用中,大多數(shù)信息都是散亂的、稀疏的,并且需要對(duì)數(shù)據(jù)進(jìn)行大量的查詢(xún)處理,以便對(duì)其進(jìn)行數(shù)據(jù)有效的分析處理;同時(shí)由于硬件技術(shù)的發(fā)展,傳統(tǒng)的高性能硬件逐漸大眾化,使得數(shù)據(jù)倉(cāng)庫(kù)等應(yīng)用得更加普遍。因此為了滿(mǎn)足該類(lèi)應(yīng)用場(chǎng)景的需求,數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展的方向由滿(mǎn)足OLTP數(shù)據(jù)處理的需求轉(zhuǎn)向滿(mǎn)足OLAP數(shù)據(jù)處理的需求,OLAP是對(duì)列進(jìn)行操作的,于是便衍生出面向分析處理(OLAP)的列存儲(chǔ)數(shù)據(jù)庫(kù)系統(tǒng)。列數(shù)據(jù)庫(kù)優(yōu)勢(shì)能夠迅速的執(zhí)行復(fù)雜查詢(xún)壓縮技術(shù)為數(shù)據(jù)倉(cāng)庫(kù)、商務(wù)智能應(yīng)用中巨大的數(shù)據(jù)量節(jié)約存儲(chǔ)成本節(jié)省大量I/O帶寬列數(shù)據(jù)庫(kù)發(fā)展現(xiàn)狀比較著名的列數(shù)據(jù)庫(kù)系統(tǒng)有開(kāi)源項(xiàng)目C-Store,是由麻省理工、耶魯大學(xué)、布朗大學(xué)等合作研發(fā)的,并于2005年發(fā)布第一版本,2006年升級(jí)為第二版本。在C-Store的研究基礎(chǔ)上,又衍生出來(lái)商業(yè)化的Vertica以及內(nèi)存數(shù)據(jù)庫(kù)系統(tǒng)MonetDB。Google的BigTable也是一種面向列存儲(chǔ)的數(shù)據(jù)庫(kù)系統(tǒng),該系統(tǒng)是Google內(nèi)部開(kāi)發(fā)用來(lái)處理大數(shù)據(jù)量的系統(tǒng),Googfe的很多項(xiàng)目包括網(wǎng)索引、GoogleEarth和谷歌財(cái)務(wù)都是建立在該系統(tǒng)基礎(chǔ)上的。SQLSERVER2011也支持列存儲(chǔ)索引FACEBOOK的數(shù)據(jù)倉(cāng)庫(kù)RCFile:一個(gè)結(jié)合了行存儲(chǔ)和列存儲(chǔ)的數(shù)據(jù)管理系統(tǒng)數(shù)據(jù)壓縮簡(jiǎn)介定義:在不丟失信息的前提下,縮減數(shù)據(jù)量以減少存儲(chǔ)空間,提高其傳輸、存儲(chǔ)和處理效率的一種技術(shù)方法。流行算法:列數(shù)據(jù)庫(kù)壓縮隨著數(shù)據(jù)庫(kù)的規(guī)模越來(lái)越大,如何在數(shù)據(jù)庫(kù)中使用數(shù)據(jù)壓縮是很多研究者關(guān)注的熱點(diǎn)。然而,傳統(tǒng)的行存儲(chǔ)數(shù)據(jù)庫(kù)由于存儲(chǔ)的數(shù)據(jù)的差異性較大,對(duì)其采用壓縮也往往每次查詢(xún)時(shí)不得不進(jìn)行解壓。不過(guò)壓縮后數(shù)據(jù)量小的優(yōu)點(diǎn)在某種程度上還是勝過(guò)解壓的額外開(kāi)銷(xiāo)的。列存儲(chǔ)的概念提出以后,由于列存儲(chǔ)的特點(diǎn),它非常適合輕量級(jí)壓縮,從而可以不解壓而直接訪問(wèn)壓縮態(tài)的數(shù)據(jù)。公司組織數(shù)據(jù)倉(cāng)庫(kù)大?。═B)原始數(shù)據(jù)大?。═B)數(shù)據(jù)行數(shù)數(shù)據(jù)庫(kù)操作系統(tǒng)數(shù)據(jù)庫(kù)廠商存儲(chǔ)廠商YAHOO100.38617.0143853ORACLEUNIXORALCEEMCNielsenMediaResearch17.68517.9695024SYSBASEIQUNIXSYSBASEEMC列數(shù)據(jù)庫(kù)主要壓縮算法在SIGMOD06會(huì)議上,DanielJ.Abadi通過(guò)在開(kāi)源的列數(shù)據(jù)庫(kù)C-Store上進(jìn)行實(shí)驗(yàn)比較和理論分析指出,主要的壓縮方法有以下三類(lèi):游程編碼算法(Run-lengthEncoding)詞典編碼算法(DictionaryEncoding)位向量算法(Bit-VectorEncoding)。游程編碼算法(RunlengthEncoding)游程編碼算法是比較適合列數(shù)據(jù)庫(kù)的壓縮算法之一,即用一個(gè)三元組記錄數(shù)據(jù)值、數(shù)據(jù)出現(xiàn)的起始位置和持續(xù)長(zhǎng)度(即行程),以代替具有相同值的若干連續(xù)原始數(shù)據(jù),使三元組的存儲(chǔ)長(zhǎng)度少于原始數(shù)據(jù)的長(zhǎng)度。三元組描述為(X,Y,Z)其中X:數(shù)據(jù)的值,Y:起始位置,Z:長(zhǎng)度。訂單類(lèi)型產(chǎn)品ID產(chǎn)品類(lèi)型Q112Q115Q118Q114Q125Q232Q234訂單類(lèi)型產(chǎn)品ID產(chǎn)品類(lèi)型Q1,1,51,1,42Q2,6,22,5,253,7,184524壓縮后詞典編碼算法(DictionaryEncoding)詞典編碼就是生成一個(gè)原始值替代值的對(duì)照詞典。為了起到壓縮的作用,替代值的長(zhǎng)度小于原始值的長(zhǎng)度。存儲(chǔ)的時(shí)候,只存儲(chǔ)替代值而不是原始值,從而壓縮了存儲(chǔ)空間。字典表Q100Q201訂單類(lèi)型Q1Q1Q1Q1Q1Q2Q2訂單類(lèi)型00000000000101壓縮后位向量編碼算法(Bit-VectorEncoding)位向量編碼是為每一個(gè)不同的取值生成一個(gè)位向量,根據(jù)位向量(串)中不同的位置取值0或1來(lái)對(duì)應(yīng)并確定不同的原始值。訂單類(lèi)型Q1Q1Q1Q1Q1Q2Q2Q1位向量Q2位向量10101010100101壓縮后優(yōu)劣對(duì)比名稱(chēng)游程編碼詞典編碼位向量算法共同特征適用于重復(fù)數(shù)據(jù)較多,不適用于重復(fù)數(shù)據(jù)較少適用數(shù)據(jù)列的不同特征重復(fù)數(shù)據(jù)的排序比較規(guī)則取值空間較小取值空間較小不適用的數(shù)據(jù)列不同特征排序不規(guī)則a)取間空間較大b)數(shù)據(jù)類(lèi)型長(zhǎng)度比詞典符號(hào)長(zhǎng)度更小取值空間較大優(yōu)點(diǎn)對(duì)于適用的數(shù)據(jù)特征,有比較好的壓縮效果a)對(duì)于數(shù)據(jù)類(lèi)型要求較低b)對(duì)于數(shù)據(jù)排序要求較低a)對(duì)于數(shù)據(jù)類(lèi)型要求較低b)對(duì)于數(shù)據(jù)排序要求較低c)在有些情況,查詢(xún)效率要比詞典編碼高缺點(diǎn)對(duì)列值的重復(fù)性以及排序要求較高需要?jiǎng)?chuàng)建一張?jiān)~典表,增加維護(hù)代價(jià),如果數(shù)據(jù)重復(fù)性不高,詞典表會(huì)過(guò)于巨大用位置代表數(shù)據(jù),如取值空間較大,或重復(fù)性較低,占用空間會(huì)比較大LZ77壓縮算法原理(1)LZ77算法在某種意義上又可以稱(chēng)為“滑動(dòng)窗口壓縮”,其基本原理是將已輸入數(shù)據(jù)流的一部分作為字典,編碼器為輸入數(shù)據(jù)流開(kāi)一個(gè)窗口,并且隨著對(duì)字符串的編碼不斷地將窗中的數(shù)據(jù)從右一道左?;瑒?dòng)窗一般分為兩部分,左邊的部分稱(chēng)為搜索緩沖存儲(chǔ)器,這一部分是當(dāng)前的字典,始終存有剛剛輸入的字符和已編碼過(guò)的字符;右邊的部分稱(chēng)為向前的緩沖存儲(chǔ)器。其中存有即將被編碼的輸入字符集。在實(shí)際應(yīng)用中,搜索緩沖存儲(chǔ)器的窗口一般較長(zhǎng),可長(zhǎng)達(dá)幾千字節(jié),而向前的緩沖存儲(chǔ)器只有幾十字節(jié)。LZ77編碼舉例sirsideastmaneasilyeasesseasickseals步驟位置匹配串輸出11--從右向左搜索22eas(7,3,e)34eas(15,3,e)第一個(gè)參數(shù)代表在在這個(gè)窗口的位置上中后退N個(gè)字符第二個(gè)參數(shù)代表匹配到的最長(zhǎng)字符串的長(zhǎng)度第三個(gè)參數(shù)代表未匹配到的第一個(gè)字符
sirsideastmaneasilyeasesseasicksealsLZ78算法介紹(1)LZ78是一個(gè)基于字典的壓縮算法,需要維護(hù)一個(gè)字典,該算法輸出的碼字由兩個(gè)元素組成:一個(gè)參照最長(zhǎng)匹配字典輸入索引以及一個(gè)非匹配的字符。其基本思想就是不斷地從字符流中提取新的字符串,然后用碼字表示這個(gè)詞條,因此,對(duì)字符流的編碼就變成了用碼字去替換字符流,生成碼字流,從而達(dá)到壓縮數(shù)據(jù)的目的。LZ78算法介紹(2)例如,字符串ABBCBCABABCAABCAAB,其過(guò)程如圖1234567ABBCBCABABCAABCAABoutputIndexString(0,A)1A(0,B)2B(2,C)3BC(3,A)4BCA(2,A)5BA(4,A)6BCAA(6,B)7BCAABLZW算法LZW編碼是圍繞稱(chēng)為詞典的轉(zhuǎn)換表來(lái)完成的。LZW算法得到普遍采用,它的速度比使用LZ77算法的速度快,因?yàn)樗恍枰獔?zhí)行那么多的綴-符串比較操作。對(duì)LZW算法進(jìn)一步的改進(jìn)是增加可變的碼字長(zhǎng)度,以及在詞典中刪除老的綴-符串。在GIF圖像格式和UNIX的壓縮程序中已經(jīng)采用了這些改進(jìn)措施之后的LZW算法。
LZW算法取得了專(zhuān)利,專(zhuān)利權(quán)的所有者是美國(guó)的一個(gè)大型計(jì)算機(jī)公司—Unisys(優(yōu)利系統(tǒng)公司),除了商業(yè)軟件生產(chǎn)公司之外,可以免費(fèi)使用LZW算法LZW編碼舉例位置123456789字符ABBABABAC步驟位置碼字詞典輸出1A2B3C114AB1225BB2336BA2447ABA4558ABAC76---3輸入數(shù)據(jù)流:適應(yīng)列數(shù)據(jù)庫(kù)的LZ算法1LZ77和LZ78算法的結(jié)合背景:數(shù)據(jù)列中的數(shù)據(jù)項(xiàng)一般在上下文中更容易找到匹配串;數(shù)據(jù)列的存儲(chǔ)類(lèi)型固定,因此每項(xiàng)的存儲(chǔ)空間固定,更易使用滑動(dòng)窗口算法:采用兩個(gè)滑動(dòng)窗口,同時(shí)向后移動(dòng)。一為比對(duì)窗口,2為待編碼窗口初始字典置為空,先在最初的比對(duì)窗口中采用LZ78算法壓縮,并將壓縮的長(zhǎng)度大于1的字符串存入字典。帶編碼窗口先和比對(duì)窗口進(jìn)行匹配,并將匹配出來(lái)的字符串存入字典,再在字典表中查看是否有匹配的字符串。優(yōu)點(diǎn)適合與數(shù)據(jù)庫(kù)的數(shù)據(jù)特性壓縮出來(lái)的數(shù)據(jù)可以方便進(jìn)行數(shù)據(jù)庫(kù)的增刪改查,order,join等操作(即不解壓數(shù)據(jù),直接對(duì)壓縮態(tài)數(shù)據(jù)進(jìn)行操作)適應(yīng)列數(shù)據(jù)庫(kù)的LZ算法2RowId域名123……567/index滑動(dòng)窗口編碼窗口壓縮后RowId域名123……50010116001cctv0107100/index字典表001100大致思路如下圖:適應(yīng)列數(shù)據(jù)庫(kù)的LZ算法3原數(shù)據(jù):Source.txt文件大?。?1762字節(jié)LZ77算法壓縮后大?。?869字節(jié)LZW算法壓縮后大?。?172字節(jié)自定義算法壓縮后字節(jié):2791字節(jié)idNo.idNo.idNo.idNo.idNo.12000070482001070615200207082220020709292003071322000070492001070616200207082320020709302003071332000070410200207041720030713242
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生活技能培訓(xùn)服務(wù)合同(2篇)
- 新北師大版小學(xué)數(shù)學(xué)一年級(jí)上冊(cè)《玩具》聽(tīng)評(píng)課記錄
- 湘教版九年級(jí)數(shù)學(xué)上冊(cè)第5章用樣本推斷總體5.1總體平均數(shù)與方差的估計(jì)聽(tīng)評(píng)課記錄
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)第4章復(fù)習(xí)聽(tīng)評(píng)課記錄
- 貨品倉(cāng)庫(kù)房屋租賃合同范本
- 二零二五年度數(shù)字經(jīng)濟(jì)園區(qū)招商引資框架合同
- 二零二五年度污水處理廠清運(yùn)與環(huán)保產(chǎn)業(yè)升級(jí)合同
- 三居室房屋居間出租合同范本
- 2025年度門(mén)式鋼管腳手架租賃與施工安全培訓(xùn)合同
- 二零二五年度文化藝術(shù)表演非全日制演員勞動(dòng)合同
- 自主簽到培訓(xùn)課件-早安!幼兒園
- 2024-2030年中國(guó)大宗商品行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景研究報(bào)告
- 強(qiáng)化提升1解三角形中的三線問(wèn)題(解析)
- 一年級(jí)二年級(jí)奧數(shù)暑期培優(yōu)題庫(kù)
- 室內(nèi)裝飾拆除專(zhuān)項(xiàng)施工方案
- 老年癡呆癥患者生活陪護(hù)協(xié)議
- 2024年-急診氣道管理共識(shí)課件
- 鋼筋工程精細(xì)化管理指南(中建內(nèi)部)
- 小學(xué)語(yǔ)文中段整本書(shū)閱讀的指導(dǎo)策略研究 中期報(bào)告
- 浙教版2023-2024學(xué)年數(shù)學(xué)八年級(jí)上冊(cè)期末復(fù)習(xí)卷(含答案)
- 2024年中國(guó)鐵路投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論