HBase1.2.3版本表屬性介紹

一、查看錶




二、屬性介紹


   2.1 BLOOMFILTER


         布隆過濾器,可選值NONE|ROW|ROWCOL,默認爲NONE,該參數可以單獨對某個列簇啓用。對於get操作以及部分scan操作可以剔除掉不會用到的存儲文件,減少實際IO次數,提高隨機讀性能。Row類型適用於只根據Row進行查找,而RowCol類型適用於根據Row+Col聯合查找,如下:

       Row類型適用於:get ‘NewsClickFeedback’,’row1′  

       RowCol類型適用於:get ‘NewsClickFeedback’,’row1′,{COLUMN => ‘Toutiao’}

       對於有隨機讀的業務,建議開啓Row類型的過濾器,使用空間換時間,提高隨機讀性能。 具體blommfilter的原理可參加這篇http://blog.csdn.net/hguisu/article/details/7866173

 

   2.2 VERSIONS/MIN_VERSION


        Hbase的數據存儲有多版本的概念,默認數據的版本爲1,每次更新數據的時候,會根據不同的時間戳保存不同的版本數據,如果想保存多份數據,可將最大版本數設置大於1。


    2.3 IN_MEMORY


       Blockcache讀緩存會分幾個層級,第一級就是IN_MEMORY級緩存,表示常駐內存,一般情況下元數據信息會放在IN_MEMORY級,而不要將大數據量設置爲常駐內存,這樣會將meta元數據信息給置換出去。


   2.4 KEEP_DELETED_CELLS


       HBase允許進行基於時間的查詢從而得到指定時間段的歷史數據。查詢時間T的數據即查詢[0,T+1)的數據。這樣就帶來了一個潛在的問題。當一個 delete marker被set上,所有被它影響到的數據都不再可見。如果你在時間T put了一個qualifier爲C的數據,接着在T+X的時間點刪除這個qualifier,此時查詢[0,T+1)時間段的數據將不會返回 qualifier爲C的這個KV對,而假如KEEP_DELETED_CELLS = true的話,被刪除的數據在基於時間的歷史數據查詢中依然可見。


   2.5 DATA_BLOCK_ENCODEING


       數據編碼格式,數據在落盤之前首先會對KV數據進行編碼;數據塊在緩存前並沒有執行解碼,因此即使後續命中緩存的查詢也是編碼的數據塊,需要解碼後才能獲取到具體的KV數據。默認爲NONE。

 

     2.6 TTL


        數據的過期時間,對於過期時間的數據,會在執行major compaction的時候刪除。


     2.7 COMPRESSION


        數據壓縮方式,意思是數據在落盤前是執行壓縮以此減少存儲空間,在讀取後需要解壓縮,目前hbase執行GZip | LZO | Snappy等壓縮方式,說白了就是耗CPU,從而減少存儲空間,一般情況下選擇Snappy的壓縮方式,雖然壓縮率不高,但CPU消耗較少。


    2.8 BLOCKCACHE


          讀緩存,默認一個HRegionServer一個BlockCache,建議開啓,默認也是開啓。


    2.9 BLOCKSIZE


        數據塊大小,默認塊大小爲64M。對於不同的業務數據,塊大小的合理設置對讀寫性能有很大的影響。而對塊大小的調整,主要取決於兩點:

       1、 用戶平均讀取數據的大小。理論上講,如果用戶平均讀取數據的大小較小,建議將塊大小設置較小,這樣可以使得內存可以緩存更多block,讀性能自然會更好。相反,建議將塊大小設置較大。

       2、 數據平均鍵值對大小,如果HFile存儲的kv鍵值對叫小,可以將blocksize設置小一點,減少在hfile裏數據的尋址時間。


    2.10 REPLICATION_SCOPE


          如果你的hbase集羣需要主從同步或者主主同步,需要在table上打開REPLICATION_SCOPE。

發佈了40 篇原創文章 · 獲贊 36 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章