一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高效的数据存储及查询管理方法与流程

2021-10-24 10:41:00 来源:中国专利 TAG:数据存储 查询 高效 方法 管理


1.本发明涉及数据存储及查询技术领域,尤其涉及一种高效的数据存储及查询管理方法。


背景技术:

2.传统监控系统中,往往随着点位历史数据存储量增多,点位数据查询速度变慢甚至查询失败,严重影响用户查询体验。另外,以往的监控系统中当存储点位历史数据量过大时,需要技术人员远程或者出差进行清除过时数据;在手动清除过时数据过程中,对正在运行的监控系统存在干扰,甚至直接影响到监控系统数据存储和查询过程。同时,在传统监控中,当平台或系统宕机时,宕机前一段时间数据经常丢失和重启后查询速度变慢。
3.在某些监控系统中常常采用关系性数据库对点位历史数据管理,当关系性数据库在表数据量比较大时,关系性数据库操作(读写)性能也会大大降低。在项目运维中,经常遇到系统运行一段时间后,数据查询速度明显下降,很多情况就是由于存储数据量大未能及时清理导致的。


技术实现要素:

4.本发明主要解决现有的技术在监控系统中点位历史数据查询速度慢、需要定时清除过时数据、宕机恢复时数据丢失或查询速度慢的问题;提供一种高效的数据存储及查询管理方法,将从监控系统中采集的源数据以点位的形式按照时间序列进行内存、本地缓存文件和本地存档文件存储,以便达到快速查询点位历史数据、定时清除过时数据、保证宕机前数据不丢失和宕机恢复后对点位历史数据较快查询。
5.本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明包括数据存储过程和数据查询过程,其中,
6.所述数据存储过程包括以下步骤:
7.a1、数据获取单元将采集到源数据分别发送到内存数据存储单元和索引缓存数据单元,同步执行步骤a2和步骤a3;
8.a2、内存数据存储单元将点位信息存储到内存单向链表簇中;
9.a3、索引缓存数据单元将点位信息存储到本地缓存文件中;
10.a4、过时数据清除单元定时清除过时的本地存档文件,并删除数据管理文件相关信息;
11.所述数据查询过程包括以下步骤:
12.b1、数据请求单元通过网络协议向数据查询单元发送数据请求;
13.b2、数据查询单元接收数据请求生成查询请求,按照内存数据>缓存数据>存档数据的优先级的顺序进行数据查询,将查询到的查询数据返回至数据请求单元。
14.将从监控系统中采集的源数据以点位的形式按照时间序列同时进行内存、本地缓存文件和本地存档文件存储,以便达到快速查询点位历史数据、定时清除过时数据、保证宕
机前数据不丢失和宕机恢复后对点位历史数据较快查询。
15.作为优选,所述的步骤a2具体包括:
16.a21、从头遍历内存中对应点位单向链表结点;
17.a22、计算当前系统时间time1与结点时间time0之差并记作δt0,若δt0>t1,则删除点位结点,并返回步骤a21,若δt0≤t1,则将time0记作δtime0,终止遍历操作,执行步骤a23;
18.a23、将新点位结点追加到单向链表尾部,并将尾部结点指针记作δp0;
19.a24、将数据头中对应点位数据结点时间改为δtime0,最后一个结点指针记作δp0。
20.作为优选,所述的步骤a3中,索引缓存数据单元接收到点位信息后以多线程方式将点位信息分别同时记录到多份备份缓存文件中。
21.作为优选,所述的步骤a3具体包括:
22.a31、索引缓存数据单元通过检测数据管理文件查询当前本地缓存文件创建时间time2;
23.a32、计算当前本地缓存文件创建时间time2与当前系统时间time1之差并记作δt1,若δt1>t2,则将当前缓存文件进行存档,删除对应备份缓存文件,修改数据管理文件中相关信息,重新创建本地新缓存文件并将创建缓存文件信息记录到数据管理文件,执行步骤a33,反之,若δt1≤t2,则直接执行步骤a33;
24.a33、将点位记录到本地缓存文件。
25.作为优选,所述的多份备份缓存文件之间相互校验。
26.缓存文件具有多个备份,备份之间相互校验,减少数据丢失或错误的概率。
27.作为优选,所述的步骤a4具体包括:
28.过时数据清除单元定时检测本地存档文件是否过时,计算存档时间time3与当前系统时间time1之差并记作δt2,若δt2>t3,则清除过时本地存档文件,并删除数据管理文件相关信息。
29.作为优选,所述的步骤b2具体包括:
30.b21、数据查询单元将查询请求传递至内存数据存储单元,内存数据存储单元依据查询请求时间和点位信息检测内存中点位数据是否满足查询请求,若满足,则从内存单向链表簇中获取查询数据,并将查询数据通过数据查询单元返回至数据请求单元,结束数据查询过程,反之,则执行步骤b22;
31.b22、内存数据存储单元将查询请求转发至索引缓存数据单元,索引缓存数据单元依据查询请求中的时间和点位信息检索数据管理文件,若满足查询请求的点位数据全部在本地缓存文件中,则从本地缓存文件中获取查询数据,并将查询数据依次通过索引缓存数据单元和数据查询单元返回至数据请求单元,结束数据查询过程,反之,则执行步骤b23;
32.b23、若步骤b22中满足查询请求的点位数据部分或全部在本地存档文件中,则向索引存档数据单元请求将对应的本地存档文件进行逆存档生成本地缓存文件,并修改数据管理文件相关信息,并将本地缓存文件生成完毕的消息发送至索引缓存数据单元;
33.b24、从步骤b23中生成的本地缓存文件中获取查询数据,并将查询数据依次通过索引缓存数据单元和数据查询单元返回至数据请求单元,结束数据查询过程。
34.作为优选,所述的步骤b23中本地存档文件逆存档生成的本地缓存文件的生命周期等于普通本地缓存文件时长。
35.本发明的有益效果是:将从监控系统中采集的源数据以点位的形式按照时间序列同时进行内存、本地缓存文件和本地存档文件存储,以便达到快速查询点位历史数据、定时清除过时数据、保证宕机前数据不丢失和宕机恢复后对点位历史数据较快查询。
附图说明
36.图1是本发明数据存储过程的一种流程图。
37.图2是本发明单向链表簇的一种结构示意图。
38.图3是本发明单向链表簇中的数据块的一种结构示意图。
39.图4是本发明缓存文件中的点位存储格式的一种结构示意图。
40.图5是本法明数据查询过程的一种流程图。
具体实施方式
41.下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
42.实施例:本实施例的一种高效的数据存储及查询管理方法,包括数据存储过程和数据查询过程,其中,
43.如图1所示,数据存储过程包括以下步骤:
44.a1、数据获取单元将采集到源数据(监控系统数据)分别发送到内存数据存储单元和索引缓存数据单元,同步执行步骤a2和步骤a3。
45.a2、内存数据存储单元将点位信息存储到内存单向链表簇中,具体包括:
46.a21、从头遍历内存中对应点位单向链表结点;
47.a22、计算当前系统时间time1与结点时间time0之差并记作δt0,若δt0>t1,则删除点位结点,并返回步骤a21,若δt0≤t1,则将time0记作δtime0,终止遍历操作,执行步骤a23;
48.a23、将新点位结点追加到单向链表尾部,并将尾部结点指针记作δp0;
49.a24、将数据头中对应点位数据结点时间改为δtime0,最后一个结点指针记作δp0。
50.单向链表簇如图2所示,包括数据头部信息和数据信息,头部信息主要存储单向链表簇中已有点位名、第一个数据结点时间和最后一个结点指针信息,数据信息将点位数据以单向链表的形式进行存储且单向链表内部点位数据按照时间顺序存储。单向链表均有一个头结点,头结点中存储内容:链表开始标识和下一结点地址,如果下一结点不存在,下一结点地址为null。除头结点外的其他结点均包含一个数据块,数据块内容详见图3,包含time(时间)和value(值),time是value产生时时间。
51.a3、索引缓存数据单元将点位信息存储到本地缓存文件中,索引缓存数据单元接收到点位信息后以多线程方式将点位信息分别同时记录到多份备份缓存文件中,具体包括:
52.a31、索引缓存数据单元通过检测数据管理文件查询当前本地缓存文件创建时间time2;
53.a32、计算当前本地缓存文件创建时间time2与当前系统时间time1之差并记作δt1,若δt1>t2,则将当前缓存文件进行存档,删除对应备份缓存文件,修改数据管理文件中相关信息(存档时间:time1,备份数:0,是否已存档:1),重新创建本地新缓存文件并将创建缓存文件信息(缓存文件名、缓存文件创建时间:time2、备份数:num1、是否已存档:0)记录到数据管理文件,执行步骤a33,反之,若δt1≤t2,则直接执行步骤a33;
54.a33、将点位记录到本地缓存文件。
55.缓存文件具有多个备份,备份值的取值范围为1~5,备份之间相互校验,减少数据丢失或错误的概率。
56.缓存文件中的点位存储格式如图4所示,包含数据头部信息和数据信息,头部信息主要存储单向链表簇中已有点位名和第一个数据的时间,数据信息将点位数据以数据分区信息进行存储,一个点位所有历史数据存储在同一分区中。一个数据结构包括时间和值,数据点直接按照时间顺序收尾相接的形式依次存储。
57.a4、过时数据清除单元定时清除过时的本地存档文件,并删除数据管理文件相关信息,具体包括:过时数据清除单元定时检测本地存档文件是否过时,计算存档时间time3与当前系统时间time1之差并记作δt2,若δt2>t3,则清除过时本地存档文件,并删除数据管理文件相关信息。
58.如图5所示,数据查询过程包括以下步骤:
59.b1、数据请求单元通过网络协议向数据查询单元发送数据请求。
60.b2、数据查询单元接收数据请求生成查询请求,按照内存数据>缓存数据>存档数据的优先级的顺序进行数据查询,将查询到的查询数据返回至数据请求单元,具体包括:
61.b21、数据查询单元将查询请求传递至内存数据存储单元,内存数据存储单元依据查询请求时间和点位信息检测内存中点位数据是否满足查询请求,若满足,则从内存单向链表簇中获取查询数据,并将查询数据通过数据查询单元返回至数据请求单元,结束数据查询过程,反之,则执行步骤b22;
62.b22、内存数据存储单元将查询请求转发至索引缓存数据单元,索引缓存数据单元依据查询请求中的时间和点位信息检索数据管理文件,若满足查询请求的点位数据全部在本地缓存文件中,则从本地缓存文件中获取查询数据,并将查询数据依次通过索引缓存数据单元和数据查询单元返回至数据请求单元,结束数据查询过程,反之,则执行步骤b23;
63.b23、若步骤b22中满足查询请求的点位数据部分或全部在本地存档文件中,则向索引存档数据单元请求将对应的本地存档文件进行逆存档生成本地缓存文件,并修改数据管理文件相关信息(存档文件恢复缓存文件时间:当前时间,备份数:1,是否已存档:1),并将本地缓存文件生成完毕的消息发送至索引缓存数据单元;
64.b24、从步骤b23中生成的本地缓存文件中获取查询数据,并将查询数据依次通过索引缓存数据单元和数据查询单元返回至数据请求单元,结束数据查询过程。
65.步骤b23中本地存档文件逆存档生成的本地缓存文件的生命周期等于普通本地缓存文件时长。
66.在上述2个过程中,数据管理文件包含以下相关信息,如表1所示,
[0067][0068]
表1数据管理文件相关信息
[0069]
将从监控系统中采集的源数据以点位的形式按照时间序列同时进行内存、本地缓存文件和本地存档文件存储,以便达到快速查询点位历史数据、定时清除过时数据、保证宕机前数据不丢失和宕机恢复后对点位历史数据较快查询。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜