HBase的数据模型
HBase分布式数据库的数据存储在行列式的表格中,它是一个多维度的映射模型,其数据模型如图1所示。
图1 HBase的数据模型
在图1中包含了很多的字段,这些字段分别表示不同的含义,具体介绍如下:
Row Key(行键)
RowKey表示行键,每个HBase表中只能有一个行键,它在HBase中以字典序的方式存储。由于RowKey是HBase表的唯一标识,因此Row Key的设计非常重要。数据的存储规则是相近的数据存储到一起。例如,当Row Key格式为[www.apache.org、mail.apache.org](http://www.apache.org、mail.apache.org)
以及jira.apache.org这样的网站名称时,可以将网站名称进行反转,反转成org.apache.www、org.apache.mail以及org.apache.jira,然后再进行存储,这样的话,所有org.apache域名将会存储在一起,避免子域名(即www、mail、jira)分散在各处。
Column(列)
HBase表的列是由列族名、限定符以及列名组成的,其中“:”为限定符。创建HBase表不需要指定列,因为列是可变的,非常灵活。
Column Family(列族)
在HBase中,列族由很多列组成。在同一个表里,不同列族有完全不同的属性,但是同一个列族内的所有列都会有相同的属性,因为他们都在一个列族里面,而属性都是定义在列族上的。c1、c2、c3均为列族名。
Timestamp(时间戳)
表示时间戳,记录每次操作数据的时间,通常记作数据的版本号。