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

gst*_*low 15 google-cloud-sql google-cloud-platform google-cloud-spanner spring-cloud-gcp

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

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

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

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

你能解释一下吗?

聚苯乙烯

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

Chr*_*s32 19

就它们所做的(将数据存储在表中)而言,它们之间没有太大区别。不同之处在于他们如何处理小规模和大规模的数据

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

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

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

如果您打算创建一个大产品,或者如果您想为您的应用程序(病毒游戏/应用程序)的用户大幅增加做好准备,Spanner 是正确的产品。

您可以在这篇官方论文中找到有关 Cloud Spanner 的详细信息

  • [SLO(服务级别目标)](https://cloud.google.com/blog/products/gcp/sre-fundamentals-slis-slas-and-slos)它基本上是产品的可靠性。SLA(服务级别协议)是您可以从产品中获得的最低服务的折衷方案。[对于 Spanner](https://cloud.google.com/spanner/sla) 为 >= 99.999% 每月。[对于 Cloud SQL](https://cloud.google.com/sql/sla) 为 > 99.95% 每月 (2认同)

gru*_*uby 12

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/

  • “全局可用” => 如果 GCP 服务具有最低延迟且可支持超过 10TB 的数据,则可以在不同区域使用同一数据库 (2认同)

oza*_*gds 5

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