hbase 数据模型

name space

HBase命名空间 namespace 是与关系数据库系统中的数据库类似的表的逻辑分组。为即将出现的多租户相关功能奠定了基础:

  • 配额管理(Quota Management)(HBASE-8410)
    限制命名空间可占用的资源量(即区域,表)。
  • 命名空间安全管理(Namespace Security Administration)(HBASE-9206)- 为租户提供另一级别的安全管理。
  • 区域服务器组(Region server groups)(HBASE-6721)命名空间/表可以固定在 RegionServers 的子集上,从而保证粗略的隔离级别

命名空间管理

<table namespace>:<table qualifier>

示例:

#Create a namespace
create_namespace 'my_ns'

#create my_table in my_ns namespace
create 'my_ns:my_table', 'fam'

#drop namespace
drop_namespace 'my_ns'

#alter namespace
alter_namespace 'my_ns', {METHOD => 'set', 'PROPERTY_NAME' => 'PROPERTY_VALUE'}

在 HBase 中有两个预定义的特殊命名空间:

hbase:系统命名空间,用于包含 HBase 内部表

default:没有显式指定命名空间的表将自动落入此命名空间

示例:

#namespace=foo and table qualifier=bar
create 'foo:bar', 'fam'

#namespace=default and table qualifier=bar
create 'bar', 'fam'

Region

表的切片(高表的时候横向切分),类似关系型数据库表的概念。不同的是,hbase定义表的时候只需要定义列族即可,不需要声明具体列。这意味hbase写入数据时,字段可以时动态、按需指定的。因此,和关系型数据库相比,hbase能轻松应对字段变更的场景。

Row

HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。

Column

HBase 中的每个列都由 Column Family(列族)和 Column Qualifier(列限定符)进行限
定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。

Time Stamp

用于标识数据的不同版本(version),每条数据写入时,如果不指定时间戳,系统会
自动为其加上该字段,其值为写入 HBase 的时间。

Cell

由{rowkey, column Family:column Qualifier, time Stamp}
(rowkey, column Family:column Qualifier数据多个)
加上time Stamp可唯一确定的单元。cell 中的数
据是没有类型的,全部是字节码形式存贮。提供了工具类进行数据类型转化,存储时转化,取时转化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值