HBase的基本概念主要包括如下几个方面:
表格(Table):HBase中数据存储的基本单位,类似于关系型数据库中的表。
列族(Column Family):表格中的列可以分为不同的列族,列族可以看作是一组相关的列的集合,每个列族都有一个唯一的名称,列族中的所有列都以该名称作为前缀。
列(Column):表格中的列存储了具体的数据,每个列都有一个唯一的名称,由列族名称和列限定符组成。
行键(Row Key):表格中的每一行都有一个唯一的行键,用于标识该行数据。
单元格(Cell):在HBase中,数据是以单元格(Cell)的形式存储的,每个单元格都由行键、列族、列限定符和时间戳组成。
版本(Version):每个单元格可以存储多个版本的数据,每个版本都有一个时间戳,可以通过时间戳来访问历史版本的数据。
命名空间(Namespace):HBase中可以创建多个命名空间来管理表格,每个命名空间中可以包含多个表格。
区域(Region):HBase中的数据按照行键范围分成多个区域,每个区域对应一个RegionServer来处理数据的读写请求。
table:表,一个表包含多行数据。
row:行,一行数据包含一个唯一标识rowkey、多个column以及对应的值。在HBase中,一张表中所有row都按照rowkey的字典序由小到大排序。
column:列,与关系型数据库中的列不同,HBase中的column由column family(列簇)以及qualif?ier(列名)两部分组成,两者中间使用":"相连。比如contents:html,其中contents为列簇,html为列簇下具体的一列。column family在表创建的时候需要指定,用户不能随意增减。一个column family下可以设置任意多个qualif?ier,因此可以理解为HBase中的列可以动态增加,理论上甚至可以扩展到上百万列。
timestamp:时间戳,每个cell在写入HBase的时候都会默认分配一个时间戳作为该cell的版本,当然,用户也可以在写入的时候自带时间戳。HBase支持多版本特性,即同一rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本越大,表示数据越新。
cell:单元格,由五元组(row, column, timestamp, type, value)组成的结构,其中type表示Put/Delete这样的操作类型,timestamp代表这个cell的版本。这个结构在数据库中实际是以KV结构存储的,其中(row, column, timestamp, type)是K,value字段对应KV结构的V。
资料来源:《HBase原理与实践》,文章链接:https://developer.aliyun.com/article/724670
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。