在HBase中,“族”通常指列族(Column Family),它是表结构的核心组成部分,用于逻辑分组相关的列。12
列族是HBase表中列的集合, 在创建表时必须预先定义,且列名均以列族名称作为前缀(例如 courses:math 中的 courses 即为列族)。23 列族的设计直接影响数据的存储和访问效率,因为每个列族在物理存储上独立管理,对应一个单独的文件,因此建议将访问模式相似(如频繁同时查询)的列归入同一列族,以减少I/O操作。14
列族的特性包括:
- 静态定义:列族在表创建后需通过停用表才能修改,但可在运行时动态添加新列(需遵循列族前缀规则)。23
- 存储优化:HBase以列族为单位进行存储和压缩,稀疏数据(空值)不会占用空间,且支持多版本控制(通过时间戳区分)。15
- 设计原则:应尽量减少列族数量(通常建议不超过3个),避免跨列族事务,并将频繁访问与偶尔访问的数据分离。14
列族在HBase架构中扮演关键角色, 它与行键(Row Key)、单元格(Cell)等概念共同构成逻辑模型,而物理模型中数据按行键范围划分为区域(Region),每个区域由HRegionServer管理,列族的存储单元称为HStore,包含内存中的memStore和磁盘上的StoreFile。
浙公网安备 33010602011771号