柱状家族和版本在Hbase中的性能影响

时间:2016-04-13 16:56:05

标签: hbase

在Hbase中包含30列的表 但是有一个列族

create 'my_table', { NAME => 'my_family', VERSIONS => 5 }

希望将版本增加到10,000

create 'my_table', { NAME => 'my_family', VERSIONS => 10000 }

将版本更改为10K时,它将更改为所有列 可以要求只改变2列

两种情况下的性能影响

  1. 制作两个不同的列族并相应更改版本

  2. 更改了所有列的版本

1 个答案:

答案 0 :(得分:0)

由于Hstore文件的大小增加,因此创建单独的列族以保留其他28列的不必要版本会对性能产生负面影响 增加Hbase数据的大小将增加将增加每个区域服务器的映射器数量的区域数量

因此通过创建两个列的系列存储文件大小将不会存储不必要的数据,有助于在压缩过程中减少分割。 IO性能将得到改善

如果有两个列族A和B,A的基数为100万,B为10亿,则A的数据分布在许多地区和区域服务器上。这使得ColumnFamilyA的质量扫描效率降低。

区域按照rowkey分布,因此即使A有100万行并且在行键之间具有良好的分布。那么是的你可能需要扫描所有这些区域。我认为这不会影响很大,但只能通过为这两个高版本列使用不同的表来避免这种情况。