在HBase中,row key可以是任意字符串,最大长度64KB,实际应用中一般为10~100bytes,存为byte[]字节数组,一般设计成定长的。
row key是按照字典序存储,因此,设计row key时,要充分利用这个排序特点,将经常一起读取的数据存储到一块,将最近可能会被访问的数据放在一块。
举个例子:如果最近写入HBase表中的数据是最可能被访问的,可以考虑将时间戳作为row key的一部分,由于是字典序排序,所以可以使用Long.MAX_VALUE - timestamp作为row key,这样能保证新写入的数据在读取时可以被快速命中。
row key用来检索表中的记录,支持以下三种方式:
?
通过单个row key访问:即按照某个row key键值进行get操作;
?
通过row key的range进行scan:即通过设置startRowKey和endRowKey,在这个范围内进行扫描;
?
全表扫描:即直接扫描整张表中所有行记录。