基于SQL的关系型数据库在过去几十年来一直是组织应用数据存储的中流砥柱。针对关系型数据库的优化、监控和管理性能都有很成熟的经验,也有很多软件工具提供这方面的辅助功能。但是,NoSQL数据库的情况却非如此。 NoSQL技术现在仍然处于相对初级的阶段,众多NoSQL软件类型和产品服务令人眼花缭乱,选择合适的性能管理方案也成为一件颇具挑战性的事。
目前,管理NoSQL性能仍然是新兴的技术问题,可能在未来一段时间都是如此。 软件开发和咨询服务公司ThoughtWorks公司的首席顾问Pramod Sadalage说:“人们早就知道如何优化关系型数据库系统,但是那种优化模式在NoSQL中尚不成熟。选择的优……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
基于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表达了更加鞭辟入里的观点,在当前乃至外来可能都是成立的。他说:“要因地制宜,物尽其用。不要选择错误的产品,然后抱怨产品不好。”
翻译
相关推荐
-
升级到SQL Server 2016 你需要知道的那些事儿
升级到SQL Server 2016之前,应该检查硬件和软件要求和支持的升级路径,以帮助确保您的数据库部署的顺利进行。
-
SQL Server 2016关系型数据库概览
微软公司的SQL Server 2016提供了新的存储格式,实现了行级数据安全和Transact-SQL针对内存优化表的改进。
-
TT百科:SQL(结构化查询语言)
一般来说,SQL-on-Hadoop仍是一项新兴技术,但随着各个公司寻求获得拥有大数据应用程序编程SQL技能的开发和分析人员,它们正逐渐成为Hadoop部署的固定组件。
-
SQL Server 与 MySQL:关系型数据库领域的“绝代双骄”
SQL服务器和MySQL是当下市场上两个最流行的关系数据库管理系统。虽然它们并没有明显的差距,但在某些情况下,使用微软的RDBMS可能是比使用甲骨文的MySQL更好的选择。