HBase Key-Value的组成

HBase中,Key-Value是最小的存储单元。在这个存储单元中,每一个Key-Value对应一个列。Value对应于一个列的列值。在HBaseKey-Value都是以Byte数组的形式存储的。下面我们看一下Key-Value的具体存储格式:

KeyLength

ValueLength

RowKeyLength

RowKey

ColumnFamilyLength

ColumnFamily

Qualifier

TimeStamp

Type

Value

   在HBase中,Key-Value存储是以KeyValue类进行表示的,Key-Value共有四部分组成:KeyTimeStampTypeValue四部分组成。

   KeyLengthKeyLength=KEY_INFRASTRUCTURE_SIZE + RowKeyLength + ColumnFamilyLength+QualifierLength。进一步将,KeyRowKeyColumnFamilyQuailifier三部分组成。KeyLength由这三部分的长度加上一个定长组成。

   ValueLengthValueLength指的是value的长度。

由上面的分析我们可以知道如何获取RowKeyColumnFamilyQualifierTimestampValue。首先,可以读取KeyLengthValueLength。根据KeyLength一次性可以读出RowKeyColumnFamilyQualifier,然后再根据这三部分不同的长度依次读取各部分。TimeStampType的类型分别是longbyte;读取完Key就可以读取定长的longbyte,剩余的即为value

你可能感兴趣的:(HBase Key-Value的组成)