使用了一段时间之后发现hbse的空间不足,需要对hbase进行数据压缩
hbase支持的压缩格式:GZ(GZIP),LZ0,LZ4,Snappy

compact分为两类,一类叫Minor compact ,一类叫Major compact;
两者的区别在于:Minor compact只是进行文件merge操作,而Major compact除了做文件Merge操作,还会将其中的delete项删除

1.建表的时指定数据压缩格式
# 创建指定压缩格式的表
create 'ods:tablename',{NAME=>'info',COMPRESSION=>'Snappy'},{NAME=>'f2'}
# 查看建表信息
desc 'ods:tablename'

# 删除表
disable 'ods:tablename'
drop 'ods:tablename'

在这里插入图片描述

2.对已有的表的数据进行压缩
# 新建未压缩表
create 'ods:tablename',{NAME=>'info'}
# 查看表信息
desc  'ods:tablename'

在这里插入图片描述

# 禁用表
disable 'ods:tablename'
# 修改info列族的压缩格式
alter 'ods:tablename' ,{NAME=>'info',COMPRESSION=>'Snappy'}
# 启用表
enable 'ods:tablename'
# 查看表信息
desc 'ods:tablename'

在这里插入图片描述

tips
GZ:用于冷数据压缩,与Snappy和LZ0相比,GZIP的压缩率更高,但是更消耗CPU,解压/压缩速度更慢。

Snappy和LZ0:用于热数据压缩,占用CPU少,解压/压缩速度比GZ快,但是压缩率不如GZ高。

Snappy与LZ0相比,Snappy整体性能优于LZ0,Snappy压缩率比LZ0更低,但是解压/压缩速度更快。

LZ4与LZ0相比,LZ4的压缩率和LZ0的压缩率相差不多,但是LZ4的解压/压缩速度更快。

多数情况下,选择Snppy或LZ0是比较好的选择,因为它们的压缩开销底,能节省空间。

参考:
https://blog.51cto.com/mjal01/1963644
https://www.cnblogs.com/cxzdy/p/5368715.html

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐