由于在Google的数据中心存储PB级以上的非关系型数据时候,比如网页和地理数据等,为了更好地存储和利用这些数据,Google开发了一套数据库系统,名为“BigTable”。
技术概览
从技术来讲,BigTable不是一个传统的关系型的数据库,也不支持类似关联(join)这样高级的SQL操作,取而代之的是多级映射的数据结构,并支持大规模数据处理、高容错性和自我管理等特性,提供PB级的存储能力,使用结构化的文件来存储数据,并整个集群每秒可处理数百万的读写操作。
什么是多级映射的数据结构呢?就是一个稀疏的、多维的和排序的Map,每个Cell(单元格)由行关键字、列关键字和时间戳来进行三维定位.Cell的内容本身就是一个字符串,比如,存储每个网页的内容。在下图中, 反向的URL “com.cnn.www”是这行的关键字,“contents”这列存储了多个版本的网页内容,每个版本都有一个时间戳。BigTable还提供一个用于将多个相似的列整合至一起的Column Family(列组)机制,比如,下面“anchor”这个Column Family就有“anchor: cnnsi.com”和“anchhor:my.look.ca”这个两个列。通过Column Family这个概念,使得表可以轻松地横向扩展。
图1. BigTable数据模型图
在结构上,BigTable基于GFS分布式文件系统和Chubby分布式锁服务。BigTable主要分为两部分:其一是Master节点,用来处理元数据相关的操作并支持负载均衡。其二是Tablet节点,主要用于存储数据库的分片tablet,并提供相应的数据访问,同时tablet是基于名为SSTable的格式,对压缩有很好的支持。下图为其具体的架构图:
图2. BigTable架构图
相关产品
和之前介绍的MapReduce和GFS一样,BigTable在开源界也有很多类似的产品,最著名的两个莫过于属于Hadoop系列的Hbase和来自于Facebook的Cassandra。Hbase的特色在于其完全继承了BigTable的设计,所以它在MapReduce和海量数据存储这两方面支持地非常好,而Cassandra的则更倾向于成为全功能型数据库。除了这两个产品之外,我个人也设计一款类BigTable的数据库,名为YunTable,意为“云时代的BigTable”,它的目标是做一个BigTable的精简版,并使其更适合云环境,现在已经发布其0.8版,本已基本实现BigTable的基本功能,官方站点是http://code.google.com/p/yuntable/,希望大家能多多关注。
实际用例
BigTable正在为Google六十多种产品和项目提供存储和获取结构化数据的支撑平台,其中包括有Google Print, Orkut,Google Maps,Google Earth和Blogger等,而且在Google内部至少运行着500个BigTable集群。
下一代的BigTable
随着Google内部服务对需求的不断提高和技术的不断地发展,导致原先的BigTable已经无法满足用户的需求,而Google也正在开发下一代BigTable,名为“Spanner(扳手)”,它主要有下面这些BigTable所无法支持的特性:
- 支持多种数据结构,比如table,familie,group和coprocessor等。
- 基于分层目录和行的细粒度的复制和权限管理。
- 支持跨数据中心的强一致性和弱一致性控制。
- 基于Paxos算法的强一致性副本同步,并支持分布式事务。
- 提供许多自动化操作。
- 强大的扩展能力,能支持百万台服务器级别的集群。
- 用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。
分享到:
相关推荐
3. **Bigtable数据模型详解** - **Row Key(行键)**:用于唯一标识一条记录的关键字,通常是字符串形式。例如,在课程中给出的例子中,“UserID”即为行键。 - **Column Family(列族)**:列族是一组列的集合,...
在云计算领域,Google无疑是引领潮流的巨头之一,其在2000年代初期发表的三篇论文——"The Google File System"(GFS)、"MapReduce: Simplified Data Processing on Large Clusters"和"Bigtable: A Distributed ...
云计算系统中Key-Value数据管理研究这篇文献主要围绕云计算环境下的关键值(Key-Value)数据存储系统展开,探讨了其数据模型、读写方式、索引机制和查询操作。内容涵盖了大数据管理技术的核心组成部分,并对NoSQL...
资源分类:Python库 所属语言:Python 资源全名:google-cloud-bigtable-0.23.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
3. **动态控制**:用户可以自定义数据的位置相关性,从而优化查询效率。 #### 四、Bigtable的核心概念 - **数据模型**:Bigtable是一种稀疏的、分布式的、持久化的多维排序Map。其键值对由行键(row key)、列键...
Google-Bigtable中文版_1.0.zip
分布式表格系统-Bigtable是Google开发的一个用于管理大规模结构化数据的分布式存储系统。...同时,了解与Bigtable相关的其他Google技术,如GFS和Chubby,也有助于深入理解整个Google云计算基础设施的运作方式。
在IT行业中,Google的"三驾马车"——Google File System (GFS)、BigTable和MapReduce,是大数据处理领域的重要里程碑。这三项技术分别解决了大规模数据存储、分布式计算和数据管理的关键问题,为互联网时代的海量...
这些都是由Google公司开发并应用于其大规模数据处理的核心技术,对现代云计算和大数据处理有着深远的影响。 Google Bigtable是一个分布式存储系统,设计用于处理海量结构化和半结构化数据。它是一种NoSQL数据库,...
3. **SSTable和Memtable**:BigTable将数据持久化存储为SSTable(Sorted String Table),这是一种磁盘上的键值对存储格式。内存中的数据则存储在Memtable中,当Memtable达到一定大小时,会被写入到SSTable并清空。 ...
**关系型数据库**经过优化以适应云计算,而**NoSQL**数据库如BigTable和Cassandra,则为处理非结构化和大规模数据提供了解决方案。大多数IaaS服务,如Amazon的EC2,基于Xen虚拟化技术提供计算资源。 最后,**管理层...
Hadoop创始人Goug Cutting根据这三篇论文开发出Hadoop中的HDFS,MapReduce,以及Yarn。三篇论文是Hadoop大数据的开端,可以说Google是Hadoop的思想之源。可以根据这三篇论文去了解底层源码。
- MapReduce、Chubby和BigTable是Google云计算平台的一部分,而EC2属于Amazon的云计算服务。 21. GFS特点: - GFS采用中心服务器模式,不采用边缘服务器模式,且数据不缓存在客户端。 22. GFS实现原因: - 在...
3. **云计算实现机制** - 系统管理模块在IaaS中扮演关键角色,负责负载均衡、节点状态监控、环境配置等任务。 - 管理中间件层则负责资源、任务、用户管理和安全等管理工作。 4. **Google云计算平台技术** - ...
We have designed and implemented the Google File Sys- tem, a scalable distributed file system for large distributed data-intensive applications. It provides fault tolerance while running on ...
3. **云计算部署模式**: - 公有云:服务由第三方提供商运营,对公众开放。 - 私有云:专为单一组织构建和管理,可以是内部或由外部第三方托管。 - 混合云:结合公有云和私有云,提供更大的灵活性和数据迁移选项...
标题中的 "cloud-bigtable-client" 是 Google 提供的一个 Java 客户端库,专门用于与 Cloud Bigtable 进行交互。这个客户端扩展了 HBase 的功能,使得开发人员能够利用 HBase 的 API 来操作 Cloud Bigtable,从而...
PPT之四《第2章 Google云计算原理与应用(三)》深入剖析了Google云计算的核心技术,包括MapReduce分布式计算模型、Bigtable大规模数据存储系统以及GFS分布式文件系统。这部分内容帮助读者理解Google如何利用云计算...
资源来自pypi官网。 资源全名:google_cloud_bigtable-0.23.1-py2.py3-none-any.whl