Google Cloud Database Option(数据库选项说明)

关系数据库 

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

  • 原子性:事务中的所有操作都成功,否则操作被回滚。
  • 一致:事务完成时,数据库结构是合理的。
  • 隔离:事务不会相互竞争。数据库会调节对数据的竞争访问,以便事务看起来是按顺序运行的。
  • 持久:即使出现故障,应用事务的结果是永久的。

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

Google Cloud 中有三种关系数据库选项:Cloud SQL、Cloud Spanner 和 Bare Metal Solution。

  • Cloud SQL:在 Google Cloud 上提供托管的 MySQL、PostgreSQL 和 SQL Server 数据库。它降低了维护成本,并实现了数据库配置、存储容量管理、备份以及开箱即用的高可用性和灾难恢复/故障转移的自动化。因此,它最适合通用 Web 框架、CRM、ERP、SaaS 和电子商务应用程序。
  • AlloyDB:它是一种完全托管的 PostgreSQL 兼容数据库服务,可满足您最苛刻的企业数据库工作负载需求。它将 Google 的最佳功能与最受欢迎的开源数据库引擎之一 PostgreSQL 相结合,以实现卓越的性能、规模和可用性。AlloyDB 在事务工作负载方面比标准 PostgreSQL 快 4 倍,在分析查询方面快 100 倍。它通过支持机器学习的自动驾驶系统简化了数据库管理。AlloyDB 提供透明且可预测的定价,无需昂贵的许可,也无需支付不透明的 I/O 费用。
  • Cloud Spanner:Cloud Spanner 是一种企业级、全球分布且高度一致的数据库,可提供高达 99.999% 的可用性,专为将关系数据库结构的优势与非关系水平扩展相结合而构建。它是一种独特的数据库,将 ACID 事务、SQL 查询和关系结构与通常与非关系或 NoSQL 数据库相关联的可扩展性相结合。因此,Spanner 最适合用于游戏、支付解决方案、全球金融分类账、零售银行和库存管理等需要无限扩展能力以及强一致性和高可用性的应用程序。 
  • 裸机解决方案:提供硬件以在 Google Cloud 上以低延迟运行专门的工作负载。如果您想要将 Oracle 数据库提升并转移到 Google Cloud,这将特别有用。这可以实现数据中心退役并为旧版应用程序的现代化铺平道路。 

非关系数据库

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

使 NoSQL 数据库快速运行的特性:

  • 通常,它们针对特定的工作负载模式(即键值、图形、宽列)进行了优化
  • 水平扩展,通常使用范围或散列分布
  • 最终一致性:许多 NoSQL 存储通常会在稍后的某个时间点表现出一致性(例如,在读取时延迟)。然而,Firestore 独一无二地提供了强大的全局一致性。
  • 事务:大多数 NoSQL 存储不支持跨分片事务或灵活的隔离模式。然而,Firestore 独一无二地提供了跨分片的 ACID 事务和可序列化的隔离。

由于这些特性,非关系型数据库用于需要大规模、可靠性、可用性和频繁数据更改的应用程序。它们可以通过添加更多服务器轻松地进行水平扩展,而不像某些关系型数据库那样通过随着数据增长而增加机器大小来进行垂直扩展。不过,某些关系型数据库(如 Cloud Spanner)支持横向扩展和严格一致性。

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

  • 文档数据库:将信息存储为文档(JSON 和 XML 等格式)。例如:Firestore
  • 键值存储:将相关数据分组到集合中,并使用唯一键标识记录,以便于检索。键值存储具有足够的结构来反映关系数据库的值,同时仍保留 NoSQL 的优势。例如:Bigtable、Memorystore
  • 内存数据库:专门构建的数据库,主要依靠内存来存储数据。这些数据库旨在通过消除访问磁盘的需要来实现最短的响应时间。它们非常适合需要微秒响应时间且流量可能大幅增加的应用程序。例如:Memorystore
  • 宽列数据库:使用表格格式,但允许在每行中对数据进行命名和格式化,即使在同一张表中也是如此。它们具有一些基本结构,同时保留了很大的灵活性。例如:Bigtable
  • 图形数据库:使用图形结构来定义存储数据点之间的关系;有助于识别非结构化和半结构化信息中的模式。例如:JanusGraph

Google Cloud 中有三种非关系数据库:

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

  • Cloud Bigtable:Cloud Bigtable 是一种稀疏填充表,可扩展到数十亿行和数千列,使您能够存储 TB 甚至 PB 级数据。它是存储大量单键数据的理想选择,延迟极低。它支持亚毫秒级延迟的高读写吞吐量,是 MapReduce 操作的理想数据源。它还支持开源 HBase API 标准,可轻松与 Apache 生态系统(包括 HBase、Beam、Hadoop 和 Spark)以及 Google Cloud 生态系统集成。

  • Memorystore:Memorystore 是 Google Cloud 上针对 Redis 和 Memcached 的完全托管内存数据存储服务。它最适合内存和临时数据存储,可自动执行配置、复制、故障转移和修补等复杂任务,让您可以花更多时间进行编码。由于 Memorystore 具有极低的延迟和高性能,因此非常适合 Web 和移动、游戏、排行榜、社交、聊天和新闻提要应用程序。

结论

选择关系数据库或非关系数据库很大程度上取决于用例。广义上,如果您的数据结构不会发生太大变化,请选择关系数据库。在 Google Cloud 中,对于任何通用 SQL 数据库,可使用 Cloud SQL,对于大规模全局可扩展、强一致的用例,可使用 Cloud Spanner。一般来说,如果您的数据结构以后可能会发生变化,并且对规模和可用性的要求更高,那么非关系数据库是更好的选择。

 https://zhengkai.blog.csdn.net/

The following table provides a high-level comparison of the major features of each database service:

FeatureCloud SQLBigQueryCloud SpannerBigtableCloud DatastoreFirestore
Database TypeRelationalData WarehouseRelational & NoSQLNoSQLNoSQLNoSQL
Use CaseTraditional DB AppsAnalytics, OLAPGlobally-distributed, mission-critical appsTime-series DataWeb & Mobile AppsReal-time Apps
ScalingVertical, ManualHorizontal, AutoHorizontal, AutoHorizontal, AutoHorizontal, AutoHorizontal, Auto
Data Size LimitUp to 30TBPetabytesPetabytesPetabytesNot SpecifiedNot Specified
PerformanceLow-latencyHigh-performanceHigh-performanceLow-latencyMediumMedium
Data ModelStructuredColumnar, Semi-structuredStructured & Semi-structuredWide-columnSemi-structuredSemi-structured
Consistency ModelACIDEventually ConsistentStrongly ConsistentEventual ConsistencyEventual ConsistencyStrongly Consistent
Query LanguageSQLSQLSQLNoSQL APIGQL (Datastore Query Language)GQL (Firestore Query Language)
Indexing SupportYesYesAutomatic & ManualYesAutomaticAutomatic
Cost ModelProvisionedOn-DemandOn-DemandOn-DemandOn-DemandOn-Demand
Real-time AnalyticsLimitedYesLimitedNoLimitedYes
Geospatial SupportLimitedLimitedYesNoYesYes
Native IntegrationsSome GCP ServicesMany GCP ServicesMany GCP ServicesLimitedMany GCP ServicesMany GCP Services
Use of PartitioningYesYesYesYesYesYes
Secondary IndexesYesNoYesYesYesYes

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/488714.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java 学习】面向程序的三大特性:封装、继承、多态

引言 1. 封装1.1 什么是封装呢?1.2 访问限定符1.3 使用封装 2. 继承2.1 为什么要有继承?2.2 继承的概念2.3 继承的语法2.4 访问父类成员2.4.1 子类中访问父类成员的变量2.4.2 访问父类的成员方法 2.5 super关键字2.6 子类的构造方法 3. 多态3.1 多态的概…

PAT甲级-1114 Family Property

题目 题目大意 共有n个户主,每个户主的房产按照“ 户主id 父亲id 母亲id 孩子个数 孩子的id 房产数 房产面积 ”的格式给出。如果父亲或母亲不存在,值为-1。每个户主及其父亲母亲孩子可以构成一个家庭,不同户主如果有相同的家人,…

如何不重启修改K8S containerd容器的内存限制(Cgroup方法)

1. 使用crictl 查看容器ID crictl ps2. 查看Cgroup位置 crictl inspect 容器ID3. 到容器Cgroup的目录下 使用上个命令就能找到CgroupPath 4 . 到cgroup目录下 正确目录是 : /sys/fs/cgroup/memory/kubepods.slice/kubepods-burstable.slice/kubepods-burstable-podf68e18…

《计算机视觉:瓶颈之辩与未来之路》

一、计算机视觉的崛起 计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。它是一个多学科交叉的领域,与机器视觉、图像处理、人工智能、机器学习等领域密切相关。 计算机视觉行业可分为…

Burp suite2 (泷羽sec)

声明 学习视频来自B站UP主 泷羽sec,如涉及侵泷羽sec权马上删除文章。 笔记只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 这节课旨在扩大自己在网络安全方面的知识面,了解网络安全领域的见闻,了…

Scala中求汉罗塔游戏

记:f(n,"A","B","C")表示n个盘子从A柱子上移动到C柱子上,借用B柱子的过程 f(要移动的盘子的个数,起点,辅助柱子,终点) 1.基本情况(直接能求的):f(1,"A",&…

mac 安装CosyVoice (cpu版本)

CosyVoice 介绍 CosyVoice 是阿里研发的一个tts大模型 官方项目地址:https://github.com/FunAudioLLM/CosyVoice.git 下载项目(非官方) git clone --recursive https://github.com/v3ucn/CosyVoice_for_MacOs.git 进入项目 cd CosyVoic…

C++50道经典面试题

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 作为一种通用且面向对…

家里养几条金鱼比较好?

金鱼,作为备受喜爱的家庭水族宠物,其饲养数量一直是众多养鱼爱好者关注的焦点。究竟养几条金鱼最为适宜,实则需要综合考量多方面因素,方能达到美观、健康与和谐的理想养鱼境界。 从风水文化的视角来看,金鱼数量有着诸…

启明智显ZX7981PC:5G时代的新选择,全屋网络无缝覆盖

在这个飞速发展的5G时代,每一个细微的科技进步都在推动着我们的生活向更加智能、便捷的方向发展。近日,启明智显再次引领科技潮流,正式发布其最新的5G CPE产品——ZX7981PC。作为继7981PG与7981PM之后的又一次迭代升级,ZX7981PC凭…

MATLAB四种逻辑运算

MATLAB中的四种逻辑运算包括逻辑与用&或 a n d 表示 ( 全为 1 时才为 1 ,否则为 0 ) and表示(全为1时才为1,否则为0) and表示(全为1时才为1,否则为0),逻辑或用|或 o r 表示 ( 有 1 就为 1 ,都为 0 才为 0 ) or表示…

讲解如何使用NLTK?外加数据清理实例演示

一、如何使用NLTK? 定义:自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的 Python 库,称为“文本处理”的程序设计是其基本功能,专门用于研究自然语言的语…

【PlantUML系列】状态图(六)

一、状态图的组成部分 状态:对象在其生命周期内可能处于的条件或情形,使用 state "State Name" as Statename 表示。初始状态:表示对象生命周期的开始,使用 [*] 表示。最终状态:表示对象生命周期的结束&…

ARM循环程序和子程序设计

1、计算下列两组数据的累加和并存入到sum1和 sum2 单元中。datal:0x12,0x935,0x17,0x100,0x95,0x345。 data2:0x357,0x778,0x129,0x188,0x190,0x155,0x167。 1.定义数据段 ;定义数据段,类型为data(表示为数据段),权限为可读可写(程序可以读取和修改这…

【Vue3进阶】组件通信进阶使用方法——defineProps、defineExpose、defineEmits

组件通信 父传子 defineProps 在 Vue 3 中&#xff0c;defineProps 是一个用于在 <script setup> 语法中定义组件的 props 的函数。这个函数提供了一种更加明确和类型安全的方式来定义子组件的 props&#xff0c;使得子父组件之间的数据传递更加清晰和可维护。以下是 …

day11 性能测试(4)——Jmeter使用(黑马的完结,课程不全)直连数据库+逻辑控制器+定时器

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、复习 1.1 断言&#xff08;3种&#xff09; 1.2 关联&#xff08;3种&#xff09; 1.3 录制脚本 2、Jmeter直连数据库 2.1 直连数据库——使用场景 2.2 直连数据库——操作步骤 2.2.1 案例1&…

如何将CSDN的文章保存为PDF?

目录 1、打开CSDN文章2、按F12或者鼠标右键选择检查并进入控制台3、在控制台输入以下代码4、然后回车&#xff08;Enter&#xff09;如果纵向显示不全就横向 1、打开CSDN文章 2、按F12或者鼠标右键选择检查并进入控制台 3、在控制台输入以下代码 (function(){ $("#side&q…

ubuntu22.04 使用crash

文章目录 前言一、apt 安装dbgsym vnlinux二、使用.ddeb包安装dbgsym vnlinux三、dbgsym发行版四、crash调试参考资料 前言 最近在适配 ubuntu系统&#xff0c;记录一下其crash的安装。 一、apt 安装dbgsym vnlinux # echo "deb http://ddebs.ubuntu.com $(lsb_release…

刷题日志【4】

目录 1、猜数字大小 1、猜数字大小 题意有点抽象&#xff0c;我大概讲一下&#xff0c;就是在1——n里面会有一个目标数&#xff0c;我们通过猜数字的方式逼近这个数字&#xff0c;直到解出这个数&#xff0c;之前我们是用二分法求最快达到求解的问题&#xff0c;这道题多了每…

【蓝桥杯最新板】蓝桥杯嵌入式液晶上实现电子时钟

这几年蓝桥杯比赛比较适合学生技能学习&#xff0c;考虑板子功能&#xff0c;提出完成的任务。 要求在液晶完成如下图效果&#xff1a; 主要是实现液晶显示时钟和数字时钟&#xff0c;具体样式可以依据实际情况微调。 实现过程&#xff1a; 1.需要画圆&#xff08;外圆、内圆…