Google Cloud database options (关于GCP数据库怎么选择)

背景

GCP提供了几种您可以从中选择的数据库服务,可是究竟该用哪个呢?

  • Cloud SQL:
  • Cloud Spanner:
  • BigQuery:
  • Cloud Bigtable:
  • Cloud Firestore:
  • Firebase Realtime Database:
  • Cloud Memorystore:

在这里插入图片描述

from Google Cloud database options

sort out by zhengkai.blog.csdn.net

关系数据库

在关系数据库中,信息存储在表、行和列中,这通常最适合于结构化数据。因此,它们被用于数据结构不经常变化的应用程序。SQL(结构化查询语言)用于与大多数关系数据库交互。它们为数据提供了ACID的一致性模式,这意味着:

  • 原子:事务中的所有操作都成功或操作被回滚。
  • 一致性:在事务完成后,数据库的结构是健全的。
  • 孤立的:事务处理之间不相互竞争。数据库调节对数据的争议访问,使事务似乎按顺序运行。
  • 持久性:应用事务的结果是永久性的,即使存在故障。

由于这些属性,关系数据库被用于需要高精度的应用程序和事务性查询,如金融和零售事务。例如:在银行业务中,当客户提出资金转移请求时,您希望确保交易是可能的,并且它实际上发生在最新的账户余额上,在这种情况下,错误或重新提交请求可能是可以的。

在谷歌云中有三个关系数据库选项:云SQL、云扳手和裸金属解决方案。

Cloud SQL:在谷歌云上提供托管的MySQL、PostgreSQL和SQL Server数据库。它降低了维护成本,并自动化了数据库配置、存储容量管理、备份和开箱即用的高可用性和灾难恢复/故障转移。由于这些原因,它最适合用于通用的web框架、CRM、ERP、SaaS和电子商务应用程序。

Cloud Spanner:Cloud Spanner(云扳手?)是一个企业级、全球分布式、且一致性强的数据库,提供高达99.999%的可用性,专门为将关系数据库结构与非关系水平规模的好处相结合而构建。它是一个独特的数据库,它将ACID事务、SQL查询和关系结构与通常与非关系或NoSQL数据库关联的可伸缩性结合在一起。因此,扳手最用于游戏、支付解决方案、全球金融账本、零售银行和库存管理等应用程序,这些应用程序需要具有强一致性和高可用性的无限扩展。

Bare Metal Solution 裸金属解决方案:提供硬件,以在谷歌云上运行专门的工作负载和低延迟。如果有一个Oracle数据库想要提升并转换到谷歌云,这一点特别有用。这使数据中心能够退役,并为遗留应用程序的现代化铺平了道路。

非关系数据库

非关系数据库(或NoSQL数据库)以非表格的形式存储复杂的、非结构化的数据,如文档。当需要组织大量复杂和多样的数据,或者数据的结构定期演变以满足新的业务需求时,通常使用非关系数据库。与关系数据库不同,它们的执行速度更快,因为查询不必访问几个表来提供答案,这使得它们成为存储可能频繁更改的数据或处理许多不同类型数据的应用程序的理想选择。例如,一个服装商店可能有一个数据库,其中衬衫有自己的文档,包含他们所有的信息,包括尺寸、品牌和颜色,以及以后添加更多参数的空间,如袖子尺寸、项圈等等。

使NoSQL数据库快速运行的品质:

通常,它们是针对特定的工作负载模式(即键值、图、宽列)进行了优化的

  • 水平缩放,通常使用范围分布或散列分布
  • 最终的一致性:许多NoSQL存储通常在以后的某个时候表现出一致性(例如,在读取时出现延迟)。然而,fisetore唯一地提供了强大的全局一致性。
  • 事务:大多数NoSQL存储不支持跨碎片事务或灵活的隔离模式。然而,Firetore唯一地提供跨可序列化隔离的ACID事务。

由于这些属性,非关系数据库被用于需要大规模、可靠性、可用性和频繁的数据更改的应用程序中。它们可以通过添加更多的服务器轻松地水平扩展,而不像一些关系数据库,它们通过随着数据的增长而增加机器大小来垂直扩展。尽管如此,一些关系数据库,如云扳手,支持向外扩展和严格的一致性。

非关系数据库可以存储各种非结构化数据,如文档、键值、图、宽列等。以下是谷歌Cloud中的非关系数据库选项:

  • 文档数据库:将信息存储为文档(以JSON和XML等格式)。例如:固定恢复
  • 键值存储:将集合中的关联数据进行分组,这些记录使用唯一的键进行标识,以便于检索。键值存储只有足够的结构来反映关系数据库的价值,同时仍然保留了NoSQL的好处。例如:大的记忆库
  • 内存数据库:主要依赖于内存来存储数据的专用数据库。这些设计是为了通过消除访问磁盘的需要来获得最小的响应时间。它们适用于需要微秒响应时间和流量峰值的应用程序。例如:存储库
  • 宽列数据库:使用表格格式,但在每行中数据的命名和格式化方面存在很大差异,即使在同一表中也是如此。它们有一些基本的结构,同时保留了很大的灵活性。例如:更大的
  • 图形数据库:使用图形结构来定义存储的数据点之间的关系;用于识别非结构化和半结构化信息中的模式。例如:JanusGraph

谷歌Cloud中有三个非关系数据库:

Firestore:是一个无服务器的文档数据库,可按需扩展,一致性强,提供高达99.999%的可用性,并充当后端即服务。它是为构建应用程序而优化的DBaaS。它非常适合所有通用用途的案例,如电子商务、游戏、物联网和实时仪表盘。有了fireter,用户可以与实时和离线数据进行交互和协作,非常适合实时应用程序和移动应用程序。

Cloud Bigtable:Cloud Bigtable(云大表?)是一个少人用的数据库,它可以扩展到数十亿行和数千列,使您能够存储tb甚至pb的数据。它非常适合以非常低的延迟存储非常大量的单键控数据。它支持亚毫秒延迟的高读写吞吐量,是MapReduce操作的理想数据源。它还支持开源的HBase API标准,可以轻松地与Apache生态系统集成,包括HBase、Beam、Hadoop和Spark,以及谷歌云生态系统。

Memorystore:Memorystore是一个完全管理的内存内数据存储服务,用于Redis和内存缓存在谷歌云。它最适合内存和瞬态数据存储,并自动化配置、复制、故障转移和补丁等复杂任务,以便您可以花费更多时间进行编码。因为它提供了极低的延迟和高性能,记忆商店非常适合用于网络和移动、游戏、排行榜、社交、聊天和新闻订阅应用程序。

猜你喜欢

转载自blog.csdn.net/moshowgame/article/details/128310091