HBase之表的设计原则
来源:互联网 发布:vb winhttp 编辑:程序博客网 时间:2024/05/16 04:25
1、列族的数量及列族的势
建议将HBase列族的数量设置的越少越好。当强,对于两个或两个以上的列族HBase并不能处理的很好。这是由于HBase的Flushing和压缩是基于Region的。当一个列族所存储的数据达到Flushing的阈值时,该表中所有列族将同时进行Flushing操作。这将带来不必要的I/O开销,列族越多,该特性带来的影响越大。
此外,还要考虑到同一个表中不同列族所存储的记录数量的差别,即列族的势(Cardinality)。当两个列族数量差别过大时会使包含记录数量较少列族的数据分散在多个Region上,而Region有可能存储在不同的RegionServer上。这样,当进行查询或scan操作的时候,系统效率将会受到影响。
2、行键(RowKey)的设计
首先应该避免使用时序或单调(递减/递增)行键。因为当数据到来的时候,HBase首先需要根据记录的行键来确定存储的位置,即Region的位置,如果使用时序或单调行键,那么连续到来的数据将被分配到同一个Region中,而此时系统的其他Region/RegionServer处于空闲状态,这是分布式最不希望看到的状态。
3、尽量最小化行键和列族的大小
在HBase中,一个具体的值由存储该值的行键、对应的列(列族:列)以及该值的时间戳决定。HBase中索引是为了加速随即访问的速度,索引的创建是基于“行键+列族:列+时间戳+值”的,如果行键和列族的大小过大,甚至超过值本身的大小,纳闷将会增加索引的大小。并且在HBase中数据记录往往非常之多,重复的行键、列将不但使索引的大小过大,也将加重系统的负担
4、版本的数量
默认情况下为3个,可以通过HColumnDescriptor进行设置,建议不要设置的过大
参考资料:《Hadoop实战》陆嘉恒 著
- HBase之表的设计原则
- HBase学习之五:HBase的RowKey设计原则
- HBase学习之HBase的RowKey设计原则
- HBase学习之五:HBase的RowKey设计原则
- HBase RowKey的设计原则
- HBase的RowKey设计原则
- HBase的RowKey设计原则
- HBase的RowKey设计原则
- HBase的RowKey设计原则
- HBase RowKey的设计原则
- HBase RowKey的设计原则
- HBase的RowKey设计原则
- HBase表设计原则整理
- Hbase之表的设计
- HBase 中RowKey的设计原则
- HBase(2.6)-HBase的RowKey设计原则 ,热点问题
- HBase RowKey设计原则
- Hbase rowkey 设计原则
- 案例:看OA如何攻克政府公文管理“多、细、繁、急”4大痛楚
- Box2d新系列 第八章 连接器(Joints)
- 关于常见的变量修饰符: const, static, extern, register, auto 的详细解释,使用场合以及注意事项
- 第4章 对象
- qml构建一个渐变色的窗口
- HBase之表的设计原则
- hdu 2227Find the nondecreasing subsequences(树状数组+dp+离散化)
- NOIP2015模拟1
- ZXing生成二维码,以及给二维码添加Logo
- Android Studio App设置线性布局LinerLayout控件垂直/水平方向排列
- Hibernate关联之 一对多外键单向关联
- oldssoj2677
- G语言图形内核库
- mysql 定时任务