EN
返回档案库

案例库 · 软件与 IT · 技术决策 · 2004–2008

Google在Bigtable上运行了60多个产品,而不是为每个产品建数据库

在数千台商用服务器上的一个稀疏排序映射,让每个Google产品都能调整自己的模式,并共享同一个平台。

Google

那一手

到2004年,Google的每个产品都面临同样的问题:存储大量结构化数据,从网页抓取到卫星图像再到金融数据。为每个产品构建定制存储系统代价高昂,而现成的数据库无法达到所需的规模,因此公司设计了一个共享系统。

Bigtable提供了一个简单的模型:一个按行、列和时间戳排序的稀疏映射,值以未解释的字节存储。应用程序决定自己的布局,控制数据本地性,甚至选择数据是从内存还是磁盘服务,而平台在数千台商用服务器上处理分区、复制和故障转移。

到2006年论文发表时,超过60个Google产品(包括Google Analytics、Google Finance、个性化搜索和Google Earth)使用了Bigtable。集群规模从几十台到数千台服务器,存储容量每个最高可达几百TB。

为什么管用

  • 一个平台分摊了工程和运维成本到多个产品上
  • 应用程序控制布局,因此模型保持简单但用途各异
  • 商用服务器加上自动分区可以扩展到PB级
  • 共享系统意味着一个团队可以为大家加固它
值了多少一个共享存储,每个产品调整自己的模式聪明

可以搬走什么

在扩展产品之前,先构建共享的基础设施一次:一个许多团队调优的系统胜过许多无法共同改进的定制系统。

后来呢

Bigtable仍然是Google自身服务的骨干,后来成为Google Cloud的一项服务,是'NoSQL先驱':一种托管键值和大列存储,用于延迟敏感的个性化、点击流和物联网工作负载,提供HBase和Cassandra兼容的API。它的思想也塑造了开源克隆如HBase。

资料来源

发现哪里写错了?告诉我们。

同一路聪明