Bigtable发布于2006年,启发了无数的NoSQL数据库,比如:Cassandra、HBase等等。

Cassandra架构中有一半是模仿Bigtable,包括了数据模型、SSTables以及提前写日志(另一半是模仿Amazon的Dynamo数据库,使用点对点集群模式)。

BigTable 是建立在 GFS 和 MapReduce 之上的。每个Table都是一个多维的稀疏图

为了管理巨大的Table,把Table根据行分割,这些分割后的数据统称为:Tablets。每个Tablets大概有 100-200 MB,每个机器存储100个左右的 Tablets。底层的架构是:GFS。

由于GFS是一种分布式的文件系统,采用Tablets的机制后,可以获得很好的负载均衡。比如:可以把经常响应的表移动到其他空闲机器上,然后快速重建。


BigTable是​​Google​​​设计的​​分布式​​​​数据存储​​系统,用来处理海量的数据的一种非关系型的数据库。

简介

igTable是非关系型数据库,是一个稀疏的、​​分布式​​的、持久化存储的多维度排序Map。Bigtable的设计目的是快速且可靠地处理PB级别的数据,并且能够部署到上千台机器上。

Bigtable已经实现了以下的几个目标:适用性广泛、可扩展、高性能和高可用性。

Bigtable已经在超过60个Google的产品和项目上得到了应用,包括 Google Analytics、GoogleFinance、Orkut、Personalized Search、Writely和GoogleEarth。这些产品对Bigtable提出了迥异的需求,有的需要高​​吞吐量​​​的​​批处理​​​,有的则需要及时响应数据给最终用户。它们使用的Bigtable​​集群​​的配置也有很大的差异,有的集群只有几台服务器,而有的则需要上千台服务器、存储几百TB的数据。


特点

在很多方面,Bigtable和数据库很类似:它使用了很多数据库的实现策略。​​并行数据库​​​和​​内存数据库​​​已经具备可扩展性和高性能,但是Bigtable提供了一个和这些系统完全不同的接口。 Bigtable不支持完整的​​关系数据模型​​​;与之相反,Bigtable为客户提供了简单的数据模型,利用这个模型,客户可以动态控制数据的分布和格式(alex注:也就是对BigTable而言,数据是没有格式的,用数据库领域的术语说,就是数据没有Schema,用户自己去定义Schema),用户也可以自己推测(alex注:reasonabout)底层​​存储​​​数据的位置相关性(alex注:位置相关性可以这样理解,比如树状结构,具有相同前缀的数据的存放位置接近。在读取的时候,可以把这些数据一次读取出来)。数据的下标是行和列的名字,名字可以是任意的字符串。 Bigtable将​​存储​​​的数据都视为字符串,但是Bigtable本身不去解析这些字符串,客户程序通常会在把各种结构化或者半结构化的数据​​串行化​​​到这些字符串里。通过仔细选择数据的模式,客户可以控制数据的位置相关性。最后,可以通过BigTable的模式参数来控制数据是存放在内存中还是硬盘上。 特点: 1、适合大规模海量数据,PB级数据; 2、​​分布式​​​、并发​​数据处理​​​,效率极高; 3、易于扩展,支持动态伸缩; 4、适用于廉价设备; 5、适合于读操作,不适合写操作。 6、不适用于传统​​关系型数据库​​;


应用:

BigTable为谷歌旗下的搜索、地图、财经、打印、以及社交网站Orkut、​​视频共享​​​网站​​YouTube​​​和博客网站​​Blogger​​等业务提供技术支持。

2010年9月,Google宣布将放弃​​MapReduce​​。新索引系统将迁移至BigTable平台。新平台基于Colossus,也被称为GFS2。