【问题标题】:Performance impact of columnfamily and Version in HbaseHbase 中 columnfamily 和 Version 对性能的影响
【发布时间】:2016-04-13 16:56:05
【问题描述】:

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

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

想把版本提高到10000

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

当版本更改为 10K 时,它将更改为所有列,但 可以要求仅更改 2 列

这两种情况下的性能影响是什么

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

  2. 所有列的更改版本

【问题讨论】:

    标签: hbase


    【解决方案1】:

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

    所以通过创建两列族存储文件大小将不会存储不必要的数据,有助于在压缩期间减少拆分。 IO性能将得到提升

    如果有两个列族 A 和 B,并且 A 的基数为 100 万,B 为 10 亿,则 A 的数据分布在许多区域和区域服务器上。这会降低 ColumnFamilyA 的大规模扫描效率。

    区域是按行键分布的,所以即使 A 有 100 万行并且跨行键分布良好。那么是的,您可能需要扫描所有这些区域。我认为这不会产生太大影响,但这只能通过对这两个高版本列使用不同的表来避免。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      • 2013-08-30
      • 2021-03-09
      • 2011-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多