HBase数据结构
1 RowKey
与nosql数据库们⼀样,RowKey是⽤来检索记录的主键。访问HBASE table中的⾏,只有三种⽅式:
1.通过单个RowKey访问
2.通过RowKey的range(正则)
3.全表扫描
RowKey⾏键 (RowKey)可以是任意字符串(最⼤长度是64KB,实际应⽤中长度⼀般为 10-100bytes),在HBASE内部,RowKey保存为字节数组。存储时,数据按照RowKey的字典序(byte order)排序存储。设计RowKey时,要充分排序存储这个特性,将经常⼀起读取的⾏存储放到⼀起。(位置相关性)
2 Column Family
列族:HBASE表中的每个列,都归属于某个列族。列族是表的schema的⼀部分(⽽列不是),必须在使⽤表之前定义。列名都以列族作为前缀。例如 courses:history,courses:math都属于courses 这个列族。
3 Cell
由{rowkey, column Family:columu, version} 唯⼀确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。
关键字:⽆类型、字节码
4 Time Stamp
HBASE 中通过rowkey和columns确定的为⼀个存贮单元称为cell。每个 cell都保存着同⼀份数据的多个版本。版本通过时间戳来索引。时间戳的类型是 64位整型。时间戳可以由HBASE(在数据写⼊时⾃动 )赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应⽤程序要避免数据版本冲突,就必须⾃⼰⽣成具有唯⼀性的时间戳。每个 cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前⾯。
为了避免数据存在过多版本造成的的管理 (包括存贮和索引)负担,HBASE提供了两种数据版本回收⽅式。⼀是保存数据的最后n个版本,⼆是保存最近⼀段时间内的版本(⽐如最近七天)。⽤户可以针对每个列族进⾏设置。
5 命名空间
命名空间的结构:
1) Table:表,所有的表都是命名空间的成员,即表必属于某个命名空间,如果没有指定,则在default默认的命名空间中。
2) RegionServer group:⼀个命名空间包含了默认的RegionServer Group。
3) Permission:权限,命名空间能够让我们来定义访问控制列表ACL(Access Control List)。例如,创建表,读取表,删除,更新等等操作。
hbase属于什么数据库
4) Quota:限额,可以强制⼀个命名空间可包含的region的数量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。