hbase 数据模型
来源:互联网 发布:淘宝上买气排会怎么样 编辑:程序博客网 时间:2024/06/06 07:57
1.模型视图
1.1概念视图
从概念模型上看,HBase的存储逻辑同关系数据库类似,是基于Table的存储,存储视图如图所示:
图中列出了表格的一条记录,com.cnn.www是该记录的主键,contents:、anchor:cnnsi.com和anchor:my.look.ca是表格的column
与关系数据库不同的是,这里的cell具有版本的概念(每个cell有多条记录,这些记录通过时间戳来区分彼此).
1.2物理视图
概念视图只是基于关系数据库的一种参照,在真正的物理存储上,HBase基于另外一种模型,模型视图如图所示:
如图所示,HBase实际上是基于列存储的数据库,可简单认为每个ColumnFamily对应一张存储表,表格的RowKey、Timestamp和column确定了每条记录的唯一索引。在物理层面上,表格的数据是通过StoreFile来存储的,每个StoreFile相当于一个可序列化的Map,Map的key和value都是可解释型字符数组,如key的字符数组主要由以下信息组成(value于此类似):
rowlength rowKey的字符长度
row rowKey的值
columnFamilyLength columnFamily的字符长度
columnFamily columnFamily的值
columnqualifier column
timestamp 时间戳(版本)
keytype key的类型(Put,Delete,DeleteColumn,DeleteFamily…)
这样便可从相应的Key/Value键值对中提炼出具体的rowKey、timestamp、columnKey和columnValue等信息。而多个map整合到一起,便形成一张松散的、可分布式的、多维的、可序列话的BigTable。
2.模型概念
2.1ColumnFamily
Column Family是一组Column的组合,在HBase中,Schema的定义主要为columnFamily的定义,同大多数nosql数据库一样,HBase也是支持SchemaFree的,但是前提要先定义出具体的columnFamily,而在随后的column定义则没有任何约束。
其次,HBase的访问权限控制,磁盘及内存统计等功能都是基于columnFamily层面完成的。
2.2Cell
概念模型中的cell由row、column和timestamp三元素组成
2.3Timestamp
HBase提供基于cell的版本管理功能,版本号默认通过timestamp来标识,并且呈倒叙排列。这样,最后添加的版本会首先遍历到
注:这里的cell指的是概念视图中
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-01/52242.htm
- Hbase数据模型
- Hbase数据模型
- hbase数据模型
- hbase 数据模型
- HBase数据模型
- HBase数据模型
- Hbase数据模型
- HBase 数据模型
- HBase数据模型
- HBase 数据模型
- HBase 数据模型
- Hbase 数据模型
- HBase (1)---数据模型
- HBase之数据模型(DataModel)
- Hbase 存储结构 数据模型
- HBase的数据模型
- HBase数据模型(1)
- HBase数据模型(2)
- android,多线程断点下载
- 黑马程序员---基础强化---java的类加载器
- C++学习方法
- ubuntu下配置NFS
- LeetCode 27 — Remove Element(C++ Java Python)
- hbase 数据模型
- CareerCup Josephus Problem
- Java面向对象——集合框架总结
- 九度OJ 1446 Head of a Gang -- 并查集
- 【BFS+状态压缩】-POJ-1753-Flip Game
- chrome插件-新闻推荐评测插件开发
- URAL 1260 Nudnik Photographer 简单的递推
- 写给收获的2013年
- c++之原型模式