Google Cloud Spanner 和 Cloud SQL 有什么区别?

问题描述 投票:0回答:4

我是 GCP 堆栈的新手,所以我对列出的几种用于存储数据的技术感到非常困惑:

https://cloud.google.com/products/databases

具体来说,我对 Cloud SpannerCloud SQL 之间的差异感兴趣。

从我目前的观点来看,我没有看到 Cloud SQL(底层带有 postgres)和 Cloud Spanner 之间有任何显着差异。我发现它的语法有点不同,但它没有回答我什么时候应该更喜欢这项技术而不是 spring cloud sql。

您能解释一下吗?

附注

我认为 Spring Cloud SQL 是一个由 google 管理的具有自动复制和水平可扩展性的传统数据库。

google-cloud-platform google-cloud-sql google-cloud-spanner spring-cloud-gcp
4个回答
52
投票

它们在所做的事情(将数据存储在表中)方面没有太大区别。不同之处在于他们处理小规模和大规模数据的方式

当您需要处理大量数据并提高一致性和大量数据处理(每秒+100,000 次读/写)时,可以使用 Cloud Spanner。 Spanner 提供了更好的可扩展性和更好的 SLO。

另一方面,Spanner 也比 Cloud SQL 贵得多。

如果您只是想以便宜的方式存储客户的一些数据,但又不想面对服务器配置,Cloud SQL 是正确的选择。

如果您计划创建一个大型产品,或者您希望为您的应用程序(病毒式游戏/应用程序)的用户大幅增加做好准备,那么 Spanner 是正确的产品。

您可以在这篇官方论文

中找到有关Cloud Spanner的详细信息

32
投票

Cloud Spanner 和 Cloud SQL 之间的主要区别在于水平可扩展性+超过 10TB 数据的全局可用性。

Spanner 不适用于一般 SQL 需求,Spanner 最适合大规模机会。全球每秒写入数千次。全球范围内每秒读取 10,000 - 100,000 次。

如果不进行复杂的数据库分片,使用 NORMAL SQL / MySQL 很难实现上述容量。 Spanner 处理所有这些并允许 ACID 更新(这对于分片数据库来说基本上是不可能的)。他们通过超精确的时钟来管理冲突来实现这一目标。

简而言之,Spanner 不是针对 CRM 数据库,它更多的是针对组织内的海量全球数据。而且由于 Spanner 有点贵(与云 SQL 相比),因此项目应该足够大,以证明 Spanner 的额外成本是合理的。

您还可以关注 Reddit 上的这一讨论(很好的讨论!):https://www.reddit.com/r/googlecloud/comments/93bxf6/cloud_spanner_vs_cloud_sql/e3cof2r/


5
投票

之前的答案是正确的,Spanner的主要优点是可扩展性和可用性。虽然您可以使用 Cloud SQL 进行扩展,但写入吞吐量存在上限,除非您进行分片——这可能是一个重大挑战,具体取决于您的用例。处理分片 SQL 是 Spanner 在 Google 内部解决的大问题。


2
投票

我想在之前的答案中补充一点,Cloud SQL 提供 MySQL 或 PostgreSQL 或 SQL Server 的托管实例,以及对 SQL 的相应支持。如果您从不同位置的 MySQL 数据库迁移,则不必更改查询可能是一个巨大的优势。

Spanner 有自己的 SQL 方言,尽管最近添加了对 PostgreSQL 方言子集的支持。

© www.soinside.com 2019 - 2024. All rights reserved.