是否有任何理由将 hbase 表拆分为更小的实体,或者它可以永远增长(假设可用磁盘空间)?
背景:
我们有实时数据(测量值),可以说高达 500,000/s,它基本上由时间戳、值、标志组成。如果我们将值分配到不同的表中,这也意味着单独插入每个条目,这是一个性能杀手。如果我们批量插入它会快得多。问题是,拥有一个极端大小的 hbase 表有什么缺点吗?
是否有任何理由将 hbase 表拆分为更小的实体,或者它可以永远增长(假设可用磁盘空间)?
背景:
我们有实时数据(测量值),可以说高达 500,000/s,它基本上由时间戳、值、标志组成。如果我们将值分配到不同的表中,这也意味着单独插入每个条目,这是一个性能杀手。如果我们批量插入它会快得多。问题是,拥有一个极端大小的 hbase 表有什么缺点吗?
我没有看到手动拆分 HBase 表的意义,HBase 自己做这个并且非常好(称为HBase 表区域)
HBase 已经被用来处理非常大的数据,所以我相信这个限制只取决于你的硬件(当然,配置可能会影响性能,比如自动主要压缩等......)
通过将负载分布在多个 RegionServer 之间,拆分表可能有一个重要的原因,即避免RegionServer 热点。HBase 凭借其性质,将行顺序存储在一个位置。具有相似键的行转到同一服务器(例如时间序列数据)。这是为了促进更好的范围查询。但是,一旦您的数据变得太大(并且您的磁盘仍有空间),这就会成为瓶颈。
在上述情况下,数据将继续转到同一个 RegionServer,导致热点。因此,我们手动拆分表以在整个集群中均匀分布数据。