1. 逻辑结构
1.1. 列与列族
将列按照不同分类,存储在不同文件夹里
1.2. RowKey(行键)与 Region(行切片)
- RowKey 按照字典序排序
- 每个 Region 都有 StartRowKey 和 StopRowKey ,用来表示 Region 存储的 RowKey 的范围
1.3. store
真正的存储内容
2. 物理结构
2.1. store
每一列单独存储,如下表
字段 | 描述 |
---|---|
Row Key | 记录该行数据的行键 |
Column Famliy | 记录所属列族 |
Column Qualifier | 记录列名 |
Timestamp | 记录数据操作动作的执行时间,做为版本号来识别新旧数据 |
Type | 记录数据操作动作,记录数据状态,如PUT,DELETE等 |
value | 记录数据值 |
3. 数据模型
3.1. name space
类似于数据库,默认自带有两个hbase
和default
,前者存放HBase的元数据,后者是默认使用的命名空间
3.2. Region
类似于数据库的表,定义时只需要声明列族,因为列会动态、按需指定
3.3. Row
数据存储和检索,都按照 RowKey 字典序
3.4. Column
每个列由列族(Column Famliy)和列名(Column Qualifier)限定,例如:info:name,info:age
3.5. TimeStamp
用于标识数据的不同版本,识别数据的状态
3.5. Cell
由{RowKe,Column Famliy:Column Qualifier,TimeStamp}唯一确定的单元,存储的是字节码