在前面我们介绍了数据块压缩,这里我们再介绍一个和数据块压缩配套使用的数据块编码。
这个数据块编码是什么意思呢?其实就是每一个key会根据前 key 进行编码和压缩。这个编码选项( FAST_DIFF )让HBase只存储当前key和前 key不相同的地方。下面再列举一个案例,假设我们没有设计数据块编码,那么每一个块的存储是这样子的:
我们可以看到这个key的RowKey:Fmily:Qualifier部分是一样的,此时我们就不需要全部存储,配置数据块编码之后,存储就应该是这样子的:
此时我们看到存储的就是比较少的内容,存储空间是不是就很少了。存储效率也比比较高了。
最后我们再演示下如何设置hbase的数据块编码:
create 't1', {NAME => 'f1', COMPRESSION => 'SNAPPY', DATA_BLOCK_ENCODING => 'FAST_DIFF'}
同样alter也是这么使用,主要的编码是这个fast_diff。
备注:
1、使用数据块编码,可以大大节省hbase的数据存储量。
还没有评论,来说两句吧...