HBase数据模型
来源:互联网 发布:游戏合集软件 编辑:程序博客网 时间:2024/06/10 12:44
HBase的表由行和列共同组成,HBase中有列族的概念,它将一列或者多列组织在一起,一个列必定属于某个列族
两种数据模型
逻辑模型
HBase 是一个稀疏的,长期存储的,多维度的,排序的映射表,表中的没一行可以有不同的列
HBase中最基本的单位是列,一列或多列构成了行,行有行键(rowkey),没一行的行健都是唯一的,相同行健的插入被人难为是对该行上某些列的更新
HBase一个表中,有若干行,一行有若干列,列中的值有多个版本,每个版本的值称之为单元格,每个单元格是存储不同时刻改列的值。
HBase中,列名是由列族前缀和修饰符(Qualifier)链接组成,中间由“:”分隔。以下是HBase的逻辑模型
物理模型
在物理上,表是按列分开存储的。HBase的列是按列族分组的,HFile是面向列的,存放的不同列的物理文件,一个列族的数据存放在多个HFile中,最重要的是一个列族的数据会被同一个Region管理,物理上存放在一起。
HBase可以不 禁用表而随时加入新的列,因此可以将一个新的列加入列族而不需要申明
HBase行键
行键(RowKey)是不可分割的字节数组 ,行键是由字典 顺序由低到高存储在表中的
排序
Get 和Scan操作是经过排序的数据,列在服务器端也是字典排序的,所以按照名称的字典序返回.
总体来说: 返回的数据首先按照行字典排序,然后是列族字典排序,然后是修饰符字典排序,最后按照时间戳反响排序,最新的排在前面
自动分区
HBase 中一个表的数据会被划分为很多Region,Region可以动态扩展并且HBase保证Region的负载均衡.Region实际上是行键排序后的按规则分割的连续的存储空间.如果Region太大,会被动态拆分,相反,多个Region会被合并成一个较大的Region,以减少HDFS上存储文件数量.这两个过程就是HBase的Split和Compaction.
刚刚创建的表只有一个Region,随着数据的写入,达到Region上线配置时,Region会按照中间键自动地拆分成两个大致相等的Region.每个Region由一个RegionServer管理,一个RegionServer处理器管理着许多的Region
Region的拆分和转义是由HBase 自动完成的,用户感知不到,当一个RegionServer服务器发生故障时,Region可以快速的被转移到其他服务器上,Region的拆分过程也是瞬间完成的.当Region进行拆分时,首先将该Region下线,拆分完后新Region再上线.下线的Region暂时不可用,不过由于速度极快,通常不会对数据的读写造成影响
- Hbase数据模型
- Hbase数据模型
- hbase数据模型
- hbase 数据模型
- HBase数据模型
- HBase数据模型
- Hbase数据模型
- HBase 数据模型
- HBase数据模型
- HBase 数据模型
- HBase 数据模型
- Hbase 数据模型
- HBase (1)---数据模型
- HBase之数据模型(DataModel)
- Hbase 存储结构 数据模型
- HBase的数据模型
- HBase数据模型(1)
- HBase数据模型(2)
- hdu4764 Stone 巴什博弈
- 文字属性名参考
- DLL动态链接库编程入门之五:MFC扩展DLL
- 人生中第一次用jQuery插件
- 二分查找
- HBase数据模型
- 【C语言】1到100的所有整数中出现9的次数。
- 修改MTP在PC"我的电脑"中显示的label名称
- vi中复制功能
- UIView基类的简述
- Could not find tool 'aapt'. Please provide a proper Android SDK directory
- 黑马程序员——Java基础---图形化界面
- [转载]Stanford Prof. Li Feifei写给她学生的一封信
- 汉诺塔问题