HBase是一个基于Hadoop的分布式、可扩展、面向列的NoSQL数据库,其数据存储结构主要包括以下几个关键组成部分:
HBase数据存储结构
- Namespace(表命名空间):类似于关系型数据库的database概念,用于将多个表分组管理。
- Table(表):由一个或多个列族组成,是数据的逻辑结构。
- Row(行):表中的每一行数据,由唯一的RowKey标识。
- Column(列):在HBase中,数据以列族为单位进行存储,每个列族下可以有多个列限定符。
- Cell(单元格):由{RowKey, Column Family, Column Qualifier, Time Stamp}唯一确定,存储实际的数据。
HBase的物理存储结构
- Store(存储):HRegion中的存储单元,一个Region中的不同Store存储不同的列簇。
- MemStore:Store中的存储及预处理单元,数据写入HBase表时,首先写入MemStore。
- StoreFile:Store中的存储单元,存的是对应列簇的数据。
- Hlog(Write-Ahead Log):记录文件写入,用于数据持久化和恢复。
HBase的数据模型特点
- 列式存储:数据按列存储,适合处理大量列数据。
- 稀疏性:表可以设计得非常稀疏,节省存储空间。
- 多版本数据存储:每个单元格可以保存多个版本的数据,支持数据版本回溯和数据恢复。
通过上述结构,HBase能够高效地处理大规模数据集,并提供实时读写访问的能力。