在hbase的表里面,我们知道数据是以块的方式进行存储的,每一个块大小默认是64KB。但是这个块存储的数是默认没有压缩的。
然后我们再回想一下,在hbase里面,每一列他存储的值其实都是特定的类型,那么如果我们对值进行压缩,是不是会有很好的效果?
所以这里我们要考虑hbase表数据值的压缩。在hbase中,常用的压缩算法有:
LZO, GZip, SNAPPY LZ4,zstd压缩等等
这些压缩算法各有各的特点。但是在早期我们在生产环境使用最多的压缩算法还是LZO,近一两年来,表现比较好的是zstd压缩算法,目前在国内各大云厂商的大数据平台产品里面已经完全可支持zstd压缩算法了。
所以这里我们在hbase设计的时候一定要配置对应的压缩算法,用来提高数据存储和读取的效率。
最后在hbase中配置压缩算法的配置示例如下:
alter '${表名}',NAME=>'F1',compression=>'zstd'
备注:
1、这里如果要设置zstd算法的话,我们需要提前安装zstd环境 2、设置完成之后,我们使用desc ${表名} 就可以看到现在使用的压缩算法了。
还没有评论,来说两句吧...