基于MongoDB的特殊测井分布式数据库系统

点赞:26884 浏览:121746 近期更新时间:2024-03-17 作者:网友分享原创网站原创

[摘 要]本文提出了一种基于MongoDB的分布式数据库系统来解决存储系统对于稳定性、可靠性、高效性、易扩展性的需求.MongoDB是一种介于关系数据库和非关系数据库之间,面向文档存储类型的分布式文件存储数据库.在油田测井数据磁带文件存储管理系统中的实际运行测试结果表明,该系统表现稳定、高效,可以很好地完成原始测井数据维护工作.

[关 键 词]MongoDB;测井数据库;分布式

doi:10.3969/j.issn.1673-0194.2014.22.026

[中图分类号]F270.7;TP315[文献标识码]A[文章编号]1673-0194(2014)22-0045-02

0引言

由于历史和技术手段等原因,油田的原始测井数据文件存放在磁带中.随着时间推移,与磁带对应的磁带机越来越少;磁带文件的读取越来越困难,维护成本逐渐增高;磁带介质随着时间推移变脆、粘连现象增加,原始测井数据文件面临着毁坏丢失的风险.将磁带文件转存为磁盘文件保存数据是一个较好的解决办法.而对于海量数据的存储和管理,分布式系统拥有高并行性、高容错能力、高性价比等诸多优点.本文选用的非关系型数据库MongoDB本身就是一个基于文档型的分布式数据库,且该数据库本身具有可扩展性,对海量数据存储和高并发的读写需求有着传统关系型数据库难以企及的优势.所以建立基于MongoDB数据库的分布式存储系统可以很好地满足对磁带转储系统高效性、稳定性、易扩展性的需求.

本文将从非关系型数据库的定义和特点、系统模型的设计以及系统整体架构设计等方面来介绍基于MongoDB的特殊测井分布式数据库系统.

1NoSQL简介

NoSQL也称作NotonlySQL,是随着互联网的发展为处理海量数据而产生的.NoSQL最早的起源可追溯至1991年BerklyDB的发布.该数据库采用的是以Key-Value键值对为存储类型的Hash数据库.但是由于自身的局限,该数据库只适用于存储类型相对简单,而且对插入和读取数据操作速度要求极高的场合,所以该数据库没有被广泛使用.随着Web2.0时代的到来,传统型关系数据库越来越难以应付海量的用户动态数据以及高并发的读写数据请求.2006年,Google发表了关于Bigtable的一篇论文,预示着非关系型数据库时代的到来.此后,越来越多的非关系型数据库产品如雨后春笋般出现,其中具有代表性的有基于键值对存储类型的Cassandra和Hbase;基于文档存储类型的MongoDB和CouchDB;基于集合存储类型的Redis等.它们的出现,掀起了NoSQL数据库研究的热潮.本文研究的内容正是建立在文档式存储类型的非关系型数据库MongoDB之上.

1.1文档式存储系统――MongoDB

MongoDB是介于关系数据库和非关系数据库之间的一个基于分布式文件存储的数据库.相比于传统型数据库,MongoDB有非常好的可扩展性,同时也支持对数据建立索引.MongoDB最大的特点是其支持的查询语言非常强大,语法类似于面向对象查询语言,国内知名的互联网公司如淘宝网、大众点评和视觉中国都在使用MongoDB数据库.

基于MongoDB的特殊测井分布式数据库系统参考属性评定
有关论文范文主题研究: 关于数据库的论文范文数据库 大学生适用: 专科论文、函授论文
相关参考文献下载数量: 73 写作解决问题: 如何写
毕业论文开题报告: 文献综述、论文总结 职称论文适用: 刊物发表、中级职称
所属大学生专业类别: 如何写 论文题目推荐度: 优秀选题

2数据模型

该系统根据MongoDB数据库文档存储的特点,设计了具体的业务数据模型,主要业务模型如图1所示.

从图1中可以看出,磁带转储存储记录表作为井表的一个字段进行存储,这样的设计模式不仅降低了查询时井表和磁带转储表连接操作的开销,而且由于合入的数据在磁盘上更可能存放在一起,可以提高读取/写入的速度,从而提高了系统效率.

3分布式数据库系统架构

3.1总体架构

本系统采用Struts2+Spring3+Hibernate4框架集成开发的B/S体系结构,如图2所示.设计模式采用流行的MVC模式,最大程度上将系统按层次划分.

系统采用Hibernate作为持久层实现框架,持久层建立与数据库的连接,并提供一个数据库连接池,用来管理与数据库间的各种事务和回滚操作.通过ORM技术,将数据表映射为Ja类,并通过HibernateFactory实现对数据表的操作.持久层向业务层提供统一、规范的原子怎么写作,用于屏蔽业务数据的存储、组织和访问的细节,实现业务数据的充分共享.

怎么写作层是对业务的封装,该层将所有业务进行独立封装.每种业务都会被封装成独立的类,怎么写作之间的依赖通过Spring进行管理.

控制层进行逻辑处理,将怎么写作层的业务通过某种方式组织成若干组处理流程.

显示层采用HTML+CSS+jQuery技术,用于向用户展示操作界面.

Spring框架将持久层(Hibernate)、怎么写作层、控制层(Struts2)进行组装,可以有效地解决开发的复杂性问题.通过AOP和IOC两个关键技术,Spring可以有效简化代码,并对业务进行可配置化的组装,从而提升开发效率,增强系统稳定性.

3.2物理架构

本系统的物理架构采用基于MongoDB的分布式数据库系统.一台数据库怎么写作器存放一个Router,它的用途是路由Config.一个Config,它负责管理Shard1和Shard2.3个Mongod组成的Shard1.一台数据库从怎么写作器用来平衡负载,存放3个Mongod组成Shard2.其中,Shard1和Shard2中有一个是主节点Master,其他两个是从节点Sle.从节点可以备份主节点的数据,从而保证主节点宕机后从节点可以代替主节点.通过该配置使得该系统具有很强的容错能力和故障恢复能力.该系统的物理模型结构如图3所示.


4性能测试

该测试在相同的配置环境中对MySQL和MongoDB进行并发性分析,性能对比如图4所示.

CPU:IntelCorei52.2GHz

内存:8GB

操作系统:WindowsServer2003

由图4可以看出,在并发量小于20的情况下,基于MongoDB数据库的分布式系统的查询效率和基于关系型数据库的非分布式系统差别不大,当并发量大于50以后基于非关系型数据库的分布式数据库系统的表现更加稳定,非分布式系统性能急剧下降.

综上所述,基于MongoDB的分布式数据库系统在高并发的情境下更稳定,且MongoDB自身具有易扩展的特性,系统在不更改软件的情况下通过添加新的计算机硬件并设置为Shard节点来达到扩展性能的目的.

5总结

本文设计并实现了基于MongoDB的特殊测井分布式数据库系统,在实际运行的过程中,该系统稳定、高效.我们可以看出非关系型数据库在面对高并发情境、大数据量和可扩展性方面显示出强大的优势.但是非关系型数据库并不是要取代传统的关系型数据库,而是二者应用在不同场合,取长补短,为新的应用提供更好的解决方案.

主要参考文献

[1]FayChang,JeffreyDean,SanjayGhemawat,etal.Bigtable:ADistributedStorageSystemforStructuredData[C]//Proceedingsofthe7thSymposiumonOperatingSystemsDesignandImplementation,2006.

[2]沈姝.NoSQL数据库技术及其应用研究[D].南京:南京信息工程大学,2012.

[3]姚林,张永库.NoSQL的分布式存储与扩展解决方法[J].计算机工程,2012,38(6).