【大咖分享】AI 大模型时代,架构师有哪些机遇和挑战? 了解详情
写点什么

NoSQL 更适合担当云数据库吗

  • 2013-10-10
  • 本文字数:2115 字

    阅读完需:约 7 分钟

在过去几十年,关系型数据库管理系统一直是数据管理的主要模型,随着 Web 应用数据规模的显著增长,NoSQL 系统逐渐引起关注。领域专家 Sherif Sakr分析指出,NoSQL 具备的优势(能够水平扩展数据、支持较弱的一致性模型、能够使用灵活模式和数据模型、支持简单的低级查询接口)使其更适合在云计算领域做数据管理。

Sherif 认为,云模型导致了云数据库模型的出现,事实上,有三个主要技术常用于在云平台上部署软件应用程序的数据库层:

  • 虚拟化数据库服务器
  • 数据库即服务平台
  • NoSQL 存储系统

对于虚拟化来说,一般而言,资源虚拟化技术在应用程序和应用程序使用的资源之间添加了一个灵活的可编程的软件层。定义虚拟化数据库服务器的概念充分利用了这些优势,特别是当软件应用程序的现有数据库层可直接导入公共云中的虚拟机时,这些软件应用程序是专为在传统数据中心使用而设计的。

这样一个迁移过程通常只需要在部署的应用程序代码或基础架构中进行微小改变。和其他软件组件一样,在该虚拟化数据库方法中,数据库服务器被迁移到虚拟机中运行。为每个数据库副本部署一个 VM 会带来性能开销,这类开销估计小于 10%。实际上,虚拟化数据库服务器方法的一个主要优势是,应用程序可根据需要完全动态控制数据库层(数据库服务器)物理资源的分配和配置。

“数据库即服务”是这样一个概念,第三方服务器供应商托管一个关系型数据库作为一种服务。这类服务缓解了用户购买昂贵硬件和软件、处理软件升级以及雇佣专业人员进行管理和维护的需求。

实践中,如果现有软件应用程序的底层 RDBMS 与提供的服务相兼容,那么将任何软件应用程序的数据库层迁移 到关系数据库服务中预计不会太困难。但是服务供应商可能因为各种原因带来一些限制或约束(比如,托管数据库的最大容量,可行并发连接的最大数量)。此外,软件应用程序可能在控制其应用程序的分配资源方面不够灵活(可能动态分配过多的资源来处理不断增长的工作负载,或动态减少分配资源以降低操作成本)。整个资源管理和分配过程由供应商控制,对于数据库层来说,这需要一个准确的分配计算资源计划,并通过利用云计算环境的弹性和可伸缩性来限制用户应用程序功能,从而最大限度地增加其获益。

Sherif 指出,不断增长的可伸缩性和新应用程序 需求为传统 RDBMS 带来了新的挑战,包括某些大规模网络应用程序对这个 “万能” 方法的不满。这个问题的解决方法是新一代的低成本、高性能数据库软件,专门设计用于挑战关系数据库管理系统优势。NoSQL 运动的一个主要原因是不同的 Web、企业和云计算应用程序的实现有不同的数据库需求,例如,不是每个应用程序都需要严格的数据一致性。再比如:像 eBay、Amazon、Twitter 或 Facebook 这类大流量网站,对可伸缩性和高可用性都是非常严格的要求,不容妥协。对于这些应用程序,即使是最轻微的故障都会带来重大的经济后果,从而影响顾客信任。

Sherif 列举了 NoSQL 系统具有的主要优势:

  • 弹性伸缩:多年来,数据库管理员一直依赖纵向扩展方法,而不是横向扩展方法;随着目前事务级别和高可用性需求的不断增加,横向扩展(特别是在商用硬件上)的经济优势变得极具吸引力。NoSQL 系统设计具有透明扩展能力,可利用新节点添加优势。
  • 更少的管理:NoSQL 数据库通常旨在支持诸如自动修复和简单的数据模型等特性;这会导致较低的管理和调优需求。
  • 更好的经济效益:NoSQL 数据库通常使用大量廉价商品服务器来管理激增的数据和事务量。
  • 灵活的数据模型:NoSQL 数据库具有更为宽松的数据模型限制(如果有的话),因此应用程序和数据库模式改动可能更小。

但是,NoSQL 数据库仍然需要克服许多障碍,Sherif 认为需要改进的地方:

  • 编程模型:NoSQL 数据库提供一些专用查询和分析设施。即使一个简单的查询也需要大量的编程知识 。由于缺少声明表述支持,重要的join 操作一直被认为是这些系统的主要限制。
  • 事务支持:事务管理是功能最强大的一个 RDBMS 特性。目前,对于那些被接受用来实现任务关键系统的事务来说,NoSQL 数据库系统上的事务概念的非存在限制(limited-to-non-existent)支持是一个障碍。
  • 成熟性:众所周知,RDBMS 系统具有高稳定性和丰富的功能性。相比之下,大多数 NoSQL 替代方案还处于预生产版本阶段,很多功能尚不稳定,且无法实现。这意味着企业在进入新一波数据管理时仍需谨慎。
  • 支持:企业还在寻求保障,如果系统出现故障,那么他们能够得到及时的、足够的支持。RDBMS 供应商竭尽全力提供高级支持。相比之下,很多 NoSQL 系统是开源项目,目前尚未获得支持。
  • 专业人士:几乎每个 NoSQL 开发人员都处于学习阶段;当然,这种状况不会持续太长时间。但是目前寻找经验丰富的 RDBMS 程序员或管理员比寻找 NoSQL 专家更容易。

在 11 月 1 日开幕的 QCon 全球企业开发大会(上海站),有多个主题与云计算、数据管理相关:

  • 扩展性、可用性与高性能 讨论大型复杂系统中,如何在架构设计、代码、运维体系等方面达到扩展性、可用性与高性能。
  • 大数据应用 从大数据创业公司和互联网公司的创新数据产品角度来了解大数据的最新应用。
  • 云计算架构与案例 实例分析、最佳实践,云计算新时代的创造者为何又如何纷纷将各种应用搬至云端?
  • 大数据处理技术 关注大数据处理和分析的最新技术和工具以及未来的技术走向。
2013-10-10 06:362332
用户头像

发布了 501 篇内容, 共 240.6 次阅读, 收获喜欢 56 次。

关注

评论

发布
暂无评论
发现更多内容

在线JSON转PHP Array工具

入门小站

工具

电商系统微服务拆分和系统架构设计

drizzle

「架构实战营」

2021 阿里云容器服务年度盘点:企业级容器应用变化和技术趋势观察

阿里巴巴云原生

阿里云 容器 运维 云原生

考试数据存储方案

皓月

#架构实战营 「架构实战营」

模块 4 作业

miliving

云原生背景下故障演练体系建设的思考与实践—云原生混沌工程系列之指南篇

阿里巴巴云原生

阿里云 云原生 混沌工程

架构实战营 4 期第四模块作业

jialuooooo

架构实战营

常见网络安全专业术语

喀拉峻

黑客 网络安全 信息安全

2022 年值得期待的元宇宙技术

devpoint

defi Web3.0 1月月更 NTF

爆肝一个月,我做了个免费的面试刷题网

程序员鱼皮

Java Python 编程 面试 计算机

今年最值得关注的5个云趋势

云原生

云计算 数据分析 云原生 趋势 SaaS

关于常见状态码,你了解多少?

坚果

服务器 1月月更

急速学习C#死锁

喵叔

1月月更

某反序列化漏洞分析与复现工作

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

模块四作业 - 学生管理系统的考试试卷存储方案

曾竞超

「架构实战营」

深信服智能边缘计算平台与 OpenYurt 落地方案探索与实践

阿里巴巴云原生

阿里云 云原生 边缘计算 openyurt

从运维域看 Serverless 真的就是万能银弹吗?

阿里巴巴云原生

阿里云 Serverless 运维 云原生

Spring Boot Serverless 实战系列“部署篇” | Mall 应用

阿里巴巴云原生

阿里云 Serverless 云原生 MAll

Linux之tar命令

入门小站

Linux

模块四作业

whoami

「架构实战营」

08 Prometheus之警报管理

穿过生命散发芬芳

Prometheus 1月月更

Spring Boot CLI安装(WIN10、macOS系统)

JavaEdge

1月月更

也谈谈Python的内存管理

宇宙之一粟

Python 内存管理 1月月更

「架构实战营」模块四《如何设计业务高性能高可用存储架构》作业

DaiChen

作业 模块四 「架构实战营」

白帽子渗透行为监控方案

明亮安全观

网络安全 信息安全 渗透测试 行为监控

来了!「年度最强技术答辩」看这里

阿里巴巴云原生

阿里云 Serverless RocketMQ 云原生 编程挑战赛

2022年推荐6个有意思的CSS tools!

CRMEB

[架构实战营] 模块五作业

Geek_0ed632

「架构实战营」

「程序员35岁被淘汰」已经22岁了

FunTester

程序员 职业发展 FunTester 35岁焦虑 35岁退休

第六周作业

lv

架构实战营 第 4 期 模块四作业

架构实战营 模块四 「架构实战营」

  • 扫码加入 InfoQ 开发者交流群
NoSQL更适合担当云数据库吗_服务革新_崔康_InfoQ精选文章