掌桥专利:专业的专利平台
掌桥专利
首页

一种传感器数据的存储和查询方法

文献发布时间:2024-04-18 19:58:26


一种传感器数据的存储和查询方法

技术领域

本发明属于传感器数据处理技术领域,涉及一种传感器数据的存储和查询方法。

背景技术

传感器智能化发展,传感器的功能越来越丰富多样,对流量、质量、里程、传送计数等传感器都有周期性累计数据的查询需求,例如查询历史单日流量、单日出货量、单次出行路程等,这些功能实现的必要条件是快速的存储和查询大量数据。然而,传感器设备往往因功耗、空间、成本等原因,处理器和存储器的配置较低,难以实现数据的快速存储和查询。目前,通过优化算法、数据标记等方法实现数据的快速存储和查询成为主导方向。

实现数据快速存储和查询最重要的快速匹配定位查找到目标位置,目前,多采用以空间换时间的方法,即存储时对数据标记建立索引区,优化查询时匹配定位效率。

数据标记建立索引区的本质是对数据提取特征归类分组,匹配定位时先遍历索引区的特征,然后将检索范围缩小到组内,随着数据量的增加必定需求分组越多、索引深度越大建立多级索引,如此匹配定位的算法使查询效率大大降低,而且占用的存储资源也会显著增加。

发明内容

有鉴于此,本发明的目的在于提供一种传感器数据的存储和查询方法,解决存储和查询效率与配置需求的冲突,以及因数据量增加造成的算法效率降低和存储资源损耗增大的的技术问题。

为达到上述目的,本发明提供如下技术方案:

一种传感器数据的存储和查询方法,该方法包括以下步骤:

S1:初始化存储区,包括清除存储区域所有数据、将清除数据的存储区域按照目标数据内容的长度划分成若干数据块,利用划分的第一数据块存储目标数据存储的起始时间,其他数据块存储应用数据;

S2:存储数据,获取目标存储时间、起始时间和数据块长度进行计算得到目标数据块的存储偏移地址,将存储偏移地址与第一存储地址进行计算准确的得到目标存储段在存储区的地址,在计算出的地址快速写入目标数据,存储的目标数据为绝对累计值;

S3:数据查询,获取查询时间段的起止时间、起始时间和数据块长度准确计算出查询数据时间段的起止的偏移地址,将起止偏移地址分别和第一存储地址进行计算得到查询时间段的绝对起止地址,即目标数据块在存储区的地址,快速读取目标数据块的绝对起止地址中的目标数据,根据读取的目标数据块的绝对起止地址中的目标数据,计算得到所查询时间段存储数据的累计值增量,得到查询结果。

进一步的,所述S1中,初始化存储区,具体为:清除单元的所有字节数据为0xFF;

将存储区按照目标数据的长度LENGTH_DATA,划分成块地址为ADDR0~ADDRm的若干数据块,其中,获取目标数据存储起始时间写入到第一存储地址ADDR0中,记作基点TIME_BASE,ADDR1~ADDRm存储应用数据。

进一步的,所述S1中,划分区域长度是数据块长度的整数倍。

进一步的,所述S2中,存储数据,具体为:读取第一存储地址ADDR0的存储内容,获得存储时间基点TIME_BASE;

将获取的时间基点TIME_BASE、目标存储时间和据块长度进行计算得到目标数据块的存储偏移地址,计算公式如下:

ADDR_OFFSET=(TIME_STORE-TIME_BASE)*LENGTH_DATA (1)

将目标数据块的存储偏移地址和第一存储地址ADDR0进行计算得到目标数据块的绝对地址,计算公式如下:

ADDR_STORE=ADDR0+ADDR_OFFSET (2)

并将目标数据存储在计算得到的绝对地址中,存储的目标数据为绝对累计值。

进一步的,所述S3中,数据查询,具体为:读取第一存储地址ADDR0的存储内容,获得存储时间基点TIME_BASE,将获取的查询时间段的起止时间分别与起始时间和数据块长度进行计算分别得到查询数据时间段的起止的偏移地址,计算公式如下:

ADDR_OFFSET_START=(TIME_QUERY_START-TIME_BASE)*LENGTH_DATA(3)

ADDR_OFFSRT_END=(TIME_QUERY_END-TIME_BASE)*LENGTH_DATA (4)

其中,TIME_QUERY_START为查询时间段的开始时间,TIME_QUERY_END为查询时间段的结束时间,ADDR_OFFSET_START为查询时间段开始的偏移地址,ADDR_OFFSRT_END为查询时间段结束的偏移地址;

将起止偏移地址分别和第一存储地址ADDR0进行计算得到查询时间段的绝对起止地址,计算公式如下:

ADDR_START=ADDR0+ADDR_OFFSET_START (5)

ADDR_END=ADDR0+ADDR_OFFSRT_END (6)

其中,ADDR_START、ADDR_END分别为查询时间段的绝对起止地址,即目标数据块在存储区的地址;

快速读取目标数据块的绝对起止地址中的目标数据,得到:DATA_DST_START、DATA_DST_END;

根据读取的目标数据块的绝对起止地址中的目标数据,计算得到所查询时间段存储数据的累计值增量,即为查询结果,计算公式如下:

DATA_DST=DATA_DST_END-DATA_DST_START (7)。

本发明的有益效果在于:

第一:本发明可以大大降低存储查询效率对高性能硬件配置的需求,并且实施效率不受数据量大小的影响。

第二,本发明通过结构化数据建立隐性索引区实现传感器数据的快速存储和查询。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:

图1为快速存储和查询的方法示意图;

图2为数据结构化示意图;

图3为存储区初始化流程图;

图4为数据存储流程图;

图5为数据查询流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

请参阅图1~图5,为一种传感器数据的存储和查询方法。

在瓦斯抽放系统中,需要流量计年、月、日的混合累计流量、纯累计流量数据可查,甚至部分要求30天内小时累计流量可查,这里举一个日累计流量存储查询的例子。

结构化,流量计存储器总大小为32*1024字节,根据混合累计流量和纯累计流量得到目标数据长度为LENGTH_DATA=16字节,因此将存储区地址划分为ADDR0=0x00000000、ADDR1=0x00000010、...、ADDR2047=0x007FF0,共计2048个数据块,可记录1个起始时间和连续2047天的累计流量的数据。

初始化,先将存储区域整片清除写入0xFF,然后在ADDR0中写入起始时间的年月日,即TIME_BASE=2023年6月1日。

数据存储,流量计测量过程中,2023年6月2日结束时,流量计读取ADDR0的起始时间的年月日TIME_BASE=2023年6月1日,获取当前存储时间的年月日TIME_STORE=2023年6月2日,计算出存储偏移地址ADDR_OFFSET=0x00000010,进一步计算得到存储地址ADDR_STORE=0x00000010,将混合累计流量和纯累计流量写入到ADDR_STORE=0x00000010,一次存储结束。往后每天重复执行该过程存储数据。

数据查询,流量计测量过程中,收到查询2023年6月2日到2023年8月1日这一段时间的累积流量命令时,流量计读取ADDR0=0x00000000的起始时间的年月日TIME_BASE=2023年6月1日,与查询时间的开始时间TIME_QUERY_START=2023年6月2日、结束时间TIME_QUERY_END=2023年8月1日和数据块长度LENGTH_DATA=16计算得到查询时间段的开始时间的数据存储偏移地址ADDR_OFFSET_START=0x00000010和结束时间的数据存储偏移地址ADDR_OFFSET_END=0x000003D0,进一步与ADDR0起始地址计算得到查询时间段的数据存储绝对起止地址ADDR_START=0x00000010、ADDR_END=0x000003D0,快速读出混合累计流量起止数据DATA_DST_START1、DATA_DST_END1和纯累计流量起止数据DATA_DST_START2、DATA_DST_END2,计算得到2023年6月2日到2023年8月1日时间内的混合累计流量DATA_DST1和纯累计流量DATA_DST2:

DATA_DST1=DATA_DST_END1-DATA_DST_START1 (1)

DATA_DST2=DATA_DST_END2-DATA_DST_START2 (2)

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

相关技术
  • 一种数据查询方法、装置、电子设备及存储介质
  • 一种数据查询方法、装置、电子设备及存储介质
  • 一种元数据查询方法、装置、设备及计算机可读存储介质
  • 一种多元传感器数据的统一存储与查询方法及系统
  • 一种海量传感器数据存储与查询方法
技术分类

06120116487404