以MongoDB为基础的分布式传数据存储的探究和运用

发布时间:2019-09-23 17:58

第一章 绪论
 
如果一个传感器 20 秒一次采集数据的话,那么一天将采集 4320 条数据。如果 1000 个传感器那么一天就将产生 430 多万条数据。累计一年的话,就将近 15 亿条数据。如果随着传感器的大量普及,传感器越多,数据量越大。其次,大量传感器同时进行数据存储,造成同一时间有大量的数据存储请求,所以传感器数据有着高并发的存储特点。环境数据数据类型单一,一般都是按时间分布,记录传感器数据的单列数据,这些记录的传感器数据与其他表或数据的关联性不大。从上表可以看出,以温度传感器为例,在几分钟之内,温度传感器监测的数据变化缓慢,即使是变化了,也仅仅是在误差范围内变化。大宏观的环境下,短暂时间内,环境本身的变化就是相对比较缓慢。即可说明环境数据在短暂时间内变化缓慢甚至是没有变化。环境数据有着数据量巨大以及环境数据的数据模型简单的特点,对事务、ACID 要求不高。相对于关系数据库,NoSQL 数据库在处理海量数据以及简单模型的数据上有着巨大的性能优势。1、NoSQL 支持水平扩展,以满足海量数据的存储和处理要求。2、NoSQL 支持分布式编程模型 MapReduce,支持海量数据的并行数据处理。从三种主流的 NoSQL 数据库来看,相对于 HBase、Dynamo 这两个 NoSQL 数据库而言,MongoDB 数据库在数据的查询、数据库接口方面明显优于前两个数据库。而这两点恰恰是我在考虑整个接口设计时比较关注的两个方面。值得一提的是 MongoDB 数据库的查询功能,MongoDB 有着较为丰富的查询,尤其是 MongoDB 的索引功能对传感器数据查询有很好的作用,较快提高了查询速度。所以在进行数据库接口开发的时候,选择了 MongoDB 数据库是实用价值的。一样从温度数据来看,温度数据是按时间分布,逐个记录传感器监测到的数据。这些监测到的数据结合时间可以看出:数据是随着时间缓慢渐变的,但又是连续的。温度不会突然跳变,也不会一直不变。同样,联系到宏观的环境,环境本身也是随着时间连续变化,不会突然跳变。
本文的主要内容是对云部署下的基于 MongoDB 传感器数据存储的研究和应用。本文对NoSQL 数据库技术做了详细的介绍,并在 MongoDB 数据库的基础上,开发了封装 MongoDB数据库服务的 WebService 接口,提供了虚拟的数据库操作接口。针对如何有效的去除传感器数据冗余的这个问题,采用了旋转门算法,并且切合现有的传感器数据,实现了接口服务中的压缩模块,在数据压缩实验的基础上,采用二次过滤的方式解决数据失真的问题。本文的组织结构如下:第一章:介绍了云计算中的数据管理技术的课题背景,NoSQL 系统、研究现状和意义。第二章:对云数据管理技术的综述,首先介绍了云计算技术,了解了云计算的核心技术,从而引导到了数据管理技术。然后,介绍了 NoSQL 数据库系统,分析了 NoSQL 数据库系统的概念、思想和特征,并逐个介绍了各个类别的主流 NoSQL 数据库。其次,结合了实验室现有的传感器,分析了传感器数据的特点。最后将 NoSQL 数据库以及传统的关系数据库相互比较,结合传感器数据的特点,得出 MongoDB 数据库是传感器数据存储的一个很好的载体的结论。第三章:以 MongoDB 数据库为基础,为了实现传感器数据存储,结合现有的传感器,设计了基于 MongoDB 的 WebService 接口服务。以模块化的形式,将整个接口服务分成三个部分,在现有的传感器数据存储的需求上进行设计。第四章:根据第三章提出的 MongoDB 的 WebService 接口服务设计,以模块化的形式,分别实现了设计目标,最后对实现的 WebService 接口服务进行了测试。第五章:对论文的研究成果进行总结并提出了进一歩研究的方向。
 
第三章 MongoDB 数据库 WebService 接口的设计................. 25
3.1 接口系统的总体设计目标和结构 .......................... 25
3.1.1 系统的设计要求 ............................... 25
3.1.2 系统的总体结构 ............................. 26
3.2 各组成部分的设计 ......................... 28
3.2.1 服务器端接口模块 .................................... 28
3.2.2 MongoDB 数据库模块 ....................... 29
3.2.3 数据压缩模块 .................................. 34
3.3 本章小结 ..................................... 36
第四章 MongoDB 数据接口实现........................................... 37
4.1 环境及平台搭建 .................................................... 37
4.2 服务器端接口模块实现 ................................... 43
4.2.1 WCF 技术简介.......................................... 43
4.2.2 数据库操作类的实现 ........................................... 44
4.2.3 发布函数的建立 ........................ 47
4.2.4 函数发布 ............................................................... 48
4.3 数据库端 MongoDB 实现 ............................... 49
4.3.1 数据库表的建立 .................................... 49
4.3.2 数据库迁移 ................................................... 50
4.3.3 数据库索引建立 ................................. 54
4.4 数据压缩模块实现 ............................................... 55
4.4.1 旋转门压缩算法 ............................................... 56
4.4.2 压缩算法流程图 ............................ 57
 
总结
本文在进行传感器数据存储的工程实践中,发现传感器数据存储时,存在下面几个问题:由于传感器数据以秒级采集数据,大量传感器同时采集数据时,会造成巨大的数据并发存储需求;同时,传感器在采集数据之后,日积月累,数据量会非常大。无论是高并发的存储需求还是大数据量,都对传统的关系数据库带来一定的困难。传感器数据以秒级采集数据,本身数据在固定的时间范围内,数据的变化不大,甚至没有变化,如果将这些没有信息量数据进行存储,不仅没有必要,而且没有意义。如何在传感器数据中去除冗余,这个在传感器数据存储中,是个需要考虑的一个环节。最后,传感器数据存储通常使用着不同的终端节点对传感器数据进行存储或者查询。这个时候,需要一个跨平台的机制,以满足不同客户端的需求。针对这提出的问题,本文尝试着采用如下方式进行测试与实践。对于第一个问题,本文尝试使用 NoSQL 数据库 MongoDB 数据库来作为传感器数据的存储。MongDB 数据库与生俱来的自动分片机制能够很好的满足传感器数据的高并发、大数据量的存储需求。对于第二个问题,本文尝试对简单的温度数据使用旋转门数据压缩算法进行数据去冗余处理。并且在压缩数据之后,对压缩产生的数据失真现象,采用二次过滤,向未采集的时间段插入标志数据以解决。对于第三个问题,本文将采用将对 MongDB 数据库的操作进行封装,向外提供常规的数据操作函数,以 WebService 接口的方式发布出来。这样无论是网页、客户端还是手机终端都可以访问 MongDB 数据库,进行传感器数据的存储和查询。
 
参考文献
[1] 吴吉义,平玲娣,潘雪增,李卓. 云计算:从概念到平台[J]. 电信科学. 2009(12).
[2] 智慧的地球 ———IBM 动态基础架构白皮书 .
[3] Larimore M, Treichler J. Convergence behavior of the constant modulus algorithm[C]. IEEE InternationalConference on ICASS Agrawal, Rakesh et al.. The Claremont report on database research. SIGMODRecord. ACM. 2008, 37 (3): 9–19. Error: Bad DOI specified.ISSN 0163-5808. P,1983:13-16.
[4] CloudTPS: Scalable Transactions for Web Applications in the Cloud. Globule.org [2010-03-29].
[5] Large-scale Incremental Processing Using Distributed Transactions and Notifications. The 9th USENIXSymposium on Operating Systems Design and Implementation (OSDI 2010), Oct 4–6, 2010, Vancouver, BC,Canada [2010-10-15].
[6] Supporting Multi-row Distributed Transactions with Global Snapshot Isolation Using Bare-bones HBase.The 11th ACM/IEEE International Conference on Grid Computing (Grid 2010), Oct 25-29, 2010, Brussels,Belgium [2010-10-15].
[7] Cassandra: Structured Storage System http://www.dxlws.com/bylwfw/ over a P2P Network (PDF),2010-03-29.
[8] Chang F.J. Dean.Bigtable: A distributed storage system for structured data[J].ACM Transactions onComputer Systems (TOCS),2008:26.
[9] Baiyuzhong.淘宝数据魔方技术架构解析[J]. 程序员,2011(08).
[10] 姚建.视频网站的Big Data解决之道[J].程序员,2011(08).
 

如果您有论文代写需求,可以通过下面的方式联系我们
点击联系客服

提交代写需求

如果您有论文代写需求,可以通过下面的方式联系我们。