文章目录
一、诞生背景
BigTable设计的动机与目标
- 动机
需要存储的数据种类繁多、类型多样,例如URL.图片、文字、视频、html文件、用户设置数据等;
需要处理海量的服务请求;
商用数据库无法满足Google的需求,底层系统技术的掌控便于系统维护和升级; - 目标
广泛的适用性:满足Google的系列产品的需求;
很强的可扩展性:横向扩展和纵向扩展;
高可用性:确保系统24X7可用;
简单:底层系统简单减少出错概率,为上层应用开发提供便利;
二、 BigTable的数据模型
- 分布式多维映射表结构
- 表中数据通过行关键字(Rowkey) 、列关键字(Columnkey)以及时间戳进行索引,所有数据以字符串形式存储,由用户解析数据
- 存储逻辑表示为(row:string,column:string. item:int64) -> string
例:网页www.cnn.com的数据片段
行名称是倒排的URL;
便于同一地址城的网页被存储在表中连续的位置;
便于数据压缩,大幅提高压缩率;
contents列族包含了网页内容;
anchor列族包含了任何引用这个页面的anchor文本;
CNN的主页被Sports Illust