HBase中的数据模型

HBase是一个基于列族的分布式数据库,数据以表格形式组织,由行键、列族和列限定符定义。行按行键字典序排序,列族将相关列组织在一起,而单元格则结合了行键、列族和列限定符,存储一个值和时间戳。版本号用于存储多版本数据,时间戳决定了数据的新旧。正确设计行键至关重要,以便优化数据分布和查询效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在HBase中,数据存储在具有行和列的表中。虽然看起来和关系数据库(RDBMS)一样,但将HBase看成是多个维度的Map结构更容易理解。

术语

表(table)

HBase中数据都是以表形式来组织的,HBase中的表由多个行组成

行键(row key)

  • HBASE中的行有一个rowkey(行键)和一个或多个列组成,列的值与rowkey、列相关联
  • 行在存储是按行键的字典序排序
  • 行键的设计非常重要,尽量让相关的行存储在一起

列(column)

HBase中的所有列族(column family)和列限定符(列名)(column qualifier)组成。

表示如下:

列族名:列限定符  例如:C1:USER_ID  C1:SEX

列族(column family)

  • 处于性能原因,列族将其与一组列组织在一起
  • 每个列族都有一组存储属性:例如是否应该缓存在内存中,数据如何被压缩等
  • 表中的每一行都有相同的列族,但在列族中不存储任何内容
  • 所有的列族的数据全部都存储在一块(文件系统HDFS)
  • HBase官方建议所有的列族保持一样的列,并且将同一类的列放在一个列族中

列族标识(column qualifier)

  • 列族中包含一个个的列限定符,这样可以为存储的数据提供索引
  • 列族在创建表的时候是固定的,但列限定符是不做限制的
  • 不同的列可能会存在不同的列标识符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值