天天看点

HBase 数据结构 | 学习笔记

开发者学堂课程【分布式数据库 HBase快速入门: HBase 数据结构】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/101/detail/1742

HBase 数据结构

内容介绍

一、RowKey

二、Column Family

三、Cell

四、Time Stamp

五、命名空间

与 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 这个列族。

由(rowkey,column Family:column,version)唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。

关键字:无类型,字节码

HBASE 中通过 rowkey 和 column确 定的为一个存贮单元称为 cell。每个 cell 都保存着同一份数据中的多个版本。版本通过时间戳来索引。

命名空间结构:

图一

1.Table 表,所有的表都是命名空间的成员,即表必须属于某个命名空间,如果没有指定,则在 default 默认的命名空间中。

2.RegionServer group:一个命名空间包含了默认的 RegionServer Group。

3.Permission:权限,命名空间能够让我们来定义访问控制列表ACL(Access Control list)。

4.Quota:限额,可以强制一个命名空间可包含的 region 数量。