我是GCP堆栈的新手,所以我对存储数据的大量GCP技术感到困惑:
https://cloud.google.com/products/storage
虽然上面的文章中没有提到谷歌云扳手,但我知道它是存在的,iti用于数据存储:https://cloud.google.com/spanner
从我目前的观点来看,我看不出云sql(在引擎盖下有postgres(和云扳手之间有任何显著的区别。我发现它有一点不同的语法,但它没有回答我什么时候应该更喜欢这种技术而不是spring-cloud-sql。
你能解释一下吗?
p.S.
我认为springcloud-sql是一个由谷歌管理的具有自动复制和水平可扩展性的传统数据库。
它们在做什么(将数据存储在表中(方面没有太大区别。不同之处在于他们如何在小型和大型中处理数据
当您需要以更高的一致性级别和大量的数据处理(每秒+100000次读/写(来处理大量数据时,可以使用Cloud Spanner。Spanner提供了更好的可扩展性和更好的SLO。
另一方面,Spanner也比Cloud SQL贵得多。
如果你只是想以一种廉价的方式存储客户的一些数据,但仍然不想面对服务器配置,那么云SQL是正确的选择。
如果你计划创建一个大产品,或者如果你想为你的应用程序(病毒式游戏/应用程序(的用户大幅增加做好准备,扳手是合适的产品。
您可以在这篇官方论文中找到有关Cloud Spanner的详细信息
Cloud Spanner和Cloud SQL的主要区别在于横向可扩展性+超过10TB的数据的全局可用性。
Spanner不适合一般的SQL需求,Spanner最适合用于大规模的机会。每秒1000次全局写入。10000秒-每秒100000秒的全局读取。
如果不进行复杂的数据库分片,使用NORMAL SQL/MMySQL很难实现上述卷。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在谷歌内部解决的一个大问题。
我想在前面的回答中补充一点,云SQL提供MySQL、PostgreSQL或SQL Server的托管实例,并相应地支持SQL。如果您从不同位置的MySQL数据库迁移,那么不必更改查询可能是一个巨大的优势。
Spanner有自己的SQL方言,尽管最近增加了对PostgreSQL方言子集的支持。