编辑:sx_zhangjh
2014-11-04
探析NoSQL数据库能力和运用
精品学习网为大家收集整理了NoSQL数据库能力和运用,供大家参考,希望对大家有所帮助!!!
1.1课题背景
自上世纪90年代以来,互联网应用经历了用户通过互联网获取信息的Web 1.0时代,现在己发展到更注重用户交互作用的Web 2.0时代。期间互联网应用经历了用户从至多2000人到现在百万级别以上的用户群。应用内容从严谨的业务流程,例如航班预订、股票交易,发展到如今的通信、购物、娱乐、社交等各领域。数据量也从以前的TB级升至PB级,并仍在持续爆炸式增长,互联网应用进入大数据时代。
在这期间,计算机网络和硬件水平得到了飞速的发展。针对互联网应用的转变,应用架构也从集中处理、向上扩展(Scale-Up)的交互式系统架构,衍变为现代Web应用的分布式、横向扩展(Scale-Out)的系统架构,它可以通过添加更多的Web服务器来支持更多的用户。为应对大数据时代海量数据的分析处理,出现了基于大规模廉价计算平台的云计算和分布式大数据集处理模型MapReduce
与快速转换的应用架构和数据处理技术相比,关系型数据库技术在这几于年间的发展缓慢。面对日新月异的互联网应用,传统关系型数据库面临以下几个难题。
(1)高并发读写
Web 2.0时代的互联网需要根据用户的个性化信息实时生成动态页面,提供动态信息,因此数据库的并发负载非常高,可以达到每秒上万次的读写请求
(2)海量数据的高效率存储和访问
像人人网、新浪微博这样的社交网站,每天用户产生海量的用户动态。以新浪微博为例,其公开的社交网络数据有2.6亿条,对于关系数据库来说,在一个2.6亿条记录的表里进行SQL查询效率极低。再例如像盛大网络、腾讯这样的大型网站,其用户登录系统有上亿的账号,关系型数据库的管理查询性能很低
(3)高扩展性和可用性
关系型数据库技术是为前期集中化计算模型设计的技术。为适应更多用户与负载,它采用向上扩展的方式,即采用更大型的服务器,升级CPU、内存和硬盘I/O,这样导致硬件成本直线上升。关系型数据库很难像Web服务器那样简单的通过添加更多的硬件和服务器节点来扩展性能和负载能力。数据库的升级和扩展需要停机维护和数据迁移,这对于很多需要提供24小时不间断服务的网站来说降低了可用性。
关系型数据库很难满足以上三方面的互联网需求,而对于Web 2.0时代的互联网应用和大数据时代的海量数据管理,关系型数据库的很多主要特性往往并不适用:
(1)事务一致性
很多互联网实时系统并不要求严格的数据库事务,对读一致性要求很低,有些场合对写一致性要求也不高。关系型数据库严格的事务管理反而成为数据库高负载下的一个沉重的负担
(2)读写实时性
关系型数据库保证在插入一条数据后查询可以立刻读出这条数据。但很多互联网应用并不要求这么高的实时性。例如新浪微博中用户发布了一条微博,过于几秒甚至几分钟后才被关注者看到是完全可以接受的。
(3)复杂SQL查询
关系型数据库中的复杂SQL查询,尤其是多表关联查询,需要耗费较长的时间。大数据量的Web系统在设计阶段就会避免这样的情况,更多的是单表的主键查询以及单表的简单条件分页查询,并不需要复杂的SQL功能
关系型数据库在当前越来越多的互联网应用下不再适合,而NoSQL就是在解决这样的
应用需求下产生的一种非关系型数据库技术的总称,自其概念提出以来发展迅速,己出现于多种流行的数据库产品,广泛使用在互联网应用中。本文将对这种新型数据库技术进行分析研究,介绍它的概念和特性,剖析它的服务机制,重点研究NoSQL数据库代表MongoDB的核心服务机制实现和应用优化,给出它在Web信息采集系统中的解决方案并进行性能测试。
标签:计算机数据库
精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。