2.3 HBase数据模型

HBase数据模型

RowKey行键

 - 是数据的唯一标识 --- 类似于关系型数据库的主键
 - 
 - 默认由64K的数据组成,但是实际使用中按照用户的需求自由定义
 - 
 - 分配空间的时候使用多少分配多少,但是rowkey设计的时候够用就行
   ------ 后期专门将rowkey的设计策略
 -
 - 当我们插入数据的时候,HBase会按照Rowkey的字典序给我们排序
   ------ HBase中的数据默认按照rowkey有序
   ------ 注意字典序的排序规则

TimeStamp 时间戳

 - 数据的版本控制器
 - 
 - 时间戳的类型是 64位整型
 - 
 - 它是基于HDFS存储的一种策略
   ------ 版本就是缓解了HDFS与数据修改的冲突
   ------ 现在修改数据删除数据并不会马上修改HDFS上的数据
   
 - 我们定义列族的时候可以指定最多保留的版本
   ------ 将来我们修改同一个数据的时候,根据版本数来确定这个数据是否显示
   ------ 默认的版本号就是当前系统的毫秒数
   
 - 我们查询数据的时候,如果不指定版本数,默认显示版本号最新(高)的数据
 - 
 - 于是我们取数据的时候,不同的版本信息对应的数据有可能就是不同的
 - 
 - 时间戳可以由HBase(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。
 - 
 - 时间戳也可以由客户显式赋值,如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。



Column Family 列族

 - 将功能属性相近的放在同一个列族
 - 
 - 同一个列族中的列会存放在同一个Store中
 - 
 - 列族一般需要在创建表的时候就进行声明,而且一般一个表中的列族数不要超过3个
 - 
 - 表中所有的列都是基于列族
 - 
 - 权限控制、存储以及调优都是在列族层面进行的
 - 
 - HBase把同一列族里面的数据存储在同一目录下,由几个文件保存

Qualifier 列

 - 列必须基于列族
 - 
 - 使用的时候必须 列族:列
 - 
 - 列可以根据需求动态添加或者删除

Cell 存储单元

 - 我们最终定位到的资源
 - 
 - 它由(RowKey + TimeStamp + Column Famliy + Qualifier)联合精准查找到一个数据
 - 
 - 因为HDFS上的数据都是字节数组,所以HBase没有数据类型(字节码)


HBase的架构 链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值