作者:微信小助手
发布时间:2020-03-24T10:08:57
本文字数:4849字
预计阅读时间:20分钟
导读
Hbase是一个高可靠性,高性能、列存储、可伸缩、多版本的Nosql的分布式数据存储系统,而Hbase的表设计是发挥出Hbase优异性能的关键所在。一个好的Hbase的表设计在满足业务需求下遵循哪些规则呢?如何设计出既满足业务需求性能又好的的Hbase表呢?今天我们就来谈谈Hbase的表设计策略。
HBase数据模型
•表Table
对应于关系型数据库中的一张张表,HBase以“表”为单位组织数据,表由多行组成;
•行 Colum
行由一个RowKey和多个列族组成,一个行有一个RowKey,用来唯一标识;
•行键RowKey
Rowkey类似RDBMS的主键,唯一标识该行,是定位该行的索引;
•列族Row Family
每一行由若干列族组成,每个列族下可包含多个列,列族是列共性的一些体现。注意:物理上,同一列族的数据存储在一起的;
•列限定符Row Qualifier
列由列族和列限定符唯一指定;
•单元格Cell
单元格由RowKey、列族、列限定符唯一定位,单元格之中存放一个值(Value)和一个版本号;
•时间戳TimStamp
单元格内不同版本的值按时间倒序排列,最新的数据排在最前面;
•区Region
HBase自动把表水平(按Row)划分成多个区 (Region),每个Region会保存一个表里面某段连续的数据。
列描述
常用的列描述有:
•BLOOMFILTER
表示是否开启Bloomfilter,以及Bloomfilter的细粒度;
•COMPRESSION
表示是否开启压缩,以及使用压缩的方式;
•VERSIONS
表示允许存储的数据最大版本数;
•TTL
表示允许数据存活的最大时间;
•MINVERSION
表示数据保存的最少版本数。
列描述角度的设计策略
BLOOMFILTER
BloomFilter的原理这里不过多描述。是否采用BloomFilter需要根据实际业务考虑。由于BloomFilter的原理,BloomFilter可以快速确认某个Rowkey或Rowkey +