NewSQL中的Google Spanner是如何工作的

当公司开始在网络规模上构建应用程序并需要服务来扩展全球数以百万计的请求时,很快就会发现关系数据库运行得不够好。

因此,像亚马逊和谷歌这样的公司建立了自己的公司,可以为这些请求提供服务,但关系数据库不能满足这一类的需求。因此,NoSQL是类似数据库的替代品的集合,它不使用SQL并丢弃事务和参照完整性。

在摆锤摆回关系时,NoSQL数据库并没有消失。这是因为它们已被证明是有用的,无论是为了解决规模访问问题,还是因为它们的一些数据模型已经解决了比创建更多的问题。

文档数据库使编程语言和数据模型之间的数据不匹配比以前的解决方案(如对象关系映射)更容易克服。图表数据库在存储数据网络方面要比关系数据库更加高效,因为它们已经成为数据分析的主要部分。

尽管如此,许多程序员和数据建模者都渴望关系模型的模糊性。一些事情必须发生,而NewSQL的诞生就是一件事情。

NewSQL中的Google Spanner是如何工作的?

Google的Spanner就是这样一个NewSQL数据库。它承诺可以在全球范围内扩展的关系数据库模型,使您的数据在任何地方即时可用。

在其他地方已经有文档记录了软件如何轻松扩展并仍然可以实现关系的原因,但这完全取决于使用原子钟以及Google拥有和管理自己的网络的事实。时钟保持正确顺序的交易,而Google的网络却保证不会有分区,因此全球一致性没有问题。

听起来不错,但想要分一杯羹的普通人不能仅仅掌握软件并建立一个Spanner机器网络。是的,您可以设置原子钟(如果您知道自己在做什么),并可能设法让它们保持同步,因为讨厌的相关性妨碍了一些烦人的事情,但建立并拥有一个可靠的Google网络可能超出了所有大公司的能力。

如果您想与Spanner一起玩,您需要一个Google Cloud Platform帐户。

如果你以前从未使用过它,但如果熟悉Azure或AWS的话,很快你就会发现其实并不难。当然有不同之处,但没有什么阻碍。我发现在笔记本电脑上设置Google云相对容易,特别是在机器上安装了云SDK之后。

设置Spanner实例也很简单。只需创建一个新实例,选择它是区域还是多区域,以及您需要的节点数量。如果它是多区域的,你的数据库将跨越全球。但是要小心节点的成本会相当快地增长,特别是如果您选择多区域配置。我发现测试扳手很快就耗尽了我的教育帐户。

关于设置数据库和配置表格有一个好消息。使用图形界面或在文本窗口中输入SQL命令都非常简单。Google还提供各种语言(Python,Java,C#,Go,Node,PHP和Ruby)的演示程序,这些语言很容易理解,并且能够立即启动并运行您的应用程序。但是,您会发现虽然这是SQL,但并不像您期望的那么丰富。例如,创建表时没有“IF EXISTS”,数据类型范围有限。然而,Spanner有一个数组类型来存储值的集合,你会发现不同于Postgres的用法。

  • 发表于:
  • 原文链接:http://www.theregister.co.uk/2018/03/12/introduction_to_google_spanner

扫码关注云+社区

领取腾讯云代金券