HBase 数据模型
2015-09-16 16:28
232 查看
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的值。
2.HBase的使用
四个主要的数据操作是Get、Put、Scan和Delete。所有的数据操作HBase都会以有序的方式返回数据,首先按行,然后按列family,然后按列qualifier,最后按时间戳(时间戳是倒排的,以便最新的数据首先返回)
2.1Get操作
Get操作返回一个特定的行。
2.2Put操作
如果行Key不存在,Put操作可以加一个新行,如果行Key存在,则更新这个相同行Key的行。
2.3Scan操作
Scan操作可以根据给定的条件遍历数行。
2.4Delete操作
Delete操作可以从一个表里删除一行
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的值。
2.HBase的使用
四个主要的数据操作是Get、Put、Scan和Delete。所有的数据操作HBase都会以有序的方式返回数据,首先按行,然后按列family,然后按列qualifier,最后按时间戳(时间戳是倒排的,以便最新的数据首先返回)
2.1Get操作
Get操作返回一个特定的行。
2.2Put操作
如果行Key不存在,Put操作可以加一个新行,如果行Key存在,则更新这个相同行Key的行。
2.3Scan操作
Scan操作可以根据给定的条件遍历数行。
2.4Delete操作
Delete操作可以从一个表里删除一行
相关文章推荐
- 常用安全测试用例(一)
- 常用安全测试用例(二)
- 产品交互设计入门书籍推荐(亲自看过)
- VS2008编译问题
- rails 网站跨域
- Android:都是Layout的BaselineAligned惹的祸
- 面试题_List和Set不同
- Delphi星期几的判断
- uva 10253 Series-Parallel Networks 树的性质,可重排列
- POP3、SMTP、IMAP和Exchange都是个什么玩意?
- 标准SQL
- TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议
- 在网站测试中如何做好安全性测试
- 关于BaseAdapter和simpleAdapter
- CSS3Ps -Photoshop图层特效转CSS3代码
- 作为团队Boss,如何处理PM与RD之间的矛盾?
- R语言连接Mysql数据库的步骤及简单使用mysql数据库中的数据
- iOS 延时的几种方法
- 桌面图标删除不了
- Wireshark抓取本机报文