Google Cloud Spanner 究竟是什么?
谷歌于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 究竟是什么?的更多相关文章
- google cloud storage products
https://cloud.google.com/products/storage/ BigTable Cloud Bigtable 是 Google 面向大数据领域的 NoSQL 数据库服务.它也是 ...
- 对Google cloud platform 做了点研究
Google也推出了云计算基础服务, 加上微软Azure,亚马逊AWS, 都齐活了. 下面是研究了一下对其的一个初步了解. 计算: Compute Engine IaaS平台,提供VM,操作灵 ...
- Getting Started(Google Cloud Storage Client Library)
在运行下面的步骤之前,请确保: 1.你的项目已经激活了Google Cloud Storage和App Engine,包括已经创建了至少一个Cloud Storage bucket. 2.你已经下载了 ...
- Activating Google Cloud Storage
先决条件 你需要下面的内容: 1.一个Google账户,比如来自Gmail.如果你没有,请在Google account signup site注册. 2.一个新的或已经存在的Google Devel ...
- Downloading the Google Cloud Storage Client Library
Google Cloud Storage client是一个客户端库,与任何一个生产环境使用的App Engine版本都相互独立.如果你想使用App Engine Development server ...
- Java Client for Google Cloud Storage
关于Google Cloud Storage Google Cloud Storage有益于大文件的存储与服务(serve).此外,Cloud Storage提供了对访问控制列表(ACLs)的使用,提 ...
- 使用GCM服务(Google Cloud Messaging)实现Android消息推送
最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...
- 使用 PUTTY 操作 Google Cloud
目的: 使用putty连接Google Cloud 实例. 总说: 首先要用 PuTTYgen生成 private key 和 public key, 之后 登录Google Cloud 将生成的 ...
- 使用Google Cloud Platform构建机器学习项目-宠物识别
宠物识别我们使用到了tensorflow object-detection API (https://github.com/tensorflow/models/tree/master/researc ...
- CRT工具远程登陆Google Cloud远程ssh登录方法
首先使用Google Cloud SSH连接上去:1.切换到 rootsudo -i12.编辑ssh配置文件vi /etc/ssh/sshd_config13.修改以下内容即可PermitRootLo ...
随机推荐
- .NET性能优化-是时候换个序列化协议了
计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展.不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式.横向的扩容系统,这听起来非常的 ...
- 记录一次Oracle导入数据库失败的解决办法,最终报错:UDI-04045、ORA-04045、ORA-01775
费了很大的工夫,终于解决了.做个记录. ******************************************************************************** ...
- 工作中,本人常用到的unzip、zip命令
1. 命令安装 1.1 zip安装 yum install zip 1.2 unzip安装 yum install unzip 2. 常用命令 2.1 常用zip命令 2.1.1 压缩文件 zip x ...
- DHorse系列文章之镜像制作
DHorse系列文章之镜像制作 制作镜像常用的工具 使用Docker制作镜像 1.使用docker commit制作 该命令使用比较简单,可以自行网上搜索教程. 2.使用Dockerfile制作 这种 ...
- 关于C++ find
#include <bits/stdc++.h> using namespace std; int a[1005]; int main() { for(int i = 0;i < 1 ...
- linux 使用ACR122U-A9设备读写M1卡
前言 很久之前我在windows用过这个ACR122U-A9设备, 还挺好用,但是换了linux后,突然想又想用这个设备又是一顿折腾- 关于这个设备 其实这个设备只能读取M1卡(水卡这种),当时什么都 ...
- 【zookeeper】Zookeeper相关概念、重难点(myid)、语法、使用、工具
1234567890 1请按照我是想额度插入fvtgb6yhn7ujm8ik,9ol.
- 【每日一题】【集合增删】2022年1月13日-NC41 最长无重复子数组-220113/220122
描述 给定一个长度为n的数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同. 子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1 ...
- 看完这篇,还不懂JAVA内存模型(JMM)算我输
欢迎关注专栏[JAVA并发] 更多技术干活尽在个人公众号--JAVA旭阳 前言 开篇一个例子,我看看都有谁会?如果不会的,或者不知道原理的,还是老老实实看完这篇文章吧. @Slf4j(topic = ...
- latex 中添加Springer LNCS 模板的\bibitem{}格式参考文献方法
1.将需要引用的参考文献新建为.bib格式,例如referencesTest.bib文件,具体如下: 新建txt文件,后缀名改为.bib: 然后打开谷歌学术,搜索参考文献, 点击导入BibTeX,具体 ...