压缩算法
目前阿里云平台支持压缩算法有: LZO ZSTD GZ LZ4 SNAPPY NONE,其中NONE就代表不开启压缩
不同压缩算法在不同场景的压缩比,及解压速度对比如下,都是来自线上真实场景:
业务类型 | 无压缩表大小 | LZO(压缩率/解压速度MB/s) | ZSTD(压缩率/解压速度MB/s) | LZ4(压缩率/解压速度MB/s) |
---|---|---|---|---|
监控类 | 419.75T | 5.82/372 | 13.09/256 | 5.19/463.8 |
日志类 | 77.26T | 4.11/333 | 6.0/287 | 4.16/496.1 |
风控类 | 147.83T | 4.29/297.7 | 5.93/270 | 4.19/441.38 |
消费记录 | 108.04T | 5.93/316.8 | 10.51/288.3 | 5.55/520.3 |
我们建议在:
- 对rt要求极高,建议使用 lz4 压缩算法
- 对rt要求不高,特别是 监控、物联网等场景,建议使用 zstd 压缩算法
编码
hbase很早就支持了DataBlockEncoding,也就是是通过减少hbase keyvalue中重复的部分来压缩数据。我们推荐DATA_BLOCK_ENCODING使用diff
操作
修改压缩编码的步骤:
1、修改表的属性,此为压缩编码
alter 'test', {NAME => 'f', COMPRESSION => 'lz4', DATA_BLOCK_ENCODING =>'DIFF'}
2、压缩编码并不会立即生效,需要major_compact,此会耗时较长,注意在业务低峰期进行
major_compact 'test'
具体压缩编码的细节参考:阿里HBase数据压缩编码探索
原创文章,作者:网友投稿,如若转载,请注明出处:https://www.cloudads.cn/archives/33957.html