Bigtable是一个分布式多维映射表,表中的数据通过一个行关键字(Row Key)、一个列关键字(Column Key)以及一个时间戳(Time Stamp)进行索引
Bigtable的存储逻辑可以表示为:
(row:string, column:string, time:int64)→string
行:
Bigtable的行关键字可以是任意的字符串,但是大小不能够超过64KB
表中数据都是根据行关键字进行排序的,排序使用的是词典序
同一地址域的网页会被存储在表中的连续位置
倒排便于数据压缩,可以大幅提高压缩率
列:
将其组织成所谓的列族(Column Family)
族名必须有意义,限定词则可以任意选定
组织的数据结构清晰明了,含义也很清楚
族同时也是Bigtable中访问控制(Access Control)的基本单元
时间戳:
Google的很多服务比如网页检索和用户的个性化设置等都需要保存不同时间的数据,这些不同的数据版本必须通过时间戳来区分。
Bigtable中的时间戳是64位整型数,具体的赋值方式可以用户自行定义