开发者学堂课程【分布式数据库 HBase快速入门: HBase 数据结构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/101/detail/1742
HBase 数据结构
内容介绍
一、RowKey
二、Column Family
三、Cell
四、Time Stamp
五、命名空间
一、RowKey
与 nisql 数据库们一样,RowKey 是用来检索记录的主键。访问 HBASEtable 中的行,只有三种方式:
1.通过单个 RowKey 访问
2.通过 RowKey 的 range(正则)
3.全表扫描
RowKey 行健(RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-100bytes),在 HBASE 内部,RowKey 保存为字节数组。存储时,数据按照 RowKey 的字典序(byte order)排序存储。
设计 RowKey 时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。(位置相关性)
二、 Column Family
列族:HBASE 表中的每个列,都归属于某个列族。列族是表的 schema 的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。
例如:course:history,course:math 都属于 course 这个列族。
三、Cell
由(rowkey,column Family:column,version)唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。
关键字:无类型,字节码
四、Time Stamp
HBASE 中通过 rowkey 和 column确 定的为一个存贮单元称为 cell。每个 cell 都保存着同一份数据中的多个版本。版本通过时间戳来索引。
五、命名空间
命名空间结构:
图一
1.Table 表,所有的表都是命名空间的成员,即表必须属于某个命名空间,如果没有指定,则在 default 默认的命名空间中。
2.RegionServer group:一个命名空间包含了默认的 RegionServer Group。
3.Permission:权限,命名空间能够让我们来定义访问控制列表ACL(Access Control list)。
4.Quota:限额,可以强制一个命名空间可包含的 region 数量。