谷歌于2017年推出的Google Cloud Spanner,原是谷歌内部使用的一个数据服务,后来又成为了谷歌云平台上搭建的数据库服务。

Google Cloud Spanner 是一种数据库,它结合了传统关系数据库管理系统 (RDBMS) 和 NoSQL 服务的功能。这种组合带来了关系数据库的优势,包括原子性、一致性、隔离性、持久性 (ACID) 事务、关系模式和 SQL 查询。同时,与 NoSQL 类似,它可以横向扩展到数百台服务器以处理事务性工作负载。云平台提供自动伸缩、同步数据复制和节点冗余。

当我们在构建基于云的应用程序时,DBA 和开发者常常必须要在传统数据库(保证事务一致性)和 NoSQL 数据库(提供简洁的数据库水平扩展性和分布式能力)中做出选择。Cloud Spanner则做到了兼顾,在一个完全可控的服务范围内,实现了以上的要求。

Cloud Ace是亚太地区拥有最多据点的Google Cloud经销商,拥有200多名工程师,是谷歌最高级别合作伙伴,多次获得Google Cloud合作伙伴奖。

作为谷歌托管服务商,提供谷歌云、谷歌地图、谷歌Workspace、谷歌云认证培训服务。

Cloud Spanner 特性为:

·强一致性的横向扩展RDBMS集群:使用硬件辅助的时间同步来实现数据一致性。

·支持跨表交易:可以跨越多个表交易--不必局限于一个表(与Apache HBase或Apache Kudu不同)。
主键设计驱动的表:所有的表必须有一个声明的主键(PK),它可以由多个表列组成。表的数据按PK顺序存储,这使得PK查询非常有效和快速。像其他基于PK的系统一样,实施时需要谨慎建模,并考虑到目标用例,以达到最佳性能。
·交错表:表之间可以有物理依赖关系。子表的行可以与父表的行搭配在一起。这种方法加快了可以在数据建模阶段定义的关系的查询,例如,客户和他们的发票的搭配。
·索引:Cloud Spanner支持二级索引。一个索引由索引列和所有PK列组成。当然,一个索引也可以包含其他非索引的列。索引可以与父表交错使用,以加快查询速度。有几个限制适用于索引,比如索引中存储的额外列的最大数量。另外,通过索引进行查询可能不像在其他RDBMS中那样直接。
·服务水平协议(SLA):单区域部署的SLA为99,99%;多区域部署的SLA为99.999%。

Cloud Spanner的优势
Google Cloud Spanner的杀手锏是它能够在全球和 "交易 "一致的关系型数据上运行SQL,并且能够在数据中心和地区之间进行水平扩展(或跨越)。其他可横向扩展的数据库确实存在,但它们不容易运行SQL,而SQL是处理巨大数据流的交易和报告系统的支柱。虽然任何向新技术的迁移都需要平台的重新设计,但Spanner的优势在于熟悉SQL和关系数据模型,同时享有系统的互联和可扩展性,可以在全球范围内根据容量需求的变化进行扩大和缩小。例如,随着交易场所的开放和关闭,额外的服务器可以在需要时自动上线或关闭,而这是固定的、成熟的Oracle和SQL服务器系统所无法做到的。这就是 "弹性云 "在实践中的承诺。

Cloud Spanner的优势如下:

·大大降低了复杂性
·大大降低了成本
·显著减少管理费用,提高敏捷性
·显著提高可用性和可靠性
·在巨大的数据集上提供高级分析的能力

Cloud Spanner的应用场景
Cloud Spanner是为了大规模的数据而生的产品,Spanner拥有高可用性、数据分布、巨大的可扩展性,使得它可以处理复杂且大量的数据,比如说游戏数据。

任何可以交易、出售、赠送或以其他方式从一个玩家转移到另一个玩家的游戏内货币或物品都对大型游戏后端提出了挑战。通常,游戏的流行程度可以超过传统数据库处理单节点数据库中所有内容的能力。根据游戏的类型,数据库可能会遇到处理玩家负载所需的操作数量以及存储数据量的问题。这通常会导致游戏开发人员将他们的数据库分片以提高性能,或者存储不断增长的表。这种类型的解决方案会导致操作复杂性和高维护开销。

Cloud Spanner可以简化库存和交易系统,其强大的可扩展性和地理分布同步可以实现全球几十亿用户的服务器后端数据加载和分发问题。

除了游戏外,Cloud Spanner还适合零售行业、金融行业和社交软件等在全球范围内拥有庞大的用户群体的行业,利用Cloud Spanner的大型可扩展性数据库服务,实现数据的扩展,同时保证其高可用性和自动化。

目前已有Uber、SnapChat、Lucille Game等大型平台使用了Cloud Spanner,Lucille game的创始人表示:“Google Cloud Spanner 有一种关系数据库的感觉,您可以在其中轻松创建表之间的关系并快速提取您需要的信息。同时,它像 Google Cloud Datastore 一样横向扩展,因此我们可以添加大量数据而无需使事情过于复杂。”

Google Cloud Spanner 究竟是什么?的更多相关文章

  1. google cloud storage products

    https://cloud.google.com/products/storage/ BigTable Cloud Bigtable 是 Google 面向大数据领域的 NoSQL 数据库服务.它也是 ...

  2. 对Google cloud platform 做了点研究

    Google也推出了云计算基础服务, 加上微软Azure,亚马逊AWS, 都齐活了. 下面是研究了一下对其的一个初步了解. 计算: Compute Engine     IaaS平台,提供VM,操作灵 ...

  3. Getting Started(Google Cloud Storage Client Library)

    在运行下面的步骤之前,请确保: 1.你的项目已经激活了Google Cloud Storage和App Engine,包括已经创建了至少一个Cloud Storage bucket. 2.你已经下载了 ...

  4. Activating Google Cloud Storage

    先决条件 你需要下面的内容: 1.一个Google账户,比如来自Gmail.如果你没有,请在Google account signup site注册. 2.一个新的或已经存在的Google Devel ...

  5. Downloading the Google Cloud Storage Client Library

    Google Cloud Storage client是一个客户端库,与任何一个生产环境使用的App Engine版本都相互独立.如果你想使用App Engine Development server ...

  6. Java Client for Google Cloud Storage

    关于Google Cloud Storage Google Cloud Storage有益于大文件的存储与服务(serve).此外,Cloud Storage提供了对访问控制列表(ACLs)的使用,提 ...

  7. 使用GCM服务(Google Cloud Messaging)实现Android消息推送

    最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...

  8. 使用 PUTTY 操作 Google Cloud

    目的: 使用putty连接Google Cloud 实例. 总说: 首先要用  PuTTYgen生成 private key  和 public key, 之后 登录Google Cloud 将生成的 ...

  9. 使用Google Cloud Platform构建机器学习项目-宠物识别

    宠物识别我们使用到了tensorflow object-detection API  (https://github.com/tensorflow/models/tree/master/researc ...

  10. CRT工具远程登陆Google Cloud远程ssh登录方法

    首先使用Google Cloud SSH连接上去:1.切换到 rootsudo -i12.编辑ssh配置文件vi /etc/ssh/sshd_config13.修改以下内容即可PermitRootLo ...

随机推荐

  1. vue中动态引入图片为什么要是require, 你不知道的那些事

    相信用过vue的小伙伴,肯定被面试官问过这样一个问题:在vue中动态的引入图片为什么要使用require 有些小伙伴,可能会轻蔑一笑:呵,就这,因为动态添加src被当做静态资源处理了,没有进行编译,所 ...

  2. 转载:Python 实现百度翻译

    来源: https://blog.csdn.net/qq_44814439/article/details/105642066 作者: Chloemxc 功能: Python 实现百度翻译 from ...

  3. 二、.Net Core搭建Ocelot

    上一篇文章介绍了Ocelot的基本概念:https://www.cnblogs.com/yangleiyu/p/15043762.html 本文介绍在.net core中如何使用ocelot. Oce ...

  4. Golang 和 Python 随机生成N位字符串

    Golang: func RandomString(n int) string { var letters = []byte("ABCDEFGHIGKLMNOPQRSTUVWXYZabcde ...

  5. ubuntu生成pem证书连接服务器(已验证)

    SSH 密钥认证是什么? 与用户密码登录相比,SSH 密钥认证更安全,因为只有拥有密钥的人才能连接,并且密钥通过不同的算法进行了很好的加密.它还通过无密码登录使 SSH 连接变得简单. 这个搞两个方案 ...

  6. .Net SemaphoreSlim

    看Elsa-core源代码中看到的,Elsa-core中所有保存数据的方法似乎使用同一个Save方法.如下图: 那么为什么要使用这玩意,我还是头一次见这玩意???? 好吧,我承认我自己菜.我自个儿也该 ...

  7. [C# 中的序列化与反序列化](.NET 源码学习)

    [C# 中的序列化与反序列化](.NET 源码学习) 关键词:序列化(概念与分析)    三种序列化(底层原理 源码)    Stream(底层原理 源码)    反射(底层原理 源码) 假如有一天我 ...

  8. 随笔——安卓手机调试微信网页,x5错误页

    如果打开debugx5.qq.com提示您使用的不是x5内核 那么先打开debugmm.qq.com/?forcex5=true 再打开http://debugtbs.qq.com 将进入下面这个页面 ...

  9. i春秋Backdoor

    点开是道没有任何窗口的题,右键查看源码也没上面东西,抓包试试,也没找到什么提示性的信息,根据提示去看看敏感文件泄露是什么吧 这里找到了篇敏感文件泄露的介绍及利用方法:https://www.cnblo ...

  10. Mybatis——Plus :表与表之间的关系:1对多和多对一

    Mybatis--plus我大致整理出两种方案: 第一种:第三方mybatis-plus 插件,注解式开发 Mybatis-Plus-Relation ( mprelation ) : mybatis ...