企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
前面介绍元数据部分的时候可以看出,<mark>一个 Region 就是一个表的一段Rowkey 的数据集合</mark>。HBase 设计中,当某个 Region 太大的时候 HBase 会拆分它。<br/> 那么为什么要拆分 Region? * 因为当某个 Region 太大的时候读取效率太低了。 * HBase可以通过Region Split达到负载均衡。 <br/> 想想我们为什么从 MySQL、Oracle 转移到 NoSQL 来?最根本的原因就是这些关系型数据库把数据放到一个地方,查询的本质其实也就是遍历 key;而当数据增大到上亿的时候同一个磁盘已经无法应付这些数据的读取了,因为遍历一遍数据的时间实在太长了。我们用 NoSQL 的理由就是其<mark>能把大数据分拆到不同的机器上,然后就像查询一个完整的数据一样查询他们</mark>。但是当你的 Region 太大的时候,此时这个 Region 一样会遇到跟传统关系型数据库一样的问题,所以 HBase会拆分 Region,这也是 HBase 的一个优点,可以说 HBase 为<mark>一个会自动分片的数据库</mark>。 <br/> Region 的拆分分为**自动拆分**和**手动拆分(预拆分)**。其中自动拆分可以采用不同的策略。