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

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

基于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数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
存储 监控 NoSQL
九大核心NoSQL数据库及使用场景详解
【10月更文挑战第6天】在当今大数据与云计算飞速发展的时代,NoSQL数据库以其灵活的数据模型、可扩展性和高性能,成为了众多应用场景下的首选。本文将为您详细介绍九大核心NoSQL数据库及其典型使用场景,帮助您在工作和学习中更好地选择和应用。
88 3
|
3月前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
1月前
|
存储 缓存 NoSQL
常见的 NoSQL 数据库有哪些?
常见的 NoSQL 数据库有哪些?
45 2
|
2月前
|
存储 SQL JSON
介绍一下RDBMS和NoSQL数据库之间的区别
【10月更文挑战第21天】介绍一下RDBMS和NoSQL数据库之间的区别
110 2
|
2月前
|
存储 SQL NoSQL
数据库技术深度探索:从关系型到NoSQL的演变
【10月更文挑战第21天】数据库技术深度探索:从关系型到NoSQL的演变
78 1
|
2月前
|
存储 NoSQL 搜索推荐
nosql
【10月更文挑战第14天】nosql
29 2
|
2月前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
31 1
|
2月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
2月前
|
存储 SQL 分布式计算
NoSQL 简介
10月更文挑战第10天
37 0
|
3月前
|
存储 NoSQL 关系型数据库
NoSQL 数据库的优缺点?
NoSQL 数据库的优缺点?
151 4