Google-Bigtable中文版_1.0.pdf
文本预览下载声明
Google Bigtable 中文版1.0 版
Google Bigtable 中文版1
1 摘要
Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服
务器上的PB 级的数据。
Google 的很多项目使用Bigtable 存储数据,包括Web 索引、Google Earth、Google Finance 。这些应用对
Bigtable 提出的要求差异非常大,无论是在数据量上(从URL 到网页到卫星图像)还是在响应速度上(从后
端的批量处理到实时数据服务)。尽管应用需求差异很大,但是,针对Google 的这些产品,Bigtable 还是成功
的提供了一个灵活的、高性能的解决方案。
本论文描述了Bigtable 提供的简单的数据模型。利用这个模型,用户可以动态的控制数据的分布和格式。
我们还将描述Bigtable 的设计和实现。
2 介绍
在过去两年半时间里,我们设计、实现并部署了一个分布式的结构化数据存储系统 — 在Google,我们
称之为Bigtable 。Bigtable 的设计目的是可靠的处理PB 级别的数据,并且能够部署到上千台机器上。Bigtable
已经实现了下面的几个目标:适用性广泛、可扩展、高性能和高可用性。
Bigtable 已经在超过60 个Google 的产品和项目上得到了应用,包括Google Analytics、Google Finance、
Orkut、Personalized Search、Writely 和Google Earth 。这些产品对Bigtable 提出了迥异的需求,有的需要高吞
吐量的批处理,有的则需要及时响应,快速返回数据给最终用户。它们使用的 Bigtable 集群的配置也有很大
的差异,有的集群只有几台服务器,而有的则需要上千台服务器、存储几百TB 的数据。
在很多方面,Bigtable 和数据库很类似:它使用了很多数据库的实现策略。并行数据库【14】和内存数
据库【13】已经具备可扩展性和高性能,但是Bigtable 提供了一个和这些系统完全不同的接口。Bigtable 不支
持完整的关系数据模型;与之相反,Bigtable 为客户提供了简单的数据模型,利用这个模型,客户可以动态控
2 3 4
制数据的分布和格式 ,用户也可以自己推测底层存储数据的位置相关性 。数据的下标是行和列的名字,名
字可以是任意的字符串。Bigtable 将存储的数据都视为字符串,但是Bigtable 本身不去解析这些字符串,客户
1 译者alex,原文地址/
2 也就是对BigTable 而言,数据是没有格式的。用数据库领域的术语说,就是数据没有Schema,用户自己去定义Schema
3 英文为reason about
4 位置相关性可以这样理解,比如树状结构,具有相同前缀的数据的存放位置接近。在读取的时候,可以把这些数据一次读取
出来
作者/编著者:阎伟 邮件: andy.yanwei@163.com 博客: 微博:/2152410864 1/25
Google Bigtable 中文版1.0 版
程序通常会在把各种结构化或者半结构化的数据串行化到这些字符串里。通过仔细选择数据的模式,客户可
以控制数据的位置相关性。最后,可以通过BigTable 的模式参数来控制数据是存放在内存中、还是硬盘上。
第3 节描述关于数据模型更多细节方面的东西;
第4 节概要介绍了客户端API ;
第5 节简要介绍了BigTable 底层使用的Google 的基础框架;
第6 节描述了BigTable 实现的关键部分;
第7 节描述了我们为了提高BigTable 的性能采用的一些精细的调优方法;
第8 节提供了BigTable 的性能数据;
第9 节讲述了几个Google 内部使用BigTable 的例子;
第10 节是我们在设计和后期支持过程中得到一些经验和教训;
最后,在第11 节列出我们的相关研究工作,第12 节是我们的结论。
3 数据模型
显示全部