Hbase之建表高級應用(1)

1、BLOOMFILTER 默認是NONE 是否使用布隆過慮及使用何種方式
布隆過濾可以每列族單獨啓用。
使用 HColumnDescriptor.setBloomFilterType(NONE | ROW | ROWCOL) 對列族單獨啓用布隆。

  • Default = ROW 對行進行布隆過濾。
  • 對 ROW,行鍵的哈希在每次插入行時將被添加到布隆。
  • 對 ROWCOL,行鍵 + 列族 + 列族修飾的哈希將在每次插入行時添加到布隆
    使用方法: create ‘table’,{BLOOMFILTER =>’ROW’}
    啓用布隆過濾可以節省讀磁盤過程,可以有助於降低讀取延遲

2、VERSIONS 默認是1 這個參數的意思是數據保留1個 版本,如果我們認爲我們的數據沒有這麼大的必要保留這麼多,隨時都在更新,而老版本的數據對我們毫無價值,那將此參數設爲1 能節約2/3的空間
使用方法: create ‘table’,{VERSIONS=>’2’}

附:MIN_VERSIONS => ‘0’是說在compact操作執行之後,至少要保留的版本

3、COMPRESSION 默認值是NONE 即不使用壓縮
這個參數意思是該列族是否採用壓縮,採用什麼壓縮算法
使用方法: create ‘table’,{NAME=>’info’,COMPRESSION=>’SNAPPY’}
建議採用SNAPPY壓縮算法
HBase中,在Snappy發佈之前(Google 2011年對外發布Snappy),採用的LZO算法,目標是達到儘可能快的壓縮和解壓速度,同時減少對CPU的消耗;
在Snappy發佈之後,建議採用Snappy算法(參考《HBase: The Definitive Guide》),具體可以根據實際情況對LZO和Snappy做過更詳細的對比測試後再做選擇。

Algorithm % remaining Encoding Decoding
GZIP 13.4% 21 MB/s 118 MB/s
LZO 20.5% 135 MB/s 410 MB/s
Zippy/Snappy 22.2% 172 MB/s 409 MB/s
如果建表之初沒有壓縮,後來想要加入壓縮算法,可以通過alter修改schema

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章