APP下载

基于缓存的补采策略在智能用电系统中应用

2014-03-15陶晓峰陈方周

电力工程技术 2014年1期
关键词:三元组哈希数据包

陶晓峰,陈方周

(国网电力科学研究院,江苏南京210003)

用电信息采集系统中主要采用采集终端汇总电表数据再上送主站的采集模式[1],其中采集终端和系统主站之间主要采用GPRS无线通信方式[2]。目前由于地域等原因会造成无线通信信号不稳定,导致周期采集任务中有些任务会执行失败,造成部分数据缺失。为了保证系统采集数据的成功率和完整率[3],需要引入数据补采机制作为对自动周期定时采集的一种必要补充。为了减少大型数据库I/O操作和提高检索效率,文中引入了一种基于缓存的海量数据的补采策略,通过在缓存中保存数据采集成功与否的状态标识,直接遍历缓存数据,有效减少对数据库的检索压力,通过制定延时同步回写数据库机制对采集成功标识进行持久化保存。

1数据补采策略设计

数据补采策略主要由补采服务、分布式缓存、采集服务3个服务子模块组成。补采服务主要负责根据设定的采集任务将每个数据采集状态在分布式缓存中进行初始化,根据指定的采集任务模块检索缓存中的数据采集状态发起补采任务,任务保存在分布式缓存的任务队列,采集机获取补采任务进行执行,通过解析数据报文,采用数据包标记(DPM)方法对采集数据包进行快速解析,获取数据信息,对采集成功的数据在分布式缓存中进行标记。补采流程如图1所示。

2数据采集状态标识设计

在数据规模越来越大的情况下,采用遍历数据库判断数据缺失的方式会增加数据库I/O的负载,而采用对系统中的数据采集项进行内存初始化打点设计方案,则可减少数据库的直接操作。

图1数据补采流程

哈希技术在信息系统的数据存储与访问中占有重要地位,它把关键词直接映射为存储地址,达到快速寻址的目的。根据用电采集系统的物理结构,一个采集设备下负责收集几百到上千不等的用户电表数据,数据采集状态标识采用位打点标记法,系统中通过数据时标Time、测量点号Pn和数据项编码Fn共同组成数据信息的三元组作为关键词Key;1个用户电表的数据状态代表1个数据位,数据位值0代表没采集成功,1代表采集成功,将所有用户电表的数据采集状态按测量点号Pn组合成一个状态位字符串作为值value,将采集设备的三元组信息关键词Key和状态位字符串值value进行内存映射成哈希表。

根据数据分布和哈希函数的效率选择哈希函数,文中采用乘法哈希函数:

式中:H(m)为哈希运算函数;mi,pi分别为信息关键词和状态位值。此哈希函数利用乘法的不相关性[4],提高了检索速度。

3数据包标记法

用电信息系统中数据的采集交互都是以数据包按照一定的协议格式传输的,DPM法的主要思想是数据包发送给采集服务器后,由数据包解析器将接收到的数据包中直接分离出数据标识信息[5],对数据格式和详细的数据明细采用弱化处理方式提高解析效率。数据包的格式如图2所示,标记服务通过从数据包中提取出数据单元标识,DPM将解析出数据时间、测量点号、数据项编码项作为数据信息的三元组,根据三元组信息组合成Key,根据上述乘法哈希函数可以快速定位数据采集状态标记。

图2数据报文信息域

4补采任务的快速生成

采集终端下所有用户的数据采集状态,根据采集任务模板预先初始化生成状态位字符,状态位通过位标识符都标记在了状态字符串内,将这些状态位字符保存在分布式缓存中[6],采集成功的数据会更新相对应的状态位字符,补采服务定期遍历每个终端的状态字符串,将状态位转化为数组形式,可以一次通过检索出状态位是0的数组索引下标值,此下标值代表了数据信息的三元组中的Pn值,根据Pn值可以定位到唯一的用户电表。根据这些信息生成不同的补采任务,前置模块可以并发执行补采任务。

5数据补采优化技术

5.1数据采集状态持久化机制

对于保存在内存中的采集状态是一种暂态的状态,当程序重新初始化时就会丢失,因此需要对这些状态进行持久化保存,在数据库中根据Map的Key和Value设计对应的数据表,以数据信息三元组中的3个属性作为联合主键,状态属性为Varchar2属性,采用延迟回写机制减少对数据库的操作[7]。

5.2上线即补采策略

对于GPRS无线通信方式,特别是信号覆盖差的地方其在线时间很不稳定,通过上线即补采策略可以在最大程度上消除信号不稳定带来的影响,其原理是当终端上线后触发一个上线事件给补采服务,补采服务监听到上线事件后检索内存中的采集状态,实时地生成补采任务[8]。补采流程如图3所示。

5.3周期补采策略

图3上线即补采流程

设定周期补采策略时根据系统和通信信道的空闲程度可以调整补采的策略,通过灵活定义正则表达式(一种文本模式,包括普通字符和特殊字符)来设定周期补采的时间和补采频率,对一些优先级高的任务可以提高补采频率实现提升采集成功率的目标。

6应用效果

该补采策略在青海、新疆、江西、安徽等多个省级集中部署的用电信息采集系统中进行了实际运用,实践证明对系统提高采集成功率有明显效果,通过在一天之中的多次补采,采集成功率至少提高了5%以上。如表1所示。

表1补采策略应用和采集成功率关系表

7结束语

该补采策略针对智能用电信息采集中数据量大、通信不是很稳定的特点设计的,实践证明该模块对用电采集系统提高采集成功率有明显效果,目前已经成为系统中必不可少的关键模块。

[1]李卫良,田 伟,王晓丹.以AMI为核心的智能配用电技术体系研究[J].江苏电机工程,2011,30(3):1-6.

[2]Q/GDW378.1—2009电力用户用电信息采集系统设计导则:主站软件设计导则[S].北京:中国电力出版社,2009.

[3]Q/GDW376.1—2009电力用户用电信息采集系统通信协议:主站与采集终端通信协议[S].北京:中国电力出版社,2009.

[4]CORMEN T H,LEISERSON C E,RIVEST R L,et al.Introduc-tion to Algorithms.Third Edition.Cambridge,Massachusetts London,England :The MIT Press,,2009:253-285.

[5]阎 冬,王玉龙,苏 森,等.基于协作交互的概率性数据包标记溯源方法[J].北京邮电大学学报,2012,35(1):51-54.

[6]周功业,吴伟杰,陈进才.一种基于对象存储系统的元数据缓存实现方法[J].计算机科学,2007,34(10):146-148.

[7]卢成均.缓存机制及其在数据存取层中的应用模型研究[J].计算机应用与软件, 2008,25(12):172-174.

[8]钱立军,李新家.用电信息采集系统中数据比对功能的实现及应用[J].江苏电机工程,2013,32(2):64-65.

猜你喜欢

三元组哈希数据包
二维隐蔽时间信道构建的研究*
哈希值处理 功能全面更易用
特征标三元组的本原诱导子
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
文件哈希值处理一条龙
关于余挠三元组的periodic-模
一个时态RDF存储系统的设计与实现
SmartSniff
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件