NoSQL性能管理仍不完备 你该如何应对?

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

基于SQL的关系型数据库在过去几十年来一直是组织应用数据存储的中流砥柱。针对关系型数据库的优化、监控和管理性能都有很成熟的经验,也有很多软件工具提供这方面的辅助功能。但是,NoSQL数据库的情况却非如此。

NoSQL技术现在仍然处于相对初级的阶段,众多NoSQL软件类型和产品服务令人眼花缭乱,选择合适的性能管理方案也成为一件颇具挑战性的事。目前,管理NoSQL性能仍然是新兴的技术问题,可能在未来一段时间都是如此。

软件开发和咨询服务公司ThoughtWorks公司的首席顾问Pramod Sadalage说:“人们早就知道如何优化关系型数据库系统,但是那种优化模式在NoSQL中尚不成熟。选择的优化模式与个体数据库密切相关。”

Sadalage和其它数据库专家们都认为,这意味着我们应该在项目开始的时候就为NoSQL性能打下坚实基础。他们说,IT经理、架构师和开发人员都应该评估NoSQL方案,谨慎选择,使用合适的数据库做特定的工作。

NoSQL数据库经常被描述为“量体裁衣”型的技术,要使用最适合具体应用的不同技术解决具体问题。要实现NoSQL落地有太多事情要处理。主要的NoSQL系统类型包括:键值存储、文档数据库、列簇存储和图数据库。

对于如何应用各种类型的NoSQL数据库,业界正在逐渐形成一些共识。列簇数据库一般应用于写入任务比较繁重的应用场景,场景应对数据库复制的短暂不一致性有一定容忍度。文档数据库可以应用在Web中,这种场景多使用JSON数据结构,灵活更新是重点关注的因素。键值数据库支持非常快速的数据访问,通过简单的键值就能获取到,还会使用缓存数据。图数据库适合处理数据元素之间的网络关系并以图的形式展示,例如业务流程管理或者社交网络信息。

尽管每种类型都有各种产品和开源技术对应,但用户需要分辨选择真正适合的类型。对于采用MongoDB还是Cassandra会有一些分歧,不过这也在情理之中,NoSQL应用需求没有放之四海而皆准的答案。

明智地使用NoSQL数据库

Mullins咨询公司的总裁和首席咨询顾问Craig Mullins说:“人们习惯使用关系型数据库,这种数据库可以应用于绝大多数场景。不过,选择NoSQL最好有具体的案例,要确保选择的NoSQL数据库是专为提供该场景必要的性能而设计的。”

Mullins说,要获得预期数据库性能,IT团队在部署某种NoSQL数据库产品之前“需要切实理解这些产品的工作机制”。他指出,Cassandra列数据库就是应用要适应NoSQL环境相关处理性能的一个例子。

Mullins说:“Cassandra设计是按行(记录)存储所有信息的。同样的场景,在关系型数据库的世界里可能需要用十几个表。但是在Cassandra数据库中都存储在一条记录中了。”如果需要访问某一条记录的所有数据,这种方案会获得极好的性能,Mullins以客户信用评级应用为例进行了说明。不过,他还说业务用户可能还有别的需求,例如统计所有客户信息。在这种需求面前,一条记录存储所有信息的方法就可能会给性能带来问题。

此外,SQL数据库中标准应用程序元素通常需要硬编码到NoSQL系统中。Athena IT解决方案咨询公司创始人Rick Sherman说:“使用NoSQL想要获得良好性能,需要做很多耗时的工作。这些工作量超过了一些人对它的预期。需要编写很多定制代码来实现任务。”

在许多情况下,这些工作是应用程序开发人员完成的,他们可能没有完全理解他们所使用NoSQL数据库内部的运行机制。Mullins说:“开发人员不是数据库设计者,他们是基于项目需求做设计,而不是考虑通用数据使用设计。”

NoSQL技能非标准问题

即使是数据库管理员,NoSQL技能不足的局限也会成为数据管理团队面临的问题,这个问题会影响应用程序任务获得更好的NoSQL性能。丰富的NoSQL技术方案并不能立即转换为相应同样丰富的资源。Sadalage说:“你很容易能找到具有15年经验的Oracle DBA人员,但是想找到同样经验的Cassandra数据库管理员则是不可能的,该数据库诞生才只有八年。”

NoSQL采纳的第一推动力应该是业务应用程序,不过也有更多的关注集中在处理分析方面。耶稣基督末世圣徒教会首席企业信息架构师Mike Bowers认为,如果你有分析和报表需求,那么要使用NoSQL数据库获得速度优势可能就会变得更加困难。

Bowers认为,部署的第一步是研究可用方案并了解方案的工作原理,在这一步我们要重点考虑如何获得良好的NoSQL性能。他说:“大多数NoSQL数据库不是真正的数据库,他们只是支持开发人员构建自己定制数据库的数据引擎,需要专门针对具体应用进行优化。”

Sadalage表达了更加鞭辟入里的观点,在当前乃至外来可能都是成立的。他说:“要因地制宜,物尽其用。不要选择错误的产品,然后抱怨产品不好。”
本文转自d1net(转载)

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
21天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
112 1
|
2月前
|
存储 NoSQL 关系型数据库
面试题18: NOSQL数据库
面试题18: NOSQL数据库
|
3月前
|
存储 NoSQL API
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库
135 0
|
1月前
|
存储 NoSQL 关系型数据库
四种类型的nosql数据库
随着互联网的发展,传统关系型数据库已经不能满足大数据时代的需求。NoSQL数据库应运而生,它们具有高可扩展性、高性能和高可用性等优点。本文将介绍四种主要类型的NoSQL数据库,分别是键值存储数据库、文档存储数据库、列存储数据库和图形数据库。这些数据库在不同的场景下有着不同的应用,可以满足不同的需求。
|
1月前
|
存储 缓存 NoSQL
|
3月前
|
多模数据库 Cloud Native NoSQL
Nosql学习之路:云原生多模数据库Lindorm训练营第一弹来啦
Lindorm训练营系列将通过一系列由浅入深的高质量课程和丰富的动手实验,将理论与实践结合,带你从入门到成为高阶开发者。参营学习还有机会获得惊喜彩蛋~
|
3月前
|
缓存 NoSQL MongoDB
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
在使用NoSQL数据库时,你遇到过哪些挑战?如何解决这些挑战?
27 0
|
3月前
|
存储 JSON NoSQL
请列举一些常见的NoSQL数据库类型和其特点。
请列举一些常见的NoSQL数据库类型和其特点。
44 0
|
3月前
|
存储 SQL NoSQL
NoSQL数据库的优点和缺点是什么?
NoSQL数据库的优点和缺点是什么?
85 0
|
3月前
|
存储 NoSQL 关系型数据库
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
什么是NoSQL数据库?它与传统关系型数据库有什么区别?
51 0