NoSQL数据库技能和运用探析

论文价格:免费 论文用途:其他 编辑:mjt1985 点击次数:131
论文字数:57600 论文编号:sb201211251035364478 日期:2012-11-25 来源:硕博论文网

第一章绪论

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查询效率极低。再例如像盛大网络、腾讯这样的大型网站,其用户登录系统有上亿的账号,关系型数据库的管理查询性能很低
      C3)高扩展性和可用性
    关系型数据库技术是为前期集中化计算模型设计的技术。为适应更多用户与负载,它采用向上扩展的方式,即采用更大型的服务器,升级CPU、内存和硬盘I/O,这样导致硬件成本直线上升。关系型数据库很难像Web服务器那样简单的通过添加更多的硬件和服务器节点来扩展性能和负载能力。数据库的升级和扩展需要停机维护和数据迁移,这对于很多需要提供24小时不间断服务的网站来说降低了可用性。
    关系型数据库很难满足以上三方面的互联网需求,而对于Web 2.0时代的互联网应用和大数据时代的海量数据管理,关系型数据库的很多主要特性往往并不适用:
      (1)事务一致性
    很多互联网实时系统并不要求严格的数据库事务,对读一致性要求很低,有些场合对写一致性要求也不高。关系型数据库严格的事务管理反而成为数据库高负载下的一个沉重的负担
      (2)读写实时性
    关系型数据库保证在插入一条数据后查询可以立刻读出这条数据。但很多互联网应用并不要求这么高的实时性。例如新浪微博中用户发布了一条微博,过十几秒甚至几分钟后才被关注者看到是完全可以接受的。
    (3)复杂SQL查询
    关系型数据库中的复杂SQL查询,尤其是多表关联查询,需要耗费较长的时间。大数据量的Web系统在设计阶段就会避免这样的情况,更多的是单表的主键查询以及单表的简单条件分页查询,并不需要复杂的SQL功能
    关系型数据库在当前越来越多的互联网应用下不再适合,而NoSQL就是在解决这样的应用需求下产生的一种非关系型数据库技术的总称,自其概念提出以来发展迅速,己出现于多种流行的数据库产品,广泛使用在互联网应用中。本文将对这种新型数据库技术进行分析研究,介绍它的概念和特性,剖析它的服务机制,重点研究NoSQL数据库代表MongoDB的核心服务机制实现和应用优化,给出它在Web信息采集系统中的解决方案并进行性能测试。

1.2国内外研究现状

    NoSQL数据库最早可追溯到1991年Berkeley DB的第一版Berkeley DB是一个键值存储(Key-value Store)的Hash数据库,适用于数据类型相对简单但需要极高的插入和读取速度的嵌入式场合。NoSQL从2007年开始蓬勃发展。Google和Amazon的工程师们分别发表了有关BigTable和Dynamo数据库的论文,描述他们己经在使用的新型数据库的设计思想。BigTable提出了列存储模型,证明了数据持久存储可以扩展到数以千计的节点Dynam。则提出了最终一致性的思想以达到更高的可用性和扩展性。分布式缓存系统Memcached证明了内存分布式数据存储可以达到极高的性能。事实上,Google的BigTable, Amazon的Dynamo和分布式缓存系统Memcached这三者可以说是所有NoSQL数据库的启蒙者。很多公司和组织受到他们思想观点的启发,开发了自己的开源 NoSQL数据库产品,例如Hypertable就是BigTable思想的开源实现。
    现如今,国外的NoSQL数据库品种己经超过100个。除了Google的BigTable,Amazon的Dynamo,主流的数据库还有FaceBook的Cassandra,  lOgen的MongoDB, Amazon的SimpleDB, Apache的HBase, Redis, CouchDB, Tokyo Cabinet/Tyrant, MemcacheDB等等。这些数据库在互联网中应用广泛,表现优异。Cassandra的用户包括Twitter, Cisco, Urban等多个公司,已知最大的Cassandra集群有超过400个节点,存储数据量超越300TB最受欢迎的MongoDB数据库在电子商务、政府、数据存储、实时统计、社交网络、游戏等众多领域都应用广泛,其中著名的有github, sourceforge, Disney等,国内的淘宝网、大众点评和视觉中国也在使用

 

第三章 存储机制与反范式模式设计 22-34
    3.1 数据模型 22-25
        3.1.1 逻辑模型 22-23
        3.1.2 物理模型 23-25
    3.2 GridFS文件系统 25
    3.3 存储架构 25-28
    3.4 反范式模式设计 28-33
        3.4.1 理论研究 28-29
        3.4.2 实例分析 29-33
    3.5 BSON存储优化 33
    3.6 本章小结 33-34
第四章 分布式存储机制与应用 34-46
    4.1 自动分片机制 34-37
        4.1.1 分区算法 34-35
        4.1.2 负载均衡 35-37
    4.2 复制集技术 37-40
        4.2.1 数据同步 37-38
        4.2.2 主节点选举 38-39
        4.2.3 应用设置 39-40
    4.3 分片部署策略 40-42
    4.4 分片键选择机制 42-44
    4.5 磁盘碎片化解决方案 44-45
    4.6 本章小结 45-46
第五章 查询机制与算法改进 46-56
    5.1 查询实现 46-47
    5.2 查询接口 47-49
    5.3 索引 49-51
    5.4 查询优化改进 51-54
        5.4.1 优化算法 51
        5.4.2 存在问题 51-52
        5.4.3 算法改进 52-54
    5.5 索引的使用 54-55
    5.6 本章小结 55-56


总结
    随着NoSQL数据库技术的不断发展,它在当今互联网应用中的使用越来越广泛。本文介绍了NosQL数据库技术的起源,从NosQL的概念与特性、数据模型、数据可靠性和分布式扩展方面对NoSQL数据库技术进行了综述,重点研究了当前流行的NoSQL数据库代表MongoDB的内部服务机制实现及其应用与优化,并给出了MongoDB在Web信息采集系统中的解决方案,与SQL Server进行性能测试比较。
    本文的主要工作与成果如下:
    (1)阐述了NoSQL的概念、数据模型、可靠性、哈希分区和范围分区等理论;
    (2)剖析MongoDB数据库的存储、分布式、查询等机制的具体实现;
    (3)针对文档数据模型特点提出了反范式模式设计方法,基于数据依赖理论,针对不同依赖关系分别采用分解或联合数据项的策略,实现了非关系型数据库的逻辑模式设计;

 


QQ 1429724474 电话 18964107217