HBase是一个基于列族的NoSQL分布式数据库,其存储结构具有以下特点:
-
数据模型:
- 行键(Row Key):唯一标识一行数据,决定了数据在表中的物理存储位置,并按字典序排序。
- 列族(Column Family):一组相关的列共享相同的命名空间和属性,如时间戳、版本等,是HBase的核心概念。
- 列(Column):属于特定列族的单元,由行键、列族名和列限定符(Qualifier)组成。
- 单元格(Cell):由行键、列族和列限定符确定,是HBase中最小的数据单元,存储数据及其版本信息。
-
存储结构:
- 表(Table):数据存储的基本单位,由行键排序分割成多个Region。
- Region:分布式存储和负载均衡的最小单元,随着数据增加而分裂,分布在不同的RegionServer上。
- MemStore:内存级别的存储区域,用于缓存最近访问过的数据,提高随机读取速度。
- HFile:HBase的主要持久化文件格式,存储在Hadoop的HDFS上,是MemStore数据序列化并压缩后的二进制文件。
- HLog:WriteAheadLog,用于保证数据的安全性,在HRegionServer意外退出时,通过HLog恢复数据。
-
存储特点:
- 稀疏性:对于为空(null)的列,并不占用存储空间,表可以设计得非常稀疏。
- 高性能:通过内存缓存和LSM树结构,实现了高效的随机读写操作。
- 可扩展性:HBase设计为易于横向扩展,通过增加服务器节点来提高存储和计算能力。
- 高可靠性:数据存储在Hadoop HDFS上,提供了数据的冗余备份和故障恢复机制。
HBase的存储结构使其非常适合于需要处理大量数据、具有高读写负载的应用场景,如实时数据分析、日志处理等。