论文部分内容阅读
在大数据时代,工业领域中所产生的数据呈几何级数增长,其中对于数据采集与监视控制系统SCADA(Supervisory Control And Data Acquisition)而言,如何对传感器采集的数据进行高效存储是当前重要的研究方向。历史数据作为SCADA系统的重要组成部分,其能够有效地保证系统稳定与正常运行。在非关系型数据库(NoSQL,Not Only SQL)兴起之前,关系型数据库是进行历史数据存储的主要手段,但是面对海量历史数据的存储,关系型数据库已经无法满足SCADA系统在高并发、高实时、高可靠性方面的需求。在此背景下,对SCADA历史数据的存储进行研究具有十分重要的意义。本文主要围绕数据压缩算法和马尔可夫模型展开研究工作,其中将改进的旋转门算法(SDT,Swinging Door Trending)应用于SCADA历史数据存储前的数据预处理,并基于马尔可夫模型对MongoDB数据负载均衡算法进行优化与改进。主要研究内容如下:(1)针对关系型数据库在海量数据存储方面的不足,本文提出复制集+sharding的MongoDB集群存储方案;(2)根据SCADA历史数据中的状态量和模拟量的的特点分别提出数据压缩策略,重点研究了用于模拟量压缩的旋转门算法。针对旋转门算法在进行历史数据压缩时的不足,提出了基于正弦曲线的旋转门算法改进方案,并将其应用在SCADA历史数据存储前的数据预处理;(3)分析了三种搭建MongoDB集群的方式,即主从集群、分片集群与复制集+sharding集群,为了满足海量存储和动态扩容的需求,本文提出复制集+sharding集群的总体架构;(4)深入研究MongoDB的自动分片机制,针对其在数据均衡方面存在的不足,提出基于马尔可夫链的解决方案。利用马尔可夫的后无效性以及概率转移的特性对数据负载均衡算法进行改进,并通过实验证明改进数据负载均衡算法在数据均衡过程中可以降低数据块的转移量,提高MongoDB集群的读写性能。