一种电能质量海量数据存储及读取方法

文档序号:6522620阅读:262来源:国知局
一种电能质量海量数据存储及读取方法
【专利摘要】本发明涉及一种电能质量海量数据存储及读取方法,所述方法包括:(1)将电能质量海量数据采用键值对形式存储;(2)将键值对以序列化的方式存储在文件中;(3)实时数据写入时,根据设备ID定位该监测点数据区,通过指针定位监测数据的相应存储区;(4)根据所要获取数据的指标类别码,读取记录槽中的相应数据。本发明中键值对存储方式将每个数据文件都切割成数据块进行存储,对数据库中数据访问都是以数据块作为最小单位,提高了系统访问速度,数据文件管理和存取方式充分考虑了电能质量数据多指标、多粒度的特点,以及电能质量数据应用需求。
【专利说明】一种电能质量海量数据存储及读取方法
【技术领域】
[0001]本发明属于电力系统,具体讲涉及一种电能质量海量数据存储及读取方法。
【背景技术】
[0002]随着电能质量监测系统发展,监测点规模不断扩大,监测数据容量越来越大,现有的关系型数据库无法满足数量和并发量的增长需求。目前主流的实时数据库,将数据常驻内存,可实现海量数据的快速访问。针对电能质量监测数据特点,建立适用于实时数据库的数据模型和数据处理方法,将提高电能质量监测系统的海量数据处理和高速并发访问能力。

【发明内容】

[0003]针对现有技术的不足,本发明提供一种电能质量海量数据存储及读取方法,本发明适用于实时数据库管理的电能质量数据存储及读取方法,基于键值对的电能质量数据存储方式,适用于电能质量实时数据库的数据文件管理和内存管理模式,适用于海量电能质量数据存取管理方式。
[0004]本发明的目的是采用下述技术方案实现的:
[0005]一种电能质量海量数据存储及读取方法,其改进之处在于,所述方法包括
[0006](I)将电能质量海量数据采用键值对形式存储;
[0007](2)将键值对以序列化的方式存储在文件中;
[0008](3)实时数据写入时,根据设备ID定位该监测点数据区,通过指针定位监测数据的相应存储区;
[0009](4)根据所要获取数据的指标类别码,读取记录槽中的相应数据。
[0010]优选的,所述步骤(I)包括键值对数据中,每个键对应一个值,将电能质量监测设备ID作为键;此设备监测指标的测量值放到值的数据区中。
[0011]进一步地,所述设备监测指标的测量值包括电压偏差、频率偏差、三相不平衡、电压波动与闪变、谐波和间谐波。
[0012]进一步地,所述每个值区内,监测的测量值按指标类别进行分析和编码,通过计算偏移量快速定位数据块。
[0013]优选的,所述步骤(3)中指针包括以200毫秒、3秒、I分钟和10分钟为数据粒度的四个存储区。
[0014]优选的,所述步骤(3)包括所述实时数据写入数据带有时戳,所述时戳与数据区首部的时刻点之差小于10分钟,则直接由时间差获得数据区的偏移,可直接将数据写入内存,同时启动数据向上的聚合操作;
[0015]所述实时数据写入数据带有时戳,所述时戳与数据区首部的时刻点之差大于或等于10分钟,则起动后台线程,将此段数据区写入文件。
[0016]优选的,所述步骤(4)包括数据的存储时段按2小时来划分,每个被划分出的单元对应文件头上的某个记录槽位,所述槽位直接指向文件内的数据块。
[0017]进一步地,所述文件按年目录组织,对于跨年度的时段则读取多个目录内的文件。
[0018]与现有技术比,本发明的有益效果为:
[0019]本发明针对电能质量监测系统,提出了基于键值对的数据模型、存储管理以及海量数据存取方式。
[0020]本发明中键值对存储方式将每个数据文件都切割成数据块进行存储,对数据库中数据访问都是以数据块作为最小单位,提高了系统访问速度。
[0021]本发明中数据文件管理和存取方式充分考虑了电能质量数据多指标、多粒度的特点,以及电能质量数据应用需求。
[0022]本发明应用于电能质量监测系统,能够实现大规模数据的存储和高速并发访问。
【专利附图】

【附图说明】
[0023]图1为本发明提供的一种电能质量海量数据存储及读取方法中键值对存储方式示意图。
[0024]图2为本发明提供的一种电能质量海量数据存储及读取方法中文件管理方式示意图。
[0025]图3为本发明提供的一种电能质量海量数据存储及读取方法中存储管理方式示意图。
[0026]图4为本发明提供的一种电能质量海量数据存储及读取方法中电能质量历史数据读取方式示意图。
【具体实施方式】
[0027]下面结合附图对本发明的【具体实施方式】作进一步的详细说明。
[0028]1、如图1所示,本发明将电能质量数据采用键值对(key-value)形式存储,利用键值对将各监测点数据封装为索引节点,按树或列表的形式来组织索引节点,提高数据查询速度。
[0029]其中,键值对数据中,每个键(key)对应一个值(value)。键为ID,将电能质量监测设备ID作为键;此设备所有监测指标的测量值(如,电压偏差、频率偏差、三相不平衡、电压波动与闪变、谐波、间谐波等)都放到值的数据区中。在一个值区内,监测数据按指标类别进行分析和编码,通过计算偏移量快速定位数据块。
[0030]由于主流实时库对值只能进行整块区域的操作,将监测点所有指标的数据集中放入一个键值对,内存占用相对较大,为了避免频繁地读取整块值区域,在内存中建立当前值的缓冲区,仅当值区更新到尾部时才启动对数据库的写操作。
[0031]2、键值对以序列化的方式存储在文件中。利用内存和通用文件系统,通过快速计算出偏移量的方法满足应用需求。
[0032]如图2所示,文件管理方式,包括文件目录、文件结构、数据结构。文件按年组织目录,各监测点每年的数据按照数据粒度分类存储,数据粒度可分为200毫秒、3秒、I分钟、10分钟和2小时,具体设计根据实际应用情况。各个文件的内部,将I年数据按2小时为单位划分,两小时数据区按照时间顺序排列。两小时数据区内,包括该数据区类型码(200毫秒、3秒、I分钟、10分钟或2小时)、数据长度、以及每个时刻的数据。每个时刻的数据,包括各个电能质量指标的测量值,以及值的品质。
[0033]如图3所示,内存管理采用二叉树方式管理,通过操作系统的锁机制来控制对此二叉树的并发访问,通过线程池技术来完成树内数据向文件写的操作。二叉树中每个节点中,以设备ID作为键值,为200毫秒、3秒、I分钟和10分钟粒度数据划分独立的存储区域。
[0034]3、内存树数据结构存储当前十分钟内的数据,以监测设备的ID作为键值,通过指针定位该监测点的数据区,包含四个指针,分别指向以200毫秒、3秒、I分钟和10分钟为数据粒度的四个存储区。
[0035]其中,当实时数据写入时,首先找到监测设备相应的内存节点,再根据数据粒度找到相应的数据区。实时数据写入的数据带有时戳,若此时戳与数据区首部的时刻点之差小于10分钟,则直接由时间差获得数据区的偏移,可直接将数据写入内存,同时启动数据向上的聚合操作。
[0036]例如:每当写到15个200ms周期的数据时,则起动聚合操作,生成一个3秒周期的数据;类似地,再由3秒数据向I分钟周期聚合,依次类推。
[0037]其中,当实时数据写入时,实时数据写入的数据带有时戳,若此时戳与数据区首部的时刻点之差大于或等于10分钟,则起动后台线程,将此段数据区写入文件。200毫秒、3秒、I分钟、10分钟和2小时数据文件分目录存储,为便于直接往这5个文件指针中写数据,将打开这5个文件后的指针存放于该监测设备的内存节点内。文件头用于记录一年中以2小时为单位的各记录槽,槽内数值用于记录该单位时刻的数据区的偏移。根据这批数据的开始时间找到对应的槽位,将数据写入文件的尾部,同时将该段数据的偏移记录到相应的槽位内。
[0038]4、历史数据的读取为:
[0039]历史数据的存储时段按2小时来划分,每个被划分出的单元对应文件头上的某个记录槽位,而这些槽位直接指向文件内的数据块。再根据所要获取数据的指标类别码,可很快地读取记录槽所指向数据区中的相应数据,如图4所示。文件按年目录组织,对于跨年度的时段相当于读取多个目录内的文件。
[0040]本发明采用面向服务的技术为客户端软件提供服务接口,以便于应用程序的二次开发,以及数据应用的扩展。所用的接口可封装为C库接口和Web服务接口两种,C库接口采用CORBA服务总线,Web服务接口采用Apache或Web Logical等。
[0041]为保证设备ID具有全网唯一性,可将IEC61970CM的URI映射为设备ID,并采用唯一的映射规则。各类电能质量指标的编码也应具有全网唯一性。采用面向服务的方式,通过访问服务接口为全网的用户提供统一的编码。
[0042]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的【具体实施方式】进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种电能质量海量数据存储及读取方法,其特征在于,所述方法包括 (1)将电能质量海量数据采用键值对形式存储; (2)将键值对以序列化的方式存储在文件中; (3)实时数据写入时,根据设备ID定位该监测点数据区,通过指针定位监测数据的相应存储区; (4)根据所要获取数据的指标类别码,读取记录槽中的相应数据。
2.如权利要求1所述的一种电能质量海量数据存储及读取方法,其特征在于,所述步骤(I)包括键值对数据中,每个键对应一个值,将电能质量监测设备ID作为键;此设备监测指标的测量值放到值的数据区中。
3.如权利要求2所述的一种电能质量海量数据存储及读取方法,其特征在于,所述设备监测指标的测量值包括电压偏差、频率偏差、三相不平衡、电压波动与闪变、谐波和间谐波。
4.如权利要求2所述的一种电能质量海量数据存储及读取方法,其特征在于,所述每个值区内,监测的测量值按指标类别进行分析和编码,通过计算偏移量快速定位数据块。
5.如权利要求1所述的一种电能质量海量数据存储及读取方法,其特征在于,所述步骤(3)中指针包括以200毫秒、3秒、I分钟和10分钟为数据粒度的四个存储区。
6.如权利要求1所述的一种电能质量海量数据存储及读取方法,其特征在于,所述步骤(3)包括所述实时数据写入数据带有时戳,所述时戳与数据区首部的时刻点之差小于10分钟,则直接由时间差获得数据区的偏移,可直接将数据写入内存,同时启动数据向上的聚合操作; 所述实时数据写入数据带有时戳,所述时戳与数据区首部的时刻点之差大于或等于10分钟,则起动后台线程,将此段数据区写入文件。
7.如权利要求1所述的一种电能质量海量数据存储及读取方法,其特征在于,所述步骤(4)包括数据的存储时段按2小时来划分,每个被划分出的单元对应文件头上的某个记录槽位,所述槽位直接指向文件内的数据块。
8.如权利要求7所述的一种电能质量海量数据存储及读取方法,其特征在于,所述文件按年目录组织,对于跨年度的时段则读取多个目录内的文件。
【文档编号】G06F17/30GK103593486SQ201310656313
【公开日】2014年2月19日 申请日期:2013年12月6日 优先权日:2013年12月6日
【发明者】王同勋 申请人:国家电网公司, 国网智能电网研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1