HBase行键的问题?

0
大家好:
HBase的行键是按照字典序排列的,假如我有这样一个需求,原来的表中的rowkey是这样的:
00010
00020
00030

现在要求继续往这个表里增加数据,行键分别是00011,00012一直到00019,然后也有00021-00029,还有00031-00039.
这样的话是不是就像插入排序那样底层的数据块就会不断的split,不断的移动,效率会很低?
已邀请:
1

Bob - 同程旅游大数据+BI 架构师 2015-11-10 回答

如果你一直向这个表里面插入数据,确实会让表底层数据进行split操作。
创建表的时候默认会有一个region,如果这个region存储数据超过一个范围,则会进行split。新的数据将会写入的新的region中。
在执行写的过程时,是先存储在memstore中,超过一定大小,则写入磁盘的store file中。多个store file会进行compact操作。每次的push或compact操作后都会判断是否进行split操作。
 
通常情况下是对表进行预先分割region个数。
例如rowkey是16进制,则可默认按字符分割为16/32个regions

要回复问题请先登录注册