一种电能表数据动态存储方法

文档序号:8258366阅读:544来源:国知局
一种电能表数据动态存储方法
【技术领域】
[0001] 本发明涉及电能表领域,具体的涉及一种电能表数据动态存储方法。
【背景技术】
[0002] 智能电能表的行业标准要求智能电能表能够记录电压、电流、功率、电能等多种数 据,每种数据的字节长度是不一样的,同时,在电能表使用的过程当中,需要记录的数据种 类可能会变化,记录的间隔也可能会变化。
[0003] 传统的记录方法中,单向链表法采用流水账的方式,将一条一条的负荷记录做成 单向链表。每条记录中都记录本条记录的数据长度,这样使用每条记录的起始地址加上每 条记录的数据长度就可以得知下一条记录的起始地址,遍历所有的记录后即可查找到所需 的记录。但单向链表法查找非常耗时,且每条记录需记录额外的时标,降低了有效数据的比 重,浪费了存储空间。
[0004] 固定空间分配法为每条数据记录分配固定大小的存储空间和固定的记录间隔时 间。这样由于记录不管在记录间隔上还是在数据长度上都是均匀的,所以查找时,可根据 需要查找的时间点准确的计算出其存储地址,查找非常迅速。但如果以最大数据长度和最 短记录间隔分配存储空间,则会极大的浪费存储空间。如果不以最大数据长度和最短记录 间隔分配存储空间,则无法响应电能表使用过程中的记录数据种类更改以及记录间隔的更 改。
[0005] 传统的记录方法无法同时实现存储空间的高利用率和迅速查找的目的。

【发明内容】

[0006] 本发明为克服上述现有技术所述的至少一种缺陷(不足),提出了一种电能表数 据动态存储方法,其能有效提高存储空间的利用率,且可以达到快速查找记录数据的目的。
[0007] 为了实现上述目的,本发明采用如下技术方案:
[0008] -种电能表数据动态存储方法,包括以下步骤:
[0009] S0.获取电能表数据;
[0010] S1.根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中 相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
[0011] 进一步所述步骤S1具体为:
[0012] S101.获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是 否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103 ;
[0013] S102.获取当前数据在相应数据分区中的偏移量;
[0014] S103.在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的 数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;
[0015] S104.根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按 照该存储地址将当前数据写入相应数据分区中;并将当前数据记录设为该相应数据分区的 最后一条记录;
[0016] S105.在索引存储区对相应数据分区的相应索引信息进行更新。
[0017] 进一步所述步骤S102包括,
[0018] 获取相应数据分区第一条数据的记录时标、最后一条数据的记录时标和数据类 型;根据相应数据分区第一条数据的记录时标、最后一条数据的记录时标、数据类型计算得 到当前数据在相应数据分区中的偏移量。
[0019] 进一步,所述的数据的记录密度包括数据类型和记录间隔时间。
[0020] 进一步,所述的索引存储区的数据结构包括数据分区的起始地址、数据分区的第 一条记录时标、数据分区的最后一条记录时标、数据分区的数据类型、数据分区的记录间隔 时间。
[0021] 进一步,所述步骤S101之前还包括步骤S100.检查记录间隔时间是否符合设定, 若是,则进入步骤S101,反之,则返回重新检查。
[0022] 进一步,其还包括步骤S2,所述的步骤S2为对数据进行查询。
[0023] 进一步,所述的步骤S2包括:
[0024] S201.以待查数据的时标为依据,在索引存储区遍历所有索引查找待查数据相应 的索引;
[0025] S202.根据相应索引在数据存储区中查找相应的数据分区,并获取相应数据分区 的起始地址和第一条数据记录的起始时标;
[0026] S203.根据相应数据分区的第一条数据记录的起始时标、待查数据的时标和数据 类型计算得到待查数据在相应数据分区中的偏移量;
[0027] S204.通过计算数据分区的起始地址加上偏移量得到待查数据的存储地址;
[0028] S205.从该存储地址中读取待查数据,并根据相应索引信息解析数据的记录密度。
[0029] 本发明的有益效果为:本发明将存储区划分为索引存储区和数据区,根据记录密 度存储相应的数据,分区内数据的定义与解析全部依赖于索引的描述。由于只有新的记录 密度才会新建索引,因此索引的数量相对数据记录条数就大大减少,从而遍历索引所需的 时间则也相应减少,当寻找到匹配的索引后,由于该索引相应的分区内记录密度相同,就可 以使用算术计算的方法,直接定位到存储空间,查找时间可忽略,从而整体的查找速度大大 提高。每个分区中不仅不存在无用的存储空间,而且每条数据无需时标以及数据格式描述 信息,分区和分区之间也属于无缝衔接,整个方案只需要额外的少量的索引数据,因此保持 了存储空间的高利用率。本发明可实现存储空间的高利用率和快速查找数据的目的。
【附图说明】
[0030] 图1为电能表数据动态存储方法的示意图;
[0031] 图2为电能表存储动态数据的流程图;
[0032] 图3为电能表存储数据的优选流程图;
[0033] 图4为电能表查询数据的流程图;
[0034] 图5为存储区域内索引存储区和数据存储区的关系图;
[0035]图6为一具体实施例中索引存储区的数据结构示意图;
[0036] 图7为一具体实施例中数据分区的数据结构示意图;
[0037] 图8为一具体实施例中电能表负荷曲线的动态存储流程图;
[0038] 图9为一具体实施例中电能表负荷曲线的查询流程图。
【具体实施方式】
[0039] 下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不 限于此。
[0040] 如图1所示的一种电能表数据动态存储方法的示意图,包括以下步骤:
[0041] S0.获取电能表数据;
[0042] S1.根据获取的电能表数据的记录密度,将获取的电能表数据写入数据存储区中 相应的数据分区,并对索引存储区中的索引信息进行相应的更新。
[0043] 进一步,如图2所示的电能表存储动态数据的流程图,所述步骤S1具体为:
[0044] S101.获取当前数据的记录密度,根据当前数据的记录密度判断在数据存储区是 否存在相应的数据分区,若存在则进入步骤S102,若否则进入步骤S103;
[0045] S102.获取当前数据在相应数据分区中的偏移量;
[0046] S103.在数据存储区新建相应数据分区,获取相应数据分区的起始地址,将当前的 数据记录设为该新建数据分区的第一条记录,偏移量为0,在索引存储区新建相应的索引;
[0047] S104.根据相应数据分区的起始地址加上偏移量得到当前的数据的存储地址,按 照该存储地址将当前数据写入相应数据分区中;并将当前数据记
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1