HBase 数据模型

HBase,也是Apache HBase,是一个分布式、列存储的数据库,HBase是根据谷歌的BigTable理论开发,就像是谷歌的BigTable在Google文件系统之上发挥的作用一样,HBase在Hadoop之上发挥同样的作用。

1.HBase的数据模型
数据以表的形式存储,也就是有行和列,不过Hbase的表是一个多维的map。

1.1 HBase的Table
HBase的Table由多个行组成

1.2 HBase 的行
HBase的行由行的Key和一个或多个列组成,行在存储的时候,行Key按字母表顺序存放。

1.3 HBase的列
一个HBase的列由列family和列qualifer组成

1.4HBase的列family
列family由一组列和列值组成,出于性能方面的考虑,每个列family有一些存储参数,比如数据是否在内存缓存、数据怎样压缩的。每行由相同的列family组成。

1.5Hbase的列qualifier
每个列family有一个列qualifier,列qualifier的作用是作为列数据的一个标识,比如一个列family是content,那么这个列的列qualifier会是content:html或者content:pdf之类。

1.6HBase的cell
一个cell是行和列family、列qualifier、一个时间戳的组合。{行,列,版本}的一个三元组确定一个cell

1.7Hbase的时间戳
时间戳和每个cell值一起被写入,默认时间戳标识HBase的RegionServer写该数据的时间。

1.8HBase的数据模型的实例
如下图所示,这是一个命名为webtable的表,有两行数据,即com.cnn.www和com.example.www,和三个列family,这三个列family分别命名为contents,anchor,people。

在这个例子里,第一行(com.cnn.www)的anchor列family包含两列,即cssnsi.com和my.look.ca,以及contents列family包括一列,即html。

这个例子的com.cnn.www行包含5个版本的cell的数据,com.example.www包含1个版本的cell的数据。

这个例子里,列qualifier的意思就是 列family:列qualifier,比如contents:html或者 anchor:cnnsi.com。

这个例子里,引号里面的就是cell的值。
HBase

2.HBase的使用
四个主要的数据操作是Get、Put、Scan和Delete。所有的数据操作HBase都会以有序的方式返回数据,首先按行,然后按列family,然后按列qualifier,最后按时间戳(时间戳是倒排的,以便最新的数据首先返回)

2.1Get操作
Get操作返回一个特定的行。

2.2Put操作
如果行Key不存在,Put操作可以加一个新行,如果行Key存在,则更新这个相同行Key的行。

2.3Scan操作
Scan操作可以根据给定的条件遍历数行。

2.4Delete操作
Delete操作可以从一个表里删除一行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值