全部产品
阿里云办公

数据压缩与编码

更新时间:2018-10-11 11:53:46

压缩算法

目前阿里云平台支持压缩算法有: 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. 修改压缩编码的步骤:
  2. 1、修改表的属性,此为压缩编码
  3. alter 'test', {NAME => 'f', COMPRESSION => 'lz4', DATA_BLOCK_ENCODING =>'DIFF'}
  4. 2、压缩编码并不会立即生效,需要major_compact,此会耗时较长,注意在业务低峰期进行
  5. major_compact 'test'

具体压缩编码的细节参考:阿里HBase数据压缩编码探索