BigTable是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库。
BigTable是非关系型数据库,是一个稀疏的、分布式的、持久化存储的多维度排序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等业务提供技术支持。
Cloud Bigtable
此外,Google也为用户提供Bigtable云数据库——他们的自有数据库,在其搜索、Gmail、地图或YouTube等服务中使用已超过十年时间。Bigtable不像Google的其它产品一样开源,因此这一新的云服务只能通过开源接口Apache HBase 1.0.1 API访问。
谷歌承诺,Cloud Bigtable的延迟时间将限制在几毫秒(个位数),每美元性能是HBase、Cassandra等类似数据库的两倍。由于Cloud Bigtable支持HBase的应用程序接口,所以它能够与分布式系统基础架构Hadoop生态系统中的现有应用相整合,但也支持谷歌的云数据分析工具Cloud Dataflow。
Bigtable云的特性如下:
1.可扩展至成百上千个PB
2.高可用性
3.可复制
4.数据以加密形式传输和存储
5.全托管
6.与Hadoop生态系统集成
适用于金融、物联网、时序和市场等领域的数据
Google称Bigtable凭借“个位数毫秒级延迟以及两倍于其它非托管NoSQL产品的性价比”提供“无与伦比的性能”。数据如下图所示,该图由Google发布,目前还没有被某个独立衡量基准验证核实过。