还纠结选传统 DB 或 NoSQL?谷歌新产品 Cloud Spanner 让你鱼和熊掌兼得

Posted 数据分析与开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了还纠结选传统 DB 或 NoSQL?谷歌新产品 Cloud Spanner 让你鱼和熊掌兼得相关的知识,希望对你有一定的参考价值。


top.jobbole.com/36257/


【伯乐在线导读】:2月14日,Cloud Spanner 产品经理 Deepti Srivastava 在谷歌云平台官博发文,宣布 Cloud Spanner 正式开始公开测试。


Cloud Spanner 是一个采用全局分布式架构的关系数据库服务,它使得客户做到鱼和熊掌兼得。也就是,既能实现ACID事务和SQL语义,同时还不牺牲数据库的水平扩展性和高可用性。




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


“Cloud Spanner对全球的数据库产品零售商、生厂商以及批发商展现出了惊人的价值。拥有如此简易的扩展能力,我们将有能力向我们全球的客户提供全渠道的云解决方案链。”—— John Sarvari(JDA集团技术副总裁)如此说道。


JDA是一家软件零售商,也是软件供应链的领导者。他们在2015年之前一直使用Google Cloud Platform (GCP)作为新产品研发的基础,同时他们也是Cloud Spanner最早的用户。JDA认为,诸如“物联网”等新生信息源必将产生巨大的数据爆炸,而Cloud Spanner则有潜力处理这样的数据规模,并同时保障数据的一致性和高可用性。


Cloud Spanner 同 GCP、Cloud SQL、Cloud Datastore、Cloud Bigtable一起,丰富了我们数据库服务的能力。


作为一个可控的服务,Cloud Spanner给DBA提供了下列重要福利:


  • 让DBA把宝贵的精力专注于业务逻辑上,而不是用于处理各种软件或硬件问题;


  • 使得DBA不用执行复杂的分片或者集群操作,就可以实现对RDBMS解决方案的扩展;


  • DBA不用把关系数据库迁移到NoSQL数据中,也能获得数据的水平扩展能力;


  • DBA无需复杂的数据备份或失效援备机制,即可维护数据的高可用性,以及具备对数据的灾备恢复能力;


  • 将安全性与数据层加密,身份验证,接入管理,日志审核等功能进行整合。


有了Cloud Spanner,你可以对数据库的规模按照需求来扩展和缩小,然后你只需要按照使用规模来付费即可。Spanner Cloud的特色之一就是提供了一个简洁的收费模式,可通过计算节点使用的小时数,实际存储消耗(而不是预估存储消耗)以及外部网络接入等指标来计算费用。


Cloud Spanner力图保持应用开发的简洁性,支持开发者们熟知的关系数据库环境、工具和语言。因此它对那些通过传统关系数据库来的驱动的应用作业(如装备管理,金融事务,控制系统,以及那些规模快速增长的系统)是非常理想的。Cloud Spanner同时还数据线了分布式事务,Scheme和DDL声明,SQL查询和JDBC驱动等功能,并且支持多种主流语言,如Java,Go,Python,Node.js等。


更多来自Spanner用户的反馈


Quzilet是一个在线学习工具平台,每个月有两千万师生通过该平台进行教学和学习活动。该平台使用mysql作为主数据库;数据库性能和稳定性对于该平台的业务来说至关重要。由于用户量在一年之内增长了50%,Quizlet因为负载原因不得不面临多次调整数据库规模的局面。通过垂直分片,以及读写分离等手段,Quizlet成功地提高了系统的查询能力——但是上述技术很快又达到了极限,因为表的容量增长太快,很快又超出了单个MySQL分片的处理能力。为了寻求更高的扩展架构,Quizlet发现了Cloud Spanner。Cloud Spanner降低了Quizlet扩展关系数据库的难度,并把应用变得更加简单:


“根据我们以往的经验以及性能测试的结果,Cloud Spanner是我们在高可扩展性关系数据库方面当仁不让的选择。因为它实现了NoSQL数据库的性能和扩展性,同时还能像关系数据库一样执行SQL,所以这是我们用来替代MySQL共享数据库的可行选择。Cloud Spanner彻底改变了我们在云端管理数据库的方式,真是一项令人印象深刻的技术。” ——Peter Bakkum(Quizlet平台总监)


Spanner历史回顾


几十年以来,开发者们都依赖关系数据库和关系数据库模型,以及用SQL语义来构建应用,满足软件需求。近来,NoSQL的出现则让我们看到了扩展性和高性能,以及数据处理效率方面的优势,不过NoSQL无法绝对保证数据的一致性。面对着这种难以两全的选择,2007年,Google的一队系统研究员和工程师开始着手研究如何构建全局-分布式数据库,旨在兼顾两方面的优势。2012年,我们发布了一篇Spanner研究论文,描述了我们在这方面的多项创新成果。结果就是,我们做出了一个能够兼顾两种优势的数据库:


更厉害的是,Cloud Spanner在做到兼顾优势的同时,并没有违反CAP理论。


多年以来,我们用非常严苛的标准在内部测试 Spanner,使用上百个不同的应用和全球数据中心PB级别的数据进行测试。在Google,Spanner支持每秒千万级别的查询,并支撑着多项我们最重要的服务,包括AdWords和Google Play。


如果你在使用的MySQL或PostgreSQL系统就快要被负载撑爆了,或者对最终一致性数据库的事务焦头烂额的话,Cloud Spanner就是你的救星。你可以访问Cloud Spanner页面,了解更多关于”如何开始在次世代数据库服务上构建应用”的信息。



觉得本文有帮助?请分享给更多人

关注「数据库开发」,提升数据库开发技术

以上是关于还纠结选传统 DB 或 NoSQL?谷歌新产品 Cloud Spanner 让你鱼和熊掌兼得的主要内容,如果未能解决你的问题,请参考以下文章

谷歌应用引擎中 db 和 ndb 的优缺点

europass db 结构关系或 noSql

选择哪个 NoSQL 数据库再也不用纠结了

通过新产品,MongoDB将NoSQL数据库打入企业市场

贝宝/谷歌结帐或替代帮助?

NoSQL浅析