CN104572486A - 一种电能表数据动态存储方法 - Google Patents
一种电能表数据动态存储方法 Download PDFInfo
- Publication number
- CN104572486A CN104572486A CN201510047476.5A CN201510047476A CN104572486A CN 104572486 A CN104572486 A CN 104572486A CN 201510047476 A CN201510047476 A CN 201510047476A CN 104572486 A CN104572486 A CN 104572486A
- Authority
- CN
- China
- Prior art keywords
- data
- record
- electric energy
- subregion
- index
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明公开了一种电能表数据动态存储方法,包括以下步骤, 获取电能表数据;根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。发明根据记录密度存储相应的数据,数据分区内数据的定义与解析全部依赖于索引的描述,只需要额外的少量的索引数据,可保持存储空间的高利用率。索引的数量相对数据记录条数大大减少,遍历索引所需的时间则也相应减少,从而实现快速查找数据的目的。发明可广泛应用于数据存储领域。
Description
技术领域
本发明涉及电能表领域,具体的涉及一种电能表数据动态存储方法。
背景技术
智能电能表的行业标准要求智能电能表能够记录电压、电流、功率、电能等多种数据,每种数据的字节长度是不一样的,同时,在电能表使用的过程当中,需要记录的数据种类可能会变化,记录的间隔也可能会变化。
传统的记录方法中,单向链表法采用流水账的方式,将一条一条的负荷记录做成单向链表。每条记录中都记录本条记录的数据长度,这样使用每条记录的起始地址加上每条记录的数据长度就可以得知下一条记录的起始地址,遍历所有的记录后即可查找到所需的记录。但单向链表法查找非常耗时,且每条记录需记录额外的时标,降低了有效数据的比重,浪费了存储空间。
固定空间分配法为每条数据记录分配固定大小的存储空间和固定的记录间隔时间。这样由于记录不管在记录间隔上还是在数据长度上都是均匀的,所以查找时,可根据需要查找的时间点准确的计算出其存储地址,查找非常迅速。但如果以最大数据长度和最短记录间隔分配存储空间,则会极大的浪费存储空间。如果不以最大数据长度和最短记录间隔分配存储空间,则无法响应电能表使用过程中的记录数据种类更改以及记录间隔的更改。
传统的记录方法无法同时实现存储空间的高利用率和迅速查找的目的。
发明内容
本发明为克服上述现有技术所述的至少一种缺陷(不足),提出了一种电能表数据动态存储方法,其能有效提高存储空间的利用率,且可以达到快速查找记录数据的目的。
为了实现上述目的,本发明采用如下技术方案:
一种电能表数据动态存储方法,包括以下步骤:
S0.获取电能表数据;
S1.根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
进一步所述步骤S1具体为:
S101.获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103;
S102.获取当前数据在相应数据分区中的偏移量;
S103.在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;
S104.根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按照该存储地址将当前数据写入相应数据分区中;并将当前数据记录设为该相应数据分区的最后一条记录;
S105.在索引存储区对相应数据分区的相应索引信息进行更新。
进一步所述步骤S102包括,
获取相应数据分区第一条数据的记录时标、最后一条数据的记录时标和数据类型;根据相应数据分区第一条数据的记录时标、最后一条数据的记录时标、数据类型计算得到当前数据在相应数据分区中的偏移量。
进一步,所述的数据的记录密度包括数据类型和记录间隔时间。
进一步,所述的索引存储区的数据结构包括数据分区的起始地址、数据分区的第一条记录时标、数据分区的最后一条记录时标、数据分区的数据类型、数据分区的记录间隔时间。
进一步,所述步骤S101之前还包括步骤S100.检查记录间隔时间是否符合设定,若是,则进入步骤S101,反之,则返回重新检查。
进一步,其还包括步骤S2,所述的步骤S2为对数据进行查询。
进一步,所述的步骤S2包括:
S201.以待查数据的时标为依据,在索引存储区遍历所有索引查找待查数据相应的索引;
S202.根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区的起始地址和第一条数据记录的起始时标;
S203.根据相应数据分区的第一条数据记录的起始时标、待查数据的时标和数据类型计算得到待查数据在相应数据分区中的偏移量;
S204.通过计算数据分区的起始地址加上偏移量得到待查数据的存储地址;
S205.从该存储地址中读取待查数据,并根据相应索引信息解析数据的记录密度。
本发明的有益效果为:本发明将存储区划分为索引存储区和数据区,根据记录密度存储相应的数据,分区内数据的定义与解析全部依赖于索引的描述。由于只有新的记录密度才会新建索引,因此索引的数量相对数据记录条数就大大减少,从而遍历索引所需的时间则也相应减少,当寻找到匹配的索引后,由于该索引相应的分区内记录密度相同,就可以使用算术计算的方法,直接定位到存储空间,查找时间可忽略,从而整体的查找速度大大提高。每个分区中不仅不存在无用的存储空间,而且每条数据无需时标以及数据格式描述信息,分区和分区之间也属于无缝衔接,整个方案只需要额外的少量的索引数据,因此保持了存储空间的高利用率。本发明可实现存储空间的高利用率和快速查找数据的目的。
附图说明
图1为电能表数据动态存储方法的示意图;
图2为电能表存储动态数据的流程图;
图3为电能表存储数据的优选流程图;
图4为电能表查询数据的流程图;
图5为存储区域内索引存储区和数据存储区的关系图;
图6为一具体实施例中索引存储区的数据结构示意图;
图7为一具体实施例中数据分区的数据结构示意图;
图8为一具体实施例中电能表负荷曲线的动态存储流程图;
图9为一具体实施例中电能表负荷曲线的查询流程图。
具体实施方式
下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
如图1所示的一种电能表数据动态存储方法的示意图,包括以下步骤:
S0.获取电能表数据;
S1.根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
进一步,如图2所示的电能表存储动态数据的流程图,所述步骤S1具体为:
S101.获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103;
S102.获取当前数据在相应数据分区中的偏移量;
S103.在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;
S104.根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按照该存储地址将当前数据写入相应数据分区中;并将当前数据记录设为该相应数据分区的最后一条记录;
S105.在索引存储区对相应数据分区的相应索引信息进行更新。
进一步所述步骤S102具体为:获取相应数据分区第一条数据的记录时标、最后一条数据的记录时标和数据类型;根据相应数据分区第一条数据的记录时标、最后一条数据的记录时标、数据类型计算得到当前数据在相应数据分区中的偏移量。
进一步,所述的数据的记录密度包括数据类型和记录间隔时间。
进一步,所述的索引存储区的数据结构包括数据分区的起始地址、数据分区的第一条记录时标、数据分区的最后一条记录时标、数据分区的数据类型、数据分区的记录间隔时间。
进一步,如图3所示的电能表存储数据的优选流程图,所述步骤S101之前还包括步骤S100.检查记录间隔时间是否符合设定,若是,则进入步骤S101,反之,则返回重新检查。
进一步,该电能表动态数据存储方法还包括步骤S2,所述的步骤S2为对数据进行查询。
进一步,所述的步骤S2包括:
S201.以待查数据的时标为依据,在索引存储区遍历所有索引查找待查数据相应的索引;
S202.根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区的起始地址和第一条数据记录的起始时标;
S203.根据相应数据分区的第一条数据记录的起始时标、待查数据的时标和数据类型计算得到待查数据在相应数据分区中的偏移量;
S204.通过计算数据分区的起始地址加上偏移量得到待查数据的存储地址;
S205.从该存储地址中读取待查数据,并根据相应索引信息解析数据的记录密度。
具体实施例:
所述数据的记录密度包括数据种类和记录间隔。
如图1所示的一种电能表动态数据存储方法的示意图,包括以下步骤:
S0.获取电能表数据;
S1.根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
将存储区域划分为索引存储区和数据存储区;索引存储区的数据结构如图6所示,包括相应数据分区的起始地址D1、相应数据分区第一条记录时标t1、相应数据分区最后一条记录时标t2、相应数据分区的数据类型、相应数据分区的记录间隔时间△t。数据分区的数据结构如图7所示,分区中的记录数据长度L是等长的,内容为纯数据。记录的内容由相应索引中的“相应分区的数据类型”定义。
索引存储区与数据存储区的相应关系如图5所示;
进一步,作为优选的实施方式,如图8所示的电能表负荷曲线的动态存储流程图,存储数据包括以下步骤:
S800.检查记录间隔时间是否符合设定,如果是则进入步骤S101,如果否则返回重新检查;
S801.获取待存负荷曲线的记录密度,判断当前负荷曲线的记录密度是否存在相应的分区,若存在进入步骤S8020到S8023,若否则进入步骤S8030到S8033;
S802.计算当前数据在相应数据分区中的偏移量△d;
S8021.以当前数据分区的起始地址D1加上偏移量△d得到待存负荷曲线记录的存储地址d;
S8022.按照存储地址d将当前负荷曲线记录存入数据分区;
S8023.在索引存储区对索引信息中的相应数据分区最后一条记录时标t2进行更新。
S8030.在数据存储区新建数据分区,待存负荷曲线记录设为分区第一条记录,偏移量为△d=0,在索引存储区新建相应的索引;
S8031.以当前数据分区的起始地址D1加上偏移量△d得到待存负荷曲线记录的存储地址d;
S8032.按照存储地址d将当前负荷曲线记录存入数据分区;
S8033.在索引存储区对相应索引信息进行更新,更新信息包括数据分区的起始地址D1、数据分区第一条记录时标t1、数据分区的最后一条记录时标t2、数据分区的数据类型、数据分区的记录间隔时间△t。
进一步,如图9所示的电能表负荷曲线的查询流程图,查询数据包括以下步骤:
S901.以待查负荷曲线记录的时标t为依据,在索引存储区遍历所有索引查找待查负荷曲线记录相应的索引;
S902.根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区的起始地址D1和第一条负荷曲线记录的起始时标t1;
S903.计算待查负荷曲线记录在相应数据分区中的偏移量△d;
S904.以当前数据分区的起始地址D1加上偏移量△d得到待查负荷曲线记录的存储地址d;
S905.从存储地址d中读取待查数据,根据相应索引信息解析数据的记录密度。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种电能表数据动态存储方法,其特征在于,包括以下步骤:
S0. 获取电能表数据;
S1. 根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
2. 根据权利要求1所述的一种电能表数据动态存储方法,其特征在于,所述步骤S1具体为:
S101. 获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103;
S102. 获取当前数据在相应数据分区中的偏移量;
S103. 在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;
S104. 根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按照该存储地址将当前数据写入相应数据分区中;并将当前数据记录设为该相应数据分区的最后一条记录;
S105. 在索引存储区对相应数据分区的相应索引信息进行更新。
3. 根据权利要求3所述的一种电能表数据动态存储方法,其特征在于,所述步骤S102包括:
获取相应数据分区第一条数据的记录时标、最后一条数据的记录时标和数据类型;根据相应数据分区第一条数据的记录时标、最后一条数据的记录时标、数据类型计算得到当前数据在相应数据分区中的偏移量。
4. 根据权利要求1至4任一项所述的一种电能表数据动态存储方法,其特征在于,
所述的数据的记录密度包括数据类型和记录间隔时间。
5. 根据权利要求1所述的一种电能表数据动态存储方法,其特征在于,所述的索引存储区的数据结构包括数据分区的起始地址、数据分区的第一条记录时标、数据分区的最后一条记录时标、数据分区的数据类型、数据分区的记录间隔时间。
6. 根据权利要求2所述的一种电能表数据动态存储方法,其特征在于,所述步骤S101之前还包括步骤S100. 检查记录间隔时间是否符合设定,若是,则进入步骤S101,反之,则返回重新检查。
7. 根据权利要求2所述的一种电能表数据动态存储方法,其特征在于,其还包括步骤S2,所述的步骤S2为对数据进行查询。
8. 根据权利要求7所述的一种电能表数据动态存储方法,其特征在于:所述的步骤S2包括:
S201. 以待查数据的时标为依据,在索引存储区遍历所有索引查找待查数据相应的索引;
S202. 根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区的起始地址和第一条数据记录的起始时标;
S203. 根据相应数据分区的第一条数据记录的起始时标、待查数据的时标和数据类型计算得到待查数据在相应数据分区中的偏移量;
S204. 通过计算数据分区的起始地址加上偏移量得到待查数据的存储地址;
S205. 从该存储地址中读取待查数据,根据相应索引信息解析数据的记录密度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047476.5A CN104572486B (zh) | 2015-01-29 | 2015-01-29 | 一种电能表数据动态存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510047476.5A CN104572486B (zh) | 2015-01-29 | 2015-01-29 | 一种电能表数据动态存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572486A true CN104572486A (zh) | 2015-04-29 |
CN104572486B CN104572486B (zh) | 2017-08-29 |
Family
ID=53088615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510047476.5A Active CN104572486B (zh) | 2015-01-29 | 2015-01-29 | 一种电能表数据动态存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572486B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978627A (zh) * | 2015-06-13 | 2015-10-14 | 烟台东方威思顿电气股份有限公司 | 一种电力采集终端更新内部电能表档案的方法 |
CN105301349A (zh) * | 2015-09-22 | 2016-02-03 | 深圳市科陆电子科技股份有限公司 | 电能表停电显示的处理方法 |
CN106383662A (zh) * | 2016-08-30 | 2017-02-08 | 中国电力科学研究院 | 一种电能表大容量数据存储方法及装置 |
CN110209887A (zh) * | 2019-05-08 | 2019-09-06 | 国电南瑞三能电力仪表(南京)有限公司 | 一种多类型数据记录的动态存储及检索方法和系统 |
CN110851544A (zh) * | 2019-11-12 | 2020-02-28 | 芜湖盟博科技有限公司 | 一种使用远程服务控制远程车辆的方法 |
CN113220692A (zh) * | 2021-06-01 | 2021-08-06 | 烟台东方威思顿电气有限公司 | 负荷曲线数据存取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546318A (en) * | 1994-12-16 | 1996-08-13 | General Electric Company | Method of generating electrical energy metering quantities in a multi-channel load profile recorder |
CN1403825A (zh) * | 2002-10-16 | 2003-03-19 | 陈立珉 | 智能电能计量控制集成电表 |
CN102062811A (zh) * | 2009-11-18 | 2011-05-18 | 上海金陵智能电表有限公司 | 一种带无线抄表模块的单相静止式电能表 |
CN103412889A (zh) * | 2013-07-19 | 2013-11-27 | 深圳市金正方科技股份有限公司 | 智能电表的数据存储和查询方法及其系统 |
-
2015
- 2015-01-29 CN CN201510047476.5A patent/CN104572486B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546318A (en) * | 1994-12-16 | 1996-08-13 | General Electric Company | Method of generating electrical energy metering quantities in a multi-channel load profile recorder |
CN1403825A (zh) * | 2002-10-16 | 2003-03-19 | 陈立珉 | 智能电能计量控制集成电表 |
CN102062811A (zh) * | 2009-11-18 | 2011-05-18 | 上海金陵智能电表有限公司 | 一种带无线抄表模块的单相静止式电能表 |
CN103412889A (zh) * | 2013-07-19 | 2013-11-27 | 深圳市金正方科技股份有限公司 | 智能电表的数据存储和查询方法及其系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978627A (zh) * | 2015-06-13 | 2015-10-14 | 烟台东方威思顿电气股份有限公司 | 一种电力采集终端更新内部电能表档案的方法 |
CN104978627B (zh) * | 2015-06-13 | 2018-05-29 | 烟台东方威思顿电气有限公司 | 一种电力采集终端更新内部电能表档案的方法 |
CN105301349A (zh) * | 2015-09-22 | 2016-02-03 | 深圳市科陆电子科技股份有限公司 | 电能表停电显示的处理方法 |
CN106383662A (zh) * | 2016-08-30 | 2017-02-08 | 中国电力科学研究院 | 一种电能表大容量数据存储方法及装置 |
CN106383662B (zh) * | 2016-08-30 | 2020-08-21 | 中国电力科学研究院 | 一种电能表大容量数据存储方法及装置 |
CN110209887A (zh) * | 2019-05-08 | 2019-09-06 | 国电南瑞三能电力仪表(南京)有限公司 | 一种多类型数据记录的动态存储及检索方法和系统 |
CN110851544A (zh) * | 2019-11-12 | 2020-02-28 | 芜湖盟博科技有限公司 | 一种使用远程服务控制远程车辆的方法 |
CN113220692A (zh) * | 2021-06-01 | 2021-08-06 | 烟台东方威思顿电气有限公司 | 负荷曲线数据存取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104572486B (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572486A (zh) | 一种电能表数据动态存储方法 | |
Li et al. | A performance comparison of SQL and NoSQL databases | |
CN104778203B (zh) | 费控智能电能表中负荷记录分块索引存储及查询方法 | |
CN103377210B (zh) | 建立增量型导航数据库的方法和对数据库进行更新的方法 | |
CN105868421A (zh) | 一种数据管理方法及装置 | |
CN109255055A (zh) | 一种基于分组关联表的图数据存取方法和装置 | |
CN108205577A (zh) | 一种数组构建、数组查询的方法、装置及电子设备 | |
CN105653609A (zh) | 基于内存的数据处理方法及装置 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN102375827A (zh) | 一种对版本化的电网模型数据库进行快速加载的方法 | |
JP2017509043A (ja) | グラフデータクエリ方法および装置 | |
CN104424219A (zh) | 一种数据文件的管理方法及装置 | |
CN114077680A (zh) | 一种图数据的存储方法、系统及装置 | |
Ramesh et al. | Data modelling for discrete time series data using Cassandra and MongoDB | |
CN103714013A (zh) | 一种文件系统的存储空间的配置方法及装置 | |
CN104331432A (zh) | 一种适用于截面访问模式的电网海量时序数据存取方法 | |
CN106503040B (zh) | 适用sql查询方法的kv数据库及其创建方法 | |
Min et al. | A system framework for map air update navigation service | |
CN107256132A (zh) | 一种基于性能测试的异构Redis集群存储分配方法 | |
CN106227769A (zh) | 数据存储方法及装置 | |
CN104021210A (zh) | 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN104008209A (zh) | 以GeoJSON格式结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN104679764A (zh) | 一种图数据检索方法和装置 | |
CN105095457B (zh) | 历史数据存储管理方法 | |
CN103458479A (zh) | Wsn中基于内容的路由表的数据路由方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |