Cloud Spanner是Google Megastore系统的继承者,Spanner表现出远超前辈的能力。Spanner首次是在Google内部数据中心中出现,而在2017年才对外发布测试版并加入了SQL能力。如今已经在Google云平台上架并拥有大量各个行业的用户。Cloud Spanner数据库是全球范围 分布式 的 关系型/事务 数据库,并且Google承诺Cloud Spanner拥有高吞吐量、低延迟和99.999%的高可用性。
接触Cloud Spanner
第一次接触到Google Cloud Spanner是因为客户对于新技术的追求与尝试,将我们基本完成的APIs从原先的Google Cloud Sql迁移到Cloud Spanner数据库上。在做这个决定的时候,客户考虑到当时公司用户数量处于激增的阶段,业务也在不断进行更改,所以需要对表结构也进行更改来满足业务的需求。于是便决定使用Google Cloud Spanner来保证数据的ACID(原子性、一致性、隔离性和持久性)的前提下仍然可以对数据库进行水平拓展和分布式操作。
选择Cloud Spanner
和主流的云服务关系数据库相比,例如AWS的Aurora、GCP的Cloud SQL和Azure的SQLDB,这些数据库并没有实现在多节点上进行扩展的功能,只能在单个节点上进行垂直扩容(增加RAM或CPU数量)。
如果想要实现水平扩容,可以使用NoSQL数据库,例如HBase、MongoDB、DynamoDB或BigTable。但是这些数据库很难做到事务的特性,并且不能支持关系型数据库所支持的功能,例如连表等。并且因为NoSQL的查询语句和关系型数据库的语句区别很大,会导致应用中大量的查询语句和表结构需要重写。
而Cloud Spanner区别于这些数据库服务,是一种独特的数据库。它将事务,SQL查询和关系结构与NoSQL数据库的可伸缩性相结合。因此Cloud Spanner同时具备SQL和NoSQL数据库结构的优点。在最初的时候,Cloud Spanner是被设计为NoSQL的键值对的方式存储,但随着其对关系模型的需求被添加后,Cloud Spanner逐渐打破了NoSQL和SQL数据库之间的壁垒。
特性
作为分布式数据库
每一个Spanner的实例都是在不同数量的节点上运行的,每一个节点都是由Google云平台服务去自动管理的。因此,Cloud Spanner拥有很高的可扩展性&#