`
isiqi
  • 浏览: 16558174 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

云计算背后的秘密(3)-BigTable

阅读更多

由于在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这个概念,使得表可以轻松地横向扩展。

BigTable Data

图1. BigTable数据模型图

在结构上,BigTable基于GFS分布式文件系统和Chubby分布式锁服务。BigTable主要分为两部分:其一是Master节点,用来处理元数据相关的操作并支持负载均衡。其二是Tablet节点,主要用于存储数据库的分片tablet,并提供相应的数据访问,同时tablet是基于名为SSTable的格式,对压缩有很好的支持。下图为其具体的架构图:

BigTable Arch

图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所无法支持的特性:

    1. 支持多种数据结构,比如table,familie,group和coprocessor等。
    2. 基于分层目录和行的细粒度的复制和权限管理。
    3. 支持跨数据中心的强一致性和弱一致性控制。
    4. 基于Paxos算法的强一致性副本同步,并支持分布式事务。
    5. 提供许多自动化操作。
    6. 强大的扩展能力,能支持百万台服务器级别的集群。
    7. 用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。
分享到:
评论

相关推荐

    北航云计算公开课04 Google Bigtable Database

    3. **Bigtable数据模型详解** - **Row Key(行键)**:用于唯一标识一条记录的关键字,通常是字符串形式。例如,在课程中给出的例子中,“UserID”即为行键。 - **Column Family(列族)**:列族是一组列的集合,...

    Google写的云计算三篇巨作:BigTable,MapReduce,Google File System

    在云计算领域,Google无疑是引领潮流的巨头之一,其在2000年代初期发表的三篇论文——"The Google File System"(GFS)、"MapReduce: Simplified Data Processing on Large Clusters"和"Bigtable: A Distributed ...

    云计算系统中Key-Value数据管理研究.pdf

    云计算系统中Key-Value数据管理研究这篇文献主要围绕云计算环境下的关键值(Key-Value)数据存储系统展开,探讨了其数据模型、读写方式、索引机制和查询操作。内容涵盖了大数据管理技术的核心组成部分,并对NoSQL...

    Python库 | google-cloud-bigtable-0.23.1.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:google-cloud-bigtable-0.23.1.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    google-bigtable中文版

    3. **动态控制**:用户可以自定义数据的位置相关性,从而优化查询效率。 #### 四、Bigtable的核心概念 - **数据模型**:Bigtable是一种稀疏的、分布式的、持久化的多维排序Map。其键值对由行键(row key)、列键...

    Google-Bigtable中文版_1.0.zip

    Google-Bigtable中文版_1.0.zip

    分布式表格系统-Bigtable1

    分布式表格系统-Bigtable是Google开发的一个用于管理大规模结构化数据的分布式存储系统。...同时,了解与Bigtable相关的其他Google技术,如GFS和Chubby,也有助于深入理解整个Google云计算基础设施的运作方式。

    GoogleFileSystem-Bigtable-MapReduce

    在IT行业中,Google的"三驾马车"——Google File System (GFS)、BigTable和MapReduce,是大数据处理领域的重要里程碑。这三项技术分别解决了大规模数据存储、分布式计算和数据管理的关键问题,为互联网时代的海量...

    Google-Bigtable中文版、Google-File-System中文版、Google-MapReduce中文版

    这些都是由Google公司开发并应用于其大规模数据处理的核心技术,对现代云计算和大数据处理有着深远的影响。 Google Bigtable是一个分布式存储系统,设计用于处理海量结构化和半结构化数据。它是一种NoSQL数据库,...

    Google三篇论文-BigTable英文版

    3. **SSTable和Memtable**:BigTable将数据持久化存储为SSTable(Sorted String Table),这是一种磁盘上的键值对存储格式。内存中的数据则存储在Memtable中,当Memtable达到一定大小时,会被写入到SSTable并清空。 ...

    云计算的架构-–-从技术角度剖析云计算-.doc.doc

    **关系型数据库**经过优化以适应云计算,而**NoSQL**数据库如BigTable和Cassandra,则为处理非结构化和大规模数据提供了解决方案。大多数IaaS服务,如Amazon的EC2,基于Xen虚拟化技术提供计算资源。 最后,**管理层...

    Google-Bigtable中文版-1.0 Google-File-System中文版 Google-MapReduce

    Hadoop创始人Goug Cutting根据这三篇论文开发出Hadoop中的HDFS,MapReduce,以及Yarn。三篇论文是Hadoop大数据的开端,可以说Google是Hadoop的思想之源。可以根据这三篇论文去了解底层源码。

    分布式系统与云计算复习资料2

    - MapReduce、Chubby和BigTable是Google云计算平台的一部分,而EC2属于Amazon的云计算服务。 21. GFS特点: - GFS采用中心服务器模式,不采用边缘服务器模式,且数据不缓存在客户端。 22. GFS实现原因: - 在...

    移动云计算导论复习资料整理.doc

    3. **云计算实现机制** - 系统管理模块在IaaS中扮演关键角色,负责负载均衡、节点状态监控、环境配置等任务。 - 管理中间件层则负责资源、任务、用户管理和安全等管理工作。 4. **Google云计算平台技术** - ...

    Google云计算经典论文 GFS BigTable MapReduce

    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 ...

    云计算与大数据处理--4.doc

    3. **云计算部署模式**: - 公有云:服务由第三方提供商运营,对公众开放。 - 私有云:专为单一组织构建和管理,可以是内部或由外部第三方托管。 - 混合云:结合公有云和私有云,提供更大的灵活性和数据迁移选项...

    cloud-bigtable-client:用于访问 Google Cloud Bigtable 的 HBase 客户端扩展

    标题中的 "cloud-bigtable-client" 是 Google 提供的一个 Java 客户端库,专门用于与 Cloud Bigtable 进行交互。这个客户端扩展了 HBase 的功能,使得开发人员能够利用 HBase 的 API 来操作 Cloud Bigtable,从而...

    云计算ppt1-20

    PPT之四《第2章 Google云计算原理与应用(三)》深入剖析了Google云计算的核心技术,包括MapReduce分布式计算模型、Bigtable大规模数据存储系统以及GFS分布式文件系统。这部分内容帮助读者理解Google如何利用云计算...

    PyPI 官网下载 | google_cloud_bigtable-0.23.1-py2.py3-none-any.whl

    资源来自pypi官网。 资源全名:google_cloud_bigtable-0.23.1-py2.py3-none-any.whl

Global site tag (gtag.js) - Google Analytics