数据查询方法、装置以及存储介质与流程

文档序号:26590142发布日期:2021-09-10 20:38阅读:85来源:国知局
数据查询方法、装置以及存储介质与流程

1.本发明属于大数据领域,具体提供一种数据查询方法、装置以及存储介质。


背景技术:

2.聚合在信息科学中是指对有关数据进行内容挑选、分析、归类,从而得到人们想要的结果。例如,在电动汽车的动力电池应用中,通常需要查询在指定时间范围内,某块动力电池的一个或几个指标的数据,如电流、电压等,并通过绘制折线图的方式,呈现过去一段时间内该指标的变化趋势,以此反映电池的使用状态和潜在问题。然而,动力电池数据上报频率较高,如果查询时间跨度很大,可能无法支持返回所有的原始数据,其主要原因在于,一是查询耗时较长,二是如果查询返回的数据量巨大,前段端渲染图像时可能会出现显示迟缓、甚至页面崩溃的情况。因此,当查询的数据量大于某一阈值时,数据查询操作返回的通常是执行聚合操作后的数据。
3.传统的聚合策略是基于查询时间范围、数据采样时间间隔和返回的数据量阈值而得到的,没有考虑查询时间范围内的实际数据量,这就导致只要满足聚合条件,就会执行基于查询时间范围的聚合策略,此时返回的数据无法最大限度地准确反映数据产生设备的情况。因此,现有的聚合策略缺乏灵活性,不能在各种不同情形下准确地进行数据查询。
4.相应地,本领域需要一种新的方案来解决上述问题。


技术实现要素:

5.为了解决现有技术中的上述问题,即为了解决现有聚合策略缺乏灵活性,不能在各种不同情形下准确地进行数据查询问题。在第一方面,本发明提出了一种数据查询方法,所述方法包括:在接收到数据查询请求时,获取查询时间范围内的实际数据量;将所述实际数据量与预设的数据量阈值进行比较;当所述实际数据量大于或等于所述数据量阈值时,选择性地根据聚合策略返回数据,其中,所述聚合策略由单个数据点的数据上报时间间隔表示;并且/或者当所述实际数据量小于所述数据量阈值时,直接返回原始数据。
6.在上述数据查询方法的一个实施方式中,所述聚合策略包括基于查询时间范围的第一聚合策略和基于实际数据量的第二聚合策略,“当所述实际数据量大于或等于所述数据量阈值时,选择性地根据聚合策略返回数据”的具体步骤包括:计算所述第一聚合策略和所述第二聚合策略;比较所述第一聚合策略和所述第二聚合策略,取数值小的为本次数据查询的实际聚合策略;将所述实际聚合策略与数据采样时间间隔相比较;当所述实际聚合策略大于所述数据采样时间间隔时,则根据所述实际聚合策略返回数据;并且/或者
当所述实际聚合策略小于或等于所述数据采样时间间隔时,则返回原始数据。
7.在上述数据查询方法的一个实施方式中,所述第一聚合策略的计算方法为:其中,t_downsample_1:基于查询时间范围的第一聚合策略;t_start:查询开始时间;t_end:查询结束时间;count_limit:数据量阈值。
8.在上述数据查询方法的一个实施方式中,所述第二聚合策略的计算方法为:其中,t_downsample_2:基于实际数据量的第二聚合策略;count_real:实际数据条数;count_limit:数据量阈值;t_sample:数据采样时间间隔。
9.在上述数据查询方法的一个实施方式中,“获取查询时间范围内的实际数据量”的方法包括:通过设置埋点来获得埋点数据并由此获得所述实际数据量,其中,所述埋点数据为时间点和所述时间点对应的时序数据库收到的数据数量。
10.在第二方面,本发明提出了一种数据查询装置,所述装置包括:实际数据量获取模块,其在接收到数据查询请求时获取查询时间范围内的实际数据量;数据聚合模块,其将所述实际数据量与预设的数据量阈值进行比较,当所述实际数据量大于或等于所述数据量阈值时,所述数据聚合模块选择性地根据聚合策略返回数据;并且/或者,当所述实际数据量小于所述数据量阈值时,所述数据聚合模块直接返回原始数据。
11.在上述数据查询装置的一个实施方式中,所述聚合策略包括基于查询时间范围的第一聚合策略和基于实际数据量的第二聚合策略,所述数据聚合模块具体通过下列方式选择性地根据聚合策略返回数据:计算所述第一聚合策略和所述第二聚合策略;比较所述第一聚合策略和所述第二聚合策略,取数值小的为本次数据查询的实际聚合策略;将所述实际聚合策略与实际数据采样时间间隔相比较;当所述实际聚合策略大于所述数据采样时间间隔时,则所述数据聚合模块根据所述实际聚合策略返回数据;并且/或者当所述实际聚合策略小于或等于所述数据采样时间间隔时,则所述数据聚合模块返回原始数据。
12.在上述数据查询装置的一个实施方式中,所述第一聚合策略的计算方法为:
其中,t_downsample_1:基于查询时间范围的第一聚合策略;t_start:查询开始时间;t_end:查询结束时间;count_limit:数据量阈值。
13.在上述数据查询装置的一个实施方式中,所述第二聚合策略的计算方法为:其中,t_downsample_2:基于实际数据量的第二聚合策略;count_real:实际数据条数;count_limit:数据量阈值;t_sample:数据采样时间间隔。
14.在上述数据查询装置的一个实施方式中,所述实际数据量获取模块通过下列方式获取查询时间范围内的实际数据量:通过设置埋点来获得埋点数据并因此获得所述实际数据量,其中,所述埋点数据为时间点和所述时间点对应的时序数据库收到的数据点数。
15.在第三方面,本发明提出了一种数据查询装置,所述装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并执行上述任一项方案所述的数据查询方法。
16.在第四方面,本发明提出了一种存储介质,所述存储介质适于存储多条程序代码,所述程序代码适于由处理器加载并运行以执行上述任一项方案所述的数据查询方法。
17.本领域技术人员能够理解的是,本发明的数据查询方案基于数据存储的实际数据量和查询时间范围来确定是否进行聚合以及选择相应的聚合策略,特别是当查询时间范围内的实际数据量低于预期数据量时,本发明能选择性地执行基于实际数据量的聚合操作,从而能尽可能多地返回数据,提高数据查询和分析的准确性。
附图说明
18.图1是本发明的一个实施例的数据查询方法的主要步骤流程图。
19.图2是本发明的选择性地根据聚合策略返回数据的详细步骤流程图。
20.图3是本发明的一个实施例的数据查询装置的主要架构框图。
具体实施方式
21.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。例如,尽管本发明的技术问题和技术方案是针对动力电池的数据提出的,但是,本发明的保护范围不应受此限制,而是应
该涵盖其他任何采用了本发明原理的情形。
22.首先参阅图1,图1是本发明的一个实施例的数据查询方法的主要步骤流程图,如图1所示,该数据查询方法包括:步骤s101:在接收到数据查询请求时,获取查询时间范围内的实际数据量;步骤s102:将实际数据量与预设的数据量阈值进行比较;步骤s103:基于比较结果,选择性地根据聚合策略返回数据或直接返回原始数据。
23.在本实施例中,结合电动汽车的动力电池的数据查询进行说明。作为示例,数据指标大屏显示系统需要显示指定时间范围内,某辆电动汽车动力电池的电压的历史数据,显示的图形方式为折线图。
24.在步骤s101中,数据查询请求通常由用户的应用系统,即本实施例中的数据指标大屏显示系统发起,时间范围通过设置查询的开始时间和结束时间来确定。
25.实际数据量是在查询请求指定的时间范围内,数据库实际存储的数据的数量。作为一个优选的实施例,实际数据量的获取可通过设置埋点的方式实现,通过设置埋点可以自动记录每个设备、每次数据传输、每次数据库操作等内容的信息。在本实施例中,埋点数据包括:动力电池的sn、时间信息以及对应时间点数据库存储的该动力电池上传的电池电压数据的累计数量。
26.埋点的设置方法为本领域的公知技术,本发明对此不做限定,这里也不再详细描述。示例性地,可通过手动编写代码调用埋点sdk的函数,也可以使用第三方开发的埋点工具,如growingio、talkingdata等,本领域技术人员可根据实际情况选用适合的埋点技术方案。
27.需要说明的是,在本实施例中,数据库优选地选用时序数据库。时序数据库全称为时间序列数据库,用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时序数据;时序数据的特点为包括数据以时间排序、数据通常量级大等。时序数据库为本领域的公知技术,本发明实施例不做限定。示例性地,可选用influxdb,open tsdb,hitsdb等时序数据库,本领域技术人员可根据实际情况选用适合的技术方案。
28.在步骤s102中,预设的数据量阈值为数据查询时返回数据量的优选值。数据量阈值的设置主要依据用户应用系统的数据处理能力,希望在满足较优系统性能的情况下,查询返回的数据量可以最大限度地反应设备的实际情况。当查询返回的数据量小于数据量阈值时,应用系统具有较优的性能比,如果查询返回的数据量大于数据量阈值,应用系统处理数据的速率通常会随着数据量的增加而越来越慢,甚至出现系统崩溃。例如,在数据指标大屏显示系统中,数据量阈值主要与图形显示引擎的渲染处理能力有关。本领域技术人员可根据实际情况设置数据查询返回的数据量阈值。
29.在步骤s103中,根据步骤s102实际数据量与预设的数据量阈值比较的结果返回相应的数据。当实际数据量小于数据量阈值时,数据查询直接返回数据库中的原始数据;当实际数据量大于或等于数据量阈值时,选择性地根据聚合策略返回数据。
30.接下来参考图2,说明步骤s103中实现“选择性地根据聚合策略返回数据”的详细步骤。具体来说,图1的步骤s103中的聚合策略包括基于查询时间范围的第一聚合策略和基于实际数据量的第二聚合策略。
31.在步骤s201中,计算基于查询时间范围的第一聚合策略。第一聚合策略的计算方
法为:其中,t_downsample_1:基于查询时间范围的第一聚合策略;t_start:查询开始时间;t_end:查询结束时间;count_limit:数据量阈值。
32.在步骤s202中,计算基于实际数据量的第二聚合策略。第二聚合策略的计算方法为:其中,t_downsample_2:基于实际数据量的第二聚合策略;count_real:查询时间范围内的实际数据条数;count_limit:数据量阈值;t_sample:数据采样时间间隔。数据采样时间间隔t_sample主要取决于设备正常工作时上报数据的频率。在本实施例中,t_sample由电动汽车的动力电池上报电压数据的频率决定,数据采样时间间隔的值为频率值的倒数,也就是说,动力电池正常工作时,数据库每隔t_sample可以收到一条电压数据。
33.下面进一步结合实例来说明实现步骤s102、步骤s103和图2流程的详细过程。作为实例,大屏显示系统需要显示sn为1001的动力电池在某一时间范围内的电压数据。动力电池系统预设的正常运行时数据采样时间间隔为10秒/条,即t_sample=10秒/条;该大屏显示系统处理的数据量阈值为3000条数据,即count_limit=3000条;查询的开始时间t_start为2020年2月1日的0时0分1秒,查询的结束时间t_end为2020年2月2日的0时0分0秒,可以得到查询的时长(t_end

t_start)为86400秒。
34.实例一:如果在2020年2月1日的0时0分1秒至2020年2月2日的0时0分0秒的查询范围内,只有8时0分1秒至18时0分0秒时间范围内收到了数据。埋点数据中,在8时0分1秒时数据库存储的sn为1001的动力电池的数据为10000条;在18时0分0秒时数据库存储的sn为1001的动力电池的数据为13600条,因此可得该电池上传的实际数据条数为3600条,即count_real=3600条。
35.根据步骤s102,比较实际数据条数count_real和数据量阈值count_limit的数值,count_real的值为3600大于count_limit的值3000,因此,根据步骤s103“选择性地根据聚合策略返回数据”。
36.在步骤s201中,计算基于查询时间范围的第一聚合策略:
37.在步骤s202中,计算基于实际数据量的第二聚合策略:
38.在步骤s203中,比较第一聚合策略t_downsample_1=28.8和第二聚合策略t_downsample_2=12,取数值小的t_downsample_2=12为实际聚合策略。需要说明的是,如果第一聚合策略和第二聚合策略的数值相等,则可取第一聚合策略作为实际聚合策略。
39.在步骤s204中,比较实际聚合策略的值12和数据采样时间间隔的值10,实际聚合策略的值大于数据采样时间间隔,数据查询将执行聚合操作。
40.在步骤s205中,根据本发明的方法,数据查询执行基于第二聚合策略的聚合操作。在本实施例中,第二聚合策略的值小于第一聚合策略的值,按照第二聚合策略聚合后返回数据的数量将更多,因此用户获得的信息将会更准确。
41.需要说明的是,在本实施例中,由第一聚合策略和第二聚合策略计算方法,以及步骤s204中实际聚合策略的值与数据采样时间间隔进行比较的操作,聚合策略可以被理解为,该数据点在本次查询的时间范围内所期望的数据上传时间间隔。
42.实例二:如果在2020年2月1日的0时0分1秒至2020年2月2日的0时0分0秒的查询范围内,只有8时0分1秒至9时0分0秒时间范围内收到了数据,由埋点数据可得实际数据条数为360条,即count_real=360条,此时,实际数据条数count_real的值小于数据量阈值count_limit的值,查询直接返回数据库的全部原始数据,不执行聚合操作。
43.需要说明的是,在设备正常运行的情况下,数据库获得的数据通常是根据设备正常运行时的数据采样时间间隔t_sample而进行的,因此,通常t_downsample_1大于或等于t_downsample_2。但是,当设备出现故障或问题征兆等特殊情况时,数据采样的时间间隔将会变小,例如,数据采样时间间隔可能由正常情况下的10秒变为特殊情况下的1秒。
44.实例三:如果在2020年2月1日的0时0分1秒至2020年2月2日的0时0分0秒的查询范围内,设备正常运行的情况下,每个数据采样时刻都收到了数据,那么,查询时间范围内应收到的动力电池数据为:(t_end

t_start)/t_sample=86400/10=8640条,但是,在查询时间范围8时0分1秒至9时0分0秒之间,由于动力电池工作异常,数据采样时间间隔临时调整为1秒,在此时间范围内实际收到的数据为3600条。因此,根据埋点数据,查询时间范围内实际数据量为count_real=11880。在步骤s202中计算,t_downsample_2=(11880/3000)*12=47.52。在步骤s203中比较t_downsample_1和t_downsample_2,实例一中计算所得t_downsample_1=28.8,取数值较小的t_downsample_1为实际聚合策略。在步骤s204与t_sample进行比较,比较的结果为t_downsample_1大于t_sample。因此,执行步骤s205,按照t_downsample_1进行聚合。
45.对于实例三的情况,系统可向用户进行提示,提示的内容可以包括:数据聚合是基于查询时间范围的,设备可能存在突发的情况,突发事件范围等信息。用户可以根据系统提示,进一步进行数据查询,从而获得更详细的数据,分析设备情况。
46.实例四:在实例三的情况下,将查询的时间范围设定在8时0分1秒至9时0分0秒之间。此时,
t_downsample_1小于t_downsample_2,得到实际聚合策略为t_downsample_1;比较t_downsample_1和t_sample,t_downsample_1小于t_sample;执行步骤s206,不执行聚合,返回原始数据。
47.需要说明的是,在实例三和实例四中,数据查询返回的数据量均超过了数据量阈值,这可能会导致应用系统处理变慢。但是,此时返回的数据为设备异常时产生的突发数据,而用户通常希望能够看到尽可能多的数据,以便更准确地了解设备的实际状况,从而针对问题隐患采取必要的预防措施。
48.在本实施例中,聚合函数的技术方案本发明实施例不做限定。示例性地,可选用avg、max、sum等函数,本领域技术人员可根据实际情况选用适合的技术方案。
49.进一步地,本发明还提供一种数据查询装置。如图3所示,本实施例中的数据查询装置3主要包括查询接口模块31、实际数据量获取模块32、数据聚合模块33。
50.查询接口模块31可以配置成从应用系统获取查询的时间范围,得到查询的开始时间和结束时间,并触发查询任务。执行查询操作后,向应用系统返回本次查询的数据。
51.实际数据获取模块32可以配置成实施通过埋点获取每个时刻数据库存储的数据的实际数量,当通过接口或是其它方式获得用户的查询信息时,计算查询时间范围内实际存储的数据量,计算方法为查询结束时间埋点数据存储的数据量减去查询开始时间埋点数据存储的数据量。
52.数据聚合模块33可以配置成执行以下操作:比较实际数据量与预设的数据量阈值,根据比较结果选择直接返回原始数据或是选择性地根据聚合策略返回数据;当执行“选择性地根据聚合策略返回数据”时,计算基于查询时间范围的第一聚合策略,计算基于实际数据量的第二聚合策略,比较第一聚合策略和第二聚合策略,取数值小的为实际聚合策略;比较实际聚合策略和数据采样时间间隔,如果实际聚合策略大于数据采样时间间隔,则根据实际聚合策略返回数据;如果实际聚合策略小于或等于数据采样时间间隔,则返回原始数据。
53.进一步,本发明还提供了一种数据查询装置。在根据本发明的一个数据查询装置的实施例中,数据查询装置包括处理器和存储装置,存储装置可以被配置成存储并执行上述方法实施例的数据查询方法的程序,处理器可以被配置成用于执行存储装置中的程序,该程序包括但不限于执行上述方法实施例的数据查询方法的程序。为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该数据查询装置可以是包括各种电子设备形成的控制装置设备。
54.进一步,本发明还提供了一种存储介质。在根据本发明的一个存储介质实施例中,存储介质可以被配置成存储执行上述方法实施例的数据查询方法的程序,该程序可以由处理器加载并运行以实现上述数据查询方法。为了便于说明,仅示出了与本发明实施例相关
的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该存储介质可以是包括各种电子设备形成的存储装置设备,可选的,本发明实施例中存储介质是非暂时性的计算机可读存储介质。
55.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。应该理解这样使用的数据在适当的情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
56.本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
57.至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1