Hbase数据模型
从逻辑视图来看,Hbase的数据是用表形式进行组织的,而且和关系型数据库中的表一样,由列和行构成,从物理视图来看,hbase中的数据是一个Map,由键值(k,v)组成,不过与普通Map不同,Hbase是一个稀疏的、分布式、多维排序的Map.
Hbase的逻辑视图
- table: 表,一个表包含多行数据
- row:行,一行数据包含一个唯一标识rowkey、多个column以及对应的值。在Hbase中,一张表中所有row都按照rowkey的字典由小到大排序。
- column:列,与关系型数据库中列不同,Hbase中的column由column family (列族)以及qualifier(列名) 两部分组成,两者中间使用:相连。列族在创建表时候需要指定,用户不能随意增减。但是列可以变更
- timestamp: 时间戳,每个cell在写入hbase时候都会默认分配一个时间戳作为该cell的版本,当然,用户也可以在写入的时候自带时间戳。hbase支持多版本特性,即同一个rowkey、column下可以有多个value存在,这些value使用timestamp作为版本号,版本越大表示数据越新。
- cell 单元格,由五元组(row,column,yimestamp,type,value)组成的结构,其中type表示Put/Delete这样的操作类型,timestamp代表这个cell的版本。这个结构在数据库中实际是以KV结构存储,其中(row,column,timestamp,type)是K,value对应V