谷歌于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. Three.js中加载外部fbx格式的模型素材

    index.html部分: index.js部分: Scene.js部分:

  2. Linux下MMDetection环境配置

    1. 准备工作 Linux发行版. Pop!_OS 22.04 LTS (NVIDIA) (Ubuntu衍生) 对Linux进行配置,更改国内镜像源. 安装conda环境. 官网下载安装脚本(bash ...

  3. 将Oracle数据库迁移到达梦数据库

    公司某产品在项目现场上常用到的数据库有Oracle和达梦. 做性能测试需要根据项目现场预埋大量的基础数据和业务数据,耗费时间.精力.故完成Oracle数据库的性能测试之后,采用直接将Oracle数据库 ...

  4. 使用@Transactional注解的方法所在的类获取不到注解的解决方案

    前段时间遇到一个问题,一个service叫做A吧,有多个实现类分别是B,C,D,需要根据前端传的不同参数去匹配不同的实现类,我就自定义了一个注解@OrderDeal放在B,C,D上面,然后匹配前端传的 ...

  5. Go语言核心36讲26

    你好,我是郝林.今天我分享的主题是测试的基本规则和流程的(下)篇. Go语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本 ...

  6. Python: 对程序做性能分析及计时统计

    1.对整个程序的性能分析 如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了. (base) ➜ Learn-Python time python someprogram. ...

  7. MISC中需要jio本处理的奇怪隐写

    好耶! 老样子,还是以ctfshow[1]中misc入门中的题目为切入点 感兴趣的同学可以一边做题一边看看.呜呜,求点浏览量了 APNG隐写(MISC40) APNG是普通png图片的升级版,他的后缀 ...

  8. linux开机进入grub rescue界面修复

    一.先输入ls回车,查看显示内容 如: (hd0) (hd0,msdos1) (hd0,msdos2)... 二.然后找出哪个盘安装了系统 ls (hd0,msdos1)/boot/grub/ ls( ...

  9. 这玩意也太猛了!朋友们,我在此严正呼吁大家:端好饭碗,谨防 AI!

    你好呀,我是歪歪. 最近几天大火的 ChatGPT 你玩了吗? 如果你不知道它是个什么东西,那么我让它给你来个自我介绍: 说白了,就是一个可以对话的人工智能. 我开始以为就是一个升级版的"小 ...

  10. Semaphore信号量源码解析(基于jdk11)

    目录 1.Semaphore信号量源码解析(基于jdk11) 1.1 Semaphore概述 1.2 Semaphore的原理 1.2.1 基本结构(jdk11) 1.2.2 可中断获取信号量 1.2 ...