HBase行键的问题?
0
大家好:
HBase的行键是按照字典序排列的,假如我有这样一个需求,原来的表中的rowkey是这样的:
00010
00020
00030
现在要求继续往这个表里增加数据,行键分别是00011,00012一直到00019,然后也有00021-00029,还有00031-00039.
这样的话是不是就像插入排序那样底层的数据块就会不断的split,不断的移动,效率会很低?
HBase的行键是按照字典序排列的,假如我有这样一个需求,原来的表中的rowkey是这样的:
00010
00020
00030
现在要求继续往这个表里增加数据,行键分别是00011,00012一直到00019,然后也有00021-00029,还有00031-00039.
这样的话是不是就像插入排序那样底层的数据块就会不断的split,不断的移动,效率会很低?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
Bob - 同程旅游大数据+BI 架构师 2015-11-10 回答
赞同来自: ZanarKand
创建表的时候默认会有一个region,如果这个region存储数据超过一个范围,则会进行split。新的数据将会写入的新的region中。
在执行写的过程时,是先存储在memstore中,超过一定大小,则写入磁盘的store file中。多个store file会进行compact操作。每次的push或compact操作后都会判断是否进行split操作。
通常情况下是对表进行预先分割region个数。
例如rowkey是16进制,则可默认按字符分割为16/32个regions