hbase数据压缩

使用了一段时间之后发现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

猜你喜欢

转载自blog.csdn.net/Cocktail_py/article/details/113334871