• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于HBase的高效存儲方法及系統(tǒng)技術(shù)方案

    技術(shù)編號:10369837 閱讀:202 留言:0更新日期:2014-08-28 12:28
    本發(fā)明專利技術(shù)公開了一種基于HBase的高效存儲方法及系統(tǒng),涉及大數(shù)據(jù)領(lǐng)域,該方法包括以下步驟:輸入一行待存儲到目標(biāo)表的用戶數(shù)據(jù);判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有,則訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,將初始化信息寫入內(nèi)存;如果有,解析出主鍵列值,進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的行鍵值;根據(jù)初始化信息解析出非主鍵列值,進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的值字段內(nèi)容;將行鍵值字節(jié)序列和值字段字節(jié)序列組裝成鍵值對,完成HBase寫入。本發(fā)明專利技術(shù)能節(jié)省HBase的存儲空間,提高HBase的吞吐性能。

    【技術(shù)實現(xiàn)步驟摘要】
    基于HBase的高效存儲方法及系統(tǒng)
    本專利技術(shù)涉及大數(shù)據(jù)領(lǐng)域,具體是涉及一種基于HBase的高效存儲方法及系統(tǒng)。
    技術(shù)介紹
    隨著移動互聯(lián)網(wǎng)、智能終端、物聯(lián)網(wǎng)、云計算以及智慧城市的普及,人們逐漸進(jìn)入了“大數(shù)據(jù)”時代。美國互聯(lián)網(wǎng)數(shù)據(jù)中心指出,互聯(lián)網(wǎng)上的數(shù)據(jù)每年將增長50%,每兩年便將翻一番,而目前世界上90%以上的數(shù)據(jù)是最近幾年才產(chǎn)生的。除了互聯(lián)網(wǎng)上發(fā)布的信息,全世界的工業(yè)設(shè)備、汽車、電表上有著無數(shù)的數(shù)碼傳感器,隨時測量和傳遞著有關(guān)位置、運動、震動、溫度、濕度乃至空氣中化學(xué)物質(zhì)的變化,也產(chǎn)生了海量的數(shù)據(jù)信息。大數(shù)據(jù)是規(guī)模非常巨大和復(fù)雜的數(shù)據(jù)集,數(shù)據(jù)量達(dá)到拍字節(jié)、艾字節(jié)或澤字節(jié)的級別后傳統(tǒng)數(shù)據(jù)庫管理工具處理起來面臨很多問題,如獲取、存儲、檢索和分析等。大數(shù)據(jù)引發(fā)了一些問題,如對數(shù)據(jù)庫高并發(fā)讀寫要求、對海量數(shù)據(jù)的高效率存儲和訪問需求、對數(shù)據(jù)庫高可擴(kuò)展性和高可用性的需求,傳統(tǒng)數(shù)據(jù)庫以及數(shù)據(jù)倉庫技術(shù)顯得力不從心。Hadoop是由Apache軟件基金會維護(hù)的一個能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,Hadoop帶來了廉價的處理大數(shù)據(jù)的能力。Hadoop是一個龐大的生態(tài)系統(tǒng),為處理大數(shù)據(jù)提供了各種工具和平臺。在Hadoop生態(tài)系統(tǒng)中,HBase是一個高可靠性、高性能、面向列、可伸縮的分布式非關(guān)系型數(shù)據(jù)庫系統(tǒng),可快速在海量數(shù)據(jù)中定位所需結(jié)果。HBase作為列存儲數(shù)據(jù)庫,表中的每個列,都?xì)w屬于某個列族,列族是表的結(jié)構(gòu)的一部分,必須在使用表之前定義,而列的數(shù)量以及類型則無需定義,因為它不屬于表的結(jié)構(gòu)。一個列族中可以包含多個列,這些列以其所在列族作為前綴命名,格式是<列族>:<列>。HBase中數(shù)據(jù)的讀寫都是在列族層面進(jìn)行。HBase中的用戶數(shù)據(jù)都以HFile格式存儲在Hadoop文件系統(tǒng)上,HBase專有的存儲格式參見圖1所示,HFile格式中的數(shù)據(jù)塊是實際存放用戶數(shù)據(jù)的地方,每個數(shù)據(jù)塊由一個防止數(shù)據(jù)損壞的隨機(jī)數(shù)字開頭,和其后緊接的若干個鍵值對拼接而成,鍵值對是HBase中不可再分的最小數(shù)據(jù)單元。參見圖2所示,鍵值對是一個字節(jié)數(shù)組,包含了很多項,并且有固定的結(jié)構(gòu),其具體結(jié)構(gòu)組成如下:鍵值對開始是兩個固定長度的數(shù)值,分別表示鍵部分的長度和值部分的長度;緊接著是鍵部分,開始是固定2字節(jié)長度的數(shù)值,表示行鍵的長度;接著是行鍵值;然后是固定1字節(jié)長度的數(shù)值,表示列族名的長度;然后是列族名和列名;然后是固定8字節(jié)長度的時間戳和固定1字節(jié)長度的類型,標(biāo)記該鍵值對是插入操作還是刪除操作;最后是值部分存放該列的值。從圖2中可以算出每個鍵值對的固定部分有22個字節(jié)(假定列族名和列名都是1個字節(jié)),如果按照行鍵值長度一般最少10個字節(jié),那么一個鍵值對最少有32字節(jié)以上,而此時該鍵值對中的值部分卻只存儲了一個列的值,也就是說在HFile的存儲中,一行記錄的每個列都會存儲為一個鍵值對。假如一個表中有N個列,N為正整數(shù),那么存儲這個表的一行數(shù)據(jù)就需要N個這樣的鍵值對,固定消耗大約在(32*N)字節(jié),而這些鍵值對中的鍵部分又基本上是相同的,這就在存儲空間上造成極大的浪費,同時對HBase的吞吐性能也會造成一定影響。以如下結(jié)構(gòu)化模型定義的表結(jié)構(gòu)為例:{列1(主鍵):列1數(shù)據(jù)類型;列2:列2數(shù)據(jù)類型;列3:列3數(shù)據(jù)類型;列4:列4數(shù)據(jù)類型}該表有4列,其中第一列是主鍵。如果使用HBase固有方式存儲該表,定義列族為F1,并將這些列都放在F1中,則例子中結(jié)構(gòu)化表和HBase存儲關(guān)系為:列1對應(yīng)行鍵;列2對應(yīng)<F1:C2>列;列3對應(yīng)<F1:C3>列;列4對應(yīng)<F1:C4>列;由此可知,該結(jié)構(gòu)化表的一行記錄在HBase中存儲需要3個鍵值對,其存儲結(jié)構(gòu)參見圖3所示,可以看到,對例子中的一行記錄來說,需要3個鍵值對來存儲,固定長度開銷約為(32*3)字節(jié),當(dāng)海量記錄存儲時,就會有大量固定長度的存儲開銷,這樣既浪費存儲空間,又影響存儲吞吐性能。
    技術(shù)實現(xiàn)思路
    本專利技術(shù)的目的是為了克服上述
    技術(shù)介紹
    的不足,提供一種基于HBase的高效存儲方法及系統(tǒng),能有效節(jié)省HBase的存儲空間,提高HBase的吞吐性能。本專利技術(shù)提供一種基于HBase的高效存儲方法,包括以下步驟:步驟101、輸入一行待存儲到目標(biāo)表的用戶數(shù)據(jù);步驟102、判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有,則轉(zhuǎn)到步驟103;如果有,則轉(zhuǎn)到步驟104;步驟103、訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中,返回步驟102;步驟104、根據(jù)內(nèi)存中目標(biāo)表行鍵字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的行鍵值,轉(zhuǎn)到步驟105;步驟105、根據(jù)內(nèi)存中目標(biāo)表值字段字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出非主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的值字段內(nèi)容,轉(zhuǎn)到步驟106;步驟106、存儲HBase:將步驟104得到的行鍵值字節(jié)序列和步驟105得到的值字段字節(jié)序列,組裝成鍵值對,并調(diào)用HBase客戶端應(yīng)用編程接口的數(shù)據(jù)插入方式完成HBase寫入。在上述技術(shù)方案的基礎(chǔ)上,步驟106之后,還包括以下查詢HBase數(shù)據(jù)的步驟:步驟201、輸入對目標(biāo)表的查詢請求;步驟202、判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有,則轉(zhuǎn)到步驟203;如果有,則轉(zhuǎn)到步驟204;步驟203、訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中,返回步驟202;步驟204、根據(jù)內(nèi)存中目標(biāo)表的初始化信息逐一對屬于查詢請求范圍中的主鍵進(jìn)行字節(jié)組合編碼,得到結(jié)果集對應(yīng)HBase中的行鍵范圍;步驟205、根據(jù)步驟204的行鍵范圍掃描HBase,得到結(jié)果集對應(yīng)HBase中的值范圍,轉(zhuǎn)到步驟206;步驟206、結(jié)合步驟205的結(jié)果集對應(yīng)HBase中的值范圍,根據(jù)值字段字節(jié)組合編碼方式及其對象指示器進(jìn)行反編碼,得到此次查詢請求結(jié)果,轉(zhuǎn)到步驟207;步驟207、返回查詢結(jié)果。在上述技術(shù)方案的基礎(chǔ)上,所述初始化信息包括目標(biāo)表的列名列表、列數(shù)據(jù)類型列表、主鍵列列表、行鍵字節(jié)組合編碼方式及其對象指示器、值字段字節(jié)組合編碼方式及其對象指示器。本專利技術(shù)還提供一種基于HBase的高效存儲系統(tǒng),所述系統(tǒng)包括HBase寫入裝置,所述HBase寫入裝置包括第一輸入單元、第一初始化單元、主鍵列字節(jié)組合編碼單元、非主鍵列字節(jié)組合編碼單元、HBase寫入單元,其中:所述第一輸入單元,用于:輸入一行待存儲到目標(biāo)表的用戶數(shù)據(jù);所述第一初始化單元,用于:判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有初始化信息,則訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中;如果有初始化信息,則生成主鍵列字節(jié)組合編碼觸發(fā)信號,并發(fā)送至主鍵列字節(jié)組合編碼單元;所述主鍵列字節(jié)組合編碼單元,用于:根據(jù)內(nèi)存中目標(biāo)表行鍵字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的行鍵值,生成非主鍵列字節(jié)組合編碼本文檔來自技高網(wǎng)
    ...
    基于HBase的高效存儲方法及系統(tǒng)

    【技術(shù)保護(hù)點】
    一種基于HBase的高效存儲方法,其特征在于,包括以下步驟:步驟101、輸入一行待存儲到目標(biāo)表的用戶數(shù)據(jù);步驟102、判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有,則轉(zhuǎn)到步驟103;如果有,則轉(zhuǎn)到步驟104;步驟103、訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中,返回步驟102;步驟104、根據(jù)內(nèi)存中目標(biāo)表行鍵字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的行鍵值,轉(zhuǎn)到步驟105;步驟105、根據(jù)內(nèi)存中目標(biāo)表值字段字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出非主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的值字段內(nèi)容,轉(zhuǎn)到步驟106;步驟106、存儲HBase:將步驟104得到的行鍵值字節(jié)序列和步驟105得到的值字段字節(jié)序列,組裝成鍵值對,并調(diào)用HBase客戶端應(yīng)用編程接口的數(shù)據(jù)插入方式完成HBase寫入。

    【技術(shù)特征摘要】
    1.一種基于HBase的高效存儲方法,其特征在于,包括以下步驟:步驟101、輸入一行待存儲到目標(biāo)表的用戶數(shù)據(jù);步驟102、判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,所述初始化信息包括目標(biāo)表的列名列表、列數(shù)據(jù)類型列表、主鍵列列表、行鍵字節(jié)組合編碼方式及其對象指示器、值字段字節(jié)組合編碼方式及其對象指示器,如果沒有,則轉(zhuǎn)到步驟103;如果有,則轉(zhuǎn)到步驟104;步驟103、訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中,返回步驟102;步驟104、根據(jù)內(nèi)存中目標(biāo)表行鍵字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的行鍵值,轉(zhuǎn)到步驟105;步驟105、根據(jù)內(nèi)存中目標(biāo)表值字段字節(jié)組合編碼的初始化信息,從待存用戶數(shù)據(jù)中解析出非主鍵列值作為字節(jié)組合編碼對象,逐一進(jìn)行字節(jié)編碼并組合,形成1個字節(jié)序列,作為鍵值對存儲格式的值字段內(nèi)容,轉(zhuǎn)到步驟106;步驟106、存儲HBase:將步驟104得到的行鍵值字節(jié)序列和步驟105得到的值字段字節(jié)序列,組裝成鍵值對,并調(diào)用HBase客戶端應(yīng)用編程接口的數(shù)據(jù)插入方式完成HBase寫入。2.如權(quán)利要求1所述的基于HBase的高效存儲方法,其特征在于:步驟106之后,還包括以下查詢HBase數(shù)據(jù)的步驟:步驟201、輸入對目標(biāo)表的查詢請求;步驟202、判斷內(nèi)存中是否有目標(biāo)表的字節(jié)組合編碼的初始化信息,如果沒有,則轉(zhuǎn)到步驟203;如果有,則轉(zhuǎn)到步驟204;步驟203、訪問元數(shù)據(jù)庫,對目標(biāo)表的字節(jié)組合編碼進(jìn)行初始化,并將初始化信息寫入內(nèi)存中,返回步驟202;步驟204、根據(jù)內(nèi)存中目標(biāo)表的初始化信息逐一對屬于查詢請求范圍中的主鍵進(jìn)行字節(jié)組合編碼,得到結(jié)果集對應(yīng)HBase中的行鍵范圍;步驟205、根據(jù)步驟204的行鍵范圍掃描HBase,得到結(jié)果集對應(yīng)HBase中的值范圍,轉(zhuǎn)到步驟206;步驟206、結(jié)合步驟205的結(jié)果集對應(yīng)HBase中的值范圍,根據(jù)值字段字節(jié)組合編碼方式及其對象指示器進(jìn)行反編碼,得到此次查詢請求結(jié)果,轉(zhuǎn)到步驟207;步驟207、返回查詢結(jié)果。3.一種基于HBase的高效存儲系統(tǒng),其特征在于:所述系統(tǒng)包括HBase寫入裝置,所述HBase寫入裝置包括第一輸入單元、第一初始化單元、主鍵列字節(jié)組合編碼單元、非主鍵列字節(jié)組合編碼單元、HBase寫入單元,其中:所述第...

    【專利技術(shù)屬性】
    技術(shù)研發(fā)人員:向智宇郝俊瑞高漢松郭嘉許德瑋王靜
    申請(專利權(quán))人:武漢郵電科學(xué)研究院
    類型:發(fā)明
    國別省市:湖北;42

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 18禁成年无码免费网站无遮挡| 中文字幕无码精品亚洲资源网久久| 无码无需播放器在线观看| 色国产色无码色欧美色在线| 亚洲AV无码资源在线观看| 真人无码作爱免费视频| 亚洲综合无码一区二区| 亚洲国产AV无码一区二区三区| 久久久人妻精品无码一区| 无码乱肉视频免费大全合集| 国产在线无码精品电影网| 亚洲av无码专区在线观看下载| 亚洲乱码无码永久不卡在线| 无码狠狠躁久久久久久久| 国产精品免费无遮挡无码永久视频| 男男AV纯肉无码免费播放无码| 无码国产69精品久久久久网站| 四虎成人精品国产永久免费无码 | 成人免费无码H在线观看不卡| 久久精品aⅴ无码中文字字幕不卡| 国产成人无码a区在线视频| 亚洲精品天堂无码中文字幕 | 无码视频一区二区三区在线观看| 永久免费AV无码网站在线观看| 日韩精品无码一区二区三区不卡| 国产成人无码免费网站| 人妻少妇乱子伦无码专区| 无码少妇A片一区二区三区| 无码国内精品久久综合88| 日韩精品无码一区二区中文字幕| 亚洲成av人片在线观看无码不卡| 国模无码一区二区三区不卡| 免费无码专区毛片高潮喷水 | 亚洲一区AV无码少妇电影| 国产AV巨作情欲放纵无码| 亚洲精品无码专区在线在线播放| 亚洲中文久久精品无码| 亚洲日产无码中文字幕| 亚洲av永久无码精品表情包| 国产精品视频一区二区三区无码| 色窝窝无码一区二区三区成人网站|