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

What's the difference between Google Cloud Spanner and Cloud SQL?

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

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

虽然google cloud spanner在上面的文章中没有提到我知道它是存在的并且iti用于数据存储:https://cloud.google.com/spanner

从我目前的观点来看,我没有看到云 sql(在引擎盖下有 postgres)和云扳手之间有任何显着差异。我发现它的语法有点不同,但当我更喜欢这种技术而不是 spring 云 sql.

时,它没有回答

你能解释一下吗?

P.S.

我认为 spring 云 sql 是一种传统数据库,具有自动复制和水平扩展性,由 google 管理。

它们在做什么(将数据存储在表中)方面没有太大区别。区别在于他们如何处理小规模和大规模的数据

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

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

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

如果您打算创建一个大型产品,或者如果您想要为您的应用程序(病毒式 games/applications)的大量用户增加做好准备,Spanner 是合适的产品。

您可以在此 official paper

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

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

Spanner 不适用于一般 SQL 需求,Spanner 最适合用于大规模机会。全球每秒 1000 次写入。 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/

前面的回答是正确的,Spanner 的主要优点是可扩展性和可用性。虽然您可以使用 Cloud SQL 进行扩展,但写入吞吐量存在上限,除非您进行分片——根据您的用例,这可能是一个重大挑战。处理分片 SQL 是 Spanner 在 Google.

内解决的大问题

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

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