数据降采样和数据查询方法、系统及存储介质与流程

文档序号:29615662发布日期:2022-04-13 11:27阅读:164来源:国知局
数据降采样和数据查询方法、系统及存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种数据降采样和数据查询方法、系统及存储介质。


背景技术:

2.时序数据是基于某种频率持续产生的一系列数据,在应用性能监测(application performance monitor,apm)、物联网和工业互联网等领域存在大量时序数据。时序数据库是为高效存储和查询这类时序数据而设计的。时序数据库中有一类需求是对原始数据进行降采样处理。
3.在现有技术中,一般在数据查询时进行实时降采样。这种降采样方式需要从时序数据库对应的磁盘文件中扫描原始数据,对于时间跨度比较大的查询,需要扫描大量原始数据,数据查询效率较低。


技术实现要素:

4.本技术的多个方面提供一种数据降采样和数据查询方法、系统及存储介质,用以提高数据查询效率。
5.本技术实施例提供一种数据降采样方法、包括:
6.将获取的原始数据写入内存;
7.在所述内存中的原始数据达到设定的数据量的情况下,将内存中的原始数据写入第一持久性存储介质;
8.在所述原始数据写入第一持久性存储介质的过程中,根据预设的降采样规则,对写入所述第一持久性存储介质的目标原始数据进行降采样处理,以得到降采样数据;
9.将所述降采样数据写入第二持久性存储介质。
10.本技术实施例还提供一种数据查询方法,包括:
11.获取查询请求;所述查询请求用于聚合查询;
12.根据所述查询请求,查询所述内存和存储降采样数据的持久性存储介质;
13.针对所述内存中存在满足所述查询请求的数据的情况,从所述内存和所述持久性存储介质中分别获取满足所述查询请求的第一原始数据和第一降采样数据;
14.根据所述查询请求,对所述第一原始数据进行降采样处理,以得到第二降采样数据;
15.基于所述第一降采样数据和所述第二降采样数据,确定所述查询请求的查询结果。
16.本技术实施例还提供一种计算系统,包括:存储器和处理器;所述存储器包括:内存和持久性存储介质;
17.所述处理器与所述内存和所述持久性存储介质通信连接,用于执行上述数据降采样方法和/或上述数据查询方法中的步骤。
18.本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据降采样方法和/或上述数据查询方法中的步骤。
19.在本技术实施例中,在原始数据从内存写入持久性存储介质的过程中,根据预设的降采样规则,对写入持久性存储介质的目标原始数据进行降采样处理;并存储降采样处理得到的降采样数据,实现了原始数据的预降采样。这样,在降采样查询时,可直接查询预降采样结果,无需在降采样查询时,对原始数据进行实时降采样处理,有助于提高后续降采样查询效率。
附图说明
20.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
21.图1a为本技术实施例提供的数据降采样方法的流程示意图;
22.图1b为本技术实施例提供的数据降采样过程示意图;
23.图2为本技术实施例提供的字段结构示意图;
24.图3为本技术实施例提供的数据查询方法的流程示意图;
25.图4为本技术实施例提供的数据查询过程示意图;
26.图5为本技术实施例提供的降采样文件合并过程示意图;
27.图6为本技术实施例提供的计算系统的结构示意图。
具体实施方式
28.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
29.在实际应用中,由于原始数据的数据量较大,用户在数据查询时有降采样查询的需求。温度传感器以每分钟一次的频率上报温度,数据查询时需要查询过去7天每小时的平均温度。这种场景就需要将每分钟的原始温度数据,降采样为每小时的平均温度数据。在一些方案中,在数据查询时进行实时降采样。这种降采样方式需要从原始数据对应的磁盘文件中扫描原始数据,对于时间跨度比较大的查询,需要扫描大量原始数据,数据查询效率较低;而且大量原始数据查询消耗大量内存资源,对大量原始数据实时降采样计算也消耗大量cpu资源。
30.在另一些方案中,通过连续查询(continuous queries,qs)方式定期执行降采样。这种降采样方式,存在以下缺陷:(1)资源损耗高。每次cq降采样执行时需要查询大量索引,包括正排索引和倒排索引,消耗大量内存资源和cpu资源;(2)在数据查询时,不能查询到最新的降采样数据。由于cq降采样是周期性执行,非实时执行,导致磁盘中新写入的原始数据,不能立即降采样处理得到最新的降采样数据,进而导致数据查询时无法查询到最近的降采样数据;(3)由于原始数据和降采样数据存储于不同的数据表,删除原始数据没法同步删除降采样数据,导致原始数据和降采样数据不同步。
31.针对上述实时查询时降采样导致数据查询效率低的技术问题,在本技术一些实施例中,在原始数据从内存写入持久性存储介质的过程中,根据预设的降采样规则,对写入持久性存储介质的目标原始数据进行降采样处理;并存储降采样处理得到的降采样数据,实现了原始数据的预降采样。这样,在降采样查询时,可直接查询预降采样结果,无需在降采样查询时,对原始数据进行实时降采样处理,有助于提高后续降采样查询效率。
32.以下结合附图,详细说明本技术各实施例提供的技术方案。
33.应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
34.图1a为本技术实施例提供的数据降采样方法的流程示意图。如图1a所示,该方法包括:
35.101、将获取的原始数据写入内存。
36.102、在内存中的原始数据达到设定的数据量的情况下,将内存中的原始数据写入第一持久性存储介质。
37.103、在原始数据写入第一持久性存储介质的过程中,根据预设的降采样规则,对写入第一持久性存储介质的目标原始数据进行降采样处理,以得到降采样数据。
38.104、将降采样数据写入第二持久性存储介质。
39.在本技术实施例中,原始数据可为时序数据,即基于某种频率持续产生的一系列数据。对于物理机来说,可获取原始数据。在本技术实施例中,物理机可为电脑等终端设备,也可为为单一服务器设备,也可以云化的服务器阵列。另外,物理机也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
40.在本实施例中,物理机可提供数据管理服务。可选地,物理机可提供数据存储、数据处理和数据查询服务等。在一些实施例中,物理机可维护有数据库。在本实施例中,数据库可为时序数据库,用于存储时序数据,并提供时序数据查询服务。
41.在本实施例步骤101中,可将获取的原始数据写入物理机的内存。具体地,可将原始数据写入内存的menstore空间。由于内存的存储空间有限,在内存存储的数据量达到设定的数据量的情况下,需要将内存存储的数据写入持久性存储介质进行保存。相应地,如图1a的步骤102和图1b所示,可在内存中的原始数据达到设定的数据量的情况下,将内存中的原始数据写入持久性存储介质。在本技术实施例中,持久性存储介质主要是指非易失性存储介质,如磁盘、软盘、硬盘、数字多功能光盘(dvd)或其他光学存储、磁带或只读光盘只读存储器(cd-rom)等。
42.在本技术实施例中,持久性存储介质可与内存部署于同一物理机,也与内存部署于不同的物理机。对于物理机挂载的存储系统为集中式存储系统的实施例,持久性存储介质与内存属于同一物理机;对于物理机挂载的存储系统为分布式存储系统的实施例,持久性存储介质与内存可属于同一物理机,也可属于不同的物理机。
43.在本实施例中,为了提高数据查询效率,可对原始数据进行预降采样处理,这样在降采样查询时,可直接查询降采样数据,而无需在数据查询过程中对原始数据进行降采样处理,可有效提高数据查询效率。基于此,在本实施例中,为了实现原始数据的预降采样,如图1a中的步骤103和图1b所示,可在内存中的原始数据写入持久性存储介质的过程中,根据
预设的降采样规则,对写入持久性存储介质的目标原始数据进行降采样处理,得到降采样数据。
44.在本技术实施例中,不限定获取降采样规则的具体实施方式。在一些实施例中,降采样规则可为原始数据的使用方或提供方等自主设置的。可选地,存储系统可提供交互界面供用户访问;用户(原始数据的使用方或提供方等)可通过该交互界面自主设置降采样规则。一般的降采样规则可包括:采样时间间隔和聚合算子。其中,采样时间间隔主要是指对原始数据按照多大的时间间隔进行降采样。聚合算子是指对采样时间间隔内的原始数据采用的降采样方式。其中,聚合算子可为指标聚合算子、桶聚合算子、矩阵聚合算子以及管道聚合算子等。指标聚合算子可包括:最大值(max)、最小值(min)、求和(sum)、求平均值(avg)、值统计、distinct聚合、百分比统计以及百分比排名聚合等等。
45.例如,对于降采样规则可采用下述语句进行表述:
[0046][0047]
上述降采样规则表示对数据库“db”中的原始数据分别按照5s(5秒)和5min(5分钟)的采样时间间隔进行求和。
[0048]
基于预设的降采样规则,步骤103可实现为:从预设的降采样规则中,获取采样时间间隔和聚合算子;

针对当前写入持久性存储介质的目标原始数据,获取每个采样时间间隔内的目标原始数据;并按照降采样规则中的聚合算子,对每个采样时间间隔内的目标原始数据进行聚合处理,以得到该采样时间间隔内的降采样数据。
[0049]
在实际应用中,数据经常采样数据表进行存储。数据表可包括:字段(field)。字段可包括:字段名和字段值。可利用字段名索引对应的字段值。在一些实施例中,可将字段名相同的字段值按列或按行存储;这样,可利用字段名索引到该字段所有字段值。例如,如图2所示,温度(temperature)可为字段名;时间戳(timestamp)和温度值(value)可为字段名温度对应的字段值。
[0050]
考虑到不同字段名对应的数据对象属性不同,在降采样处理时,可针对相同属性的原始数据进行聚合处理;对于不同属性的原始数据无法进行聚合处理。例如,对于某个物理空间的进行检测,得到温度时序序列数据、湿度时序序列数据及大气污染指数等。由于温度和湿度是不同维度的属性,因此,对温度时序序列数据和湿度时序序列数据进行聚合处理无实际意义。基于此,在本实施例中,在对写入持久性存储介质的目标原始数据进行降采
样处理时,可按照目标原始数据的字段名,将目标原始数据划分为至少一个数据单元。可选地,可按照目标原始数据的字段名,将目标原始数字中同一字段名对应的字段值划分为一个数据单元,得到至少一个数据单元。相应地,一个数据单元可为一个字段。在本技术实施例中,数据单元的具体数量,可由目标原始数据包含的字段名数量决定。
[0051]
进一步,可根据预设的降采样规则,对至少一个数据单元分别将进行降采样处理,以得到每个数据单元对应降采样数据,进而得到目标原始数据对应的降采样数据。
[0052]
可选地,基于上述预设的降采样规则,可从预设的降采样规则中,获取采样时间间隔和聚合算子;针对任一数据单元a,从该数据单元a中,获取每个采样时间间隔内的目标原始数据。具体地,针对任一数据单元a,可根据数据单元a中的时间戳信息,获取每个采样时间间隔内的目标原始数据。进一步,可按照聚合算子,对每个采样时间间隔内的目标原始数据进行聚合处理,以得到数据单元a对应的降采样数据。
[0053]
在得到目标原始数据对应的降采样数据之后,在步骤104中,可将降采样数据也写入持久性存储介质进行存储。在本技术实施例中,为了便于描述和区分,将保存原始数据的持久性存储介质,定义为第一持久性存储介质;将存储降采样数据的持久性存储介质,定义为第二持久性存储介质。
[0054]
其中,第一持久性存储介质和第二持久性存储介质可为同一存储介质,也可为不同的持久性存储介质。对于第一持久性存储介质和第二持久性存储介质为不同的持久性存储介质的情况,第一持久性存储介质和第二持久性存储介质可挂载于同一物理机,也可挂载于不同的物理机。第一持久性存储介质和第二持久性存储介质的数量均可为1个或多个。多个是指2个或2个以上。多个第一持久性存储介质可挂载于同一物理机,也可挂载于不同的物理机。当然,多个第二持久性存储介质也可挂载于不同的物理机。
[0055]
在本实施例中,在原始数据从内存写入持久性存储介质的过程中,根据预设的降采样规则,对写入持久性存储介质的目标原始数据进行降采样处理;并存储降采样处理得到的降采样数据,实现了原始数据的预降采样。这样,在降采样查询时,可直接查询预降采样结果,无需在降采样查询时,对原始数据进行实时降采样处理,有助于提高后续降采样查询效率。
[0056]
另一方面,在实施例提供的数据降采样是在内存刷新(memstore flush)阶段,即将内存中的数据写入第一持久性存储介质的过程中,对写入第一持久性存储介质的目标原始数据进行降采样处理的,相较于cq降采样无需查询原始数据的倒排数据和正排索引来获取原始数据,可减少内存和cpu资源消耗。
[0057]
对于降采样查询,在本技术实施例中,可查询内存中的原始数据和降采样数据。一方面,对内存中的原始数据进行实时降采样,对于降采样数据可直接获取满足查询请求的降采样数据,得到数据查询结果。由于内存中的原始数据为最新的原始数据,加上降采样数据查询结果可实现全量降采样数据查询,解决cq降采样不能查询到最新降采样数据的缺点。另一方面,对于直接查询降采样数据部分在数据查询过程中无需进行降采样处理,相较于实时降采样查询,有助于提高数据查询效率。
[0058]
本技术实施例维护的存储系统不仅可提供降采样查询,也可提供非降采样查询。对于非降采样查询请求,可查询内存中的原始数据和第一持久性存储介质中的原始数据,该查询过程与现有存储系统数据查询相同或相似,非本技术的重点。因此,下面重点以聚合
查询(即降采样查询)为例,对本技术实施例提供的数据查询方法进行示例性说明。
[0059]
图3为本技术实施例提供的数据查询方法的流程示意图。如图3所示,该数据查询方法包括:
[0060]
301、获取查询请求;查询请求用于聚合查询。
[0061]
302、根据查询请求,查询内存和第二持久性存储介质。
[0062]
303、针对内存中存在满足查询请求的数据的情况,从内存和第二持久性存储介质中分别获取满足查询请求的第一原始数据和第一降采样数据。
[0063]
304、根据查询请求,对第一原始数据进行降采样处理,以得到第二降采样数据。
[0064]
305、基于第一降采样数据和第二降采样数据,确定查询请求的查询结果。
[0065]
在本技术实施例中,查询请求可为非聚合查询,也可为聚合查询。本技术实施例重点以聚合查询为例,对本技术实施例提供的数据查询方法进行示例性说明。相应地,在步骤301中,可获取查询请求,该查询请求用于聚合查询。查询请求可包含查询条件。查询条件可包括:待查询的数据对象、聚合算子及查询的时间范围等。
[0066]
内存中的原始数据是最新写入的,由于不同查询请求查询的时间范围和数据对象可能不同,导致内存中可能存在,也可能不存在满足有些查询请求的数据。对于存储系统来说,无法事先确定内存中是否存在满足查询请求的数据,因此,为了提高数据查询的时效性和准确度,防止漏查最新数据,如图3步骤302和图4所示,可根据查询请求,查询内存和第二持久性存储介质。
[0067]
可选地,可对查询请求进行语义解析,得到查询请求的查询条件。可选地,可把查询请求编译成抽象语法树(abstracted syntax tree,ast),并在该过程中对查询请求的语句进行错误检测,确保输入的请求语句没有语法和词法错误。例如,检测是否存在关键词拼写错误、是否有多余的标点符号、整个语句是否合法等等。
[0068]
进一步,可对上述抽象语法树的节点依次进行检查,并把相关表的元数据,属性的元数据附在语法树上,最后生成含有语义的语法树(bound ast)。进一步,可根据含有语义的语法树获取查询请求的访问需求内容。
[0069]
进一步,可根据查询条件,生成执行计划。可选地,优化器可根据语义语法树,生成逻辑执行树(logical operator tree,lot)。可选地,可将语义语法树节点对应到操作符节点,得到逻辑执行树。逻辑执行树上的每个节点,称为逻辑操作符(logical operator)。进一步,可扩展出每个逻辑操作符对应的物理操作符(physical operator),得到物理执行树。进一步,可从物理执行树中选择出代价最小的物理执行树,作为执行计划。其中,代价最小可以为路径最短、内存消耗最小、计算量最小或者计算时间最短等等。
[0070]
进一步,可根据执行计划,查询内存和第二持久性存储介质。
[0071]
在本实施例中,对于内存中不存在满足查询请求的数据的实施例,可从第二持久性存储介质中获取满足查询请求的降采样数据;并基于从第二持久性存储介质中获取的满足查询请求的降采样数据,确定查询请求的查询结果。由于该数据查询方式,可直接从降采样数据中获取满足查询请求的降采样数据,无需在数据查询过程中对原始数据进行实时降采样,有助于提高数据查询效率。
[0072]
对于内存中存在满足查询请求的数据的实施例来说,在步骤303中,可从内存和第二持久性存储介质中分别获取满足查询请求的原始数据(定义为第一原始数据)和降采样
数据。
[0073]
进一步,在步骤304中,可根据查询请求,对从内存中获取的满足查询请求的原始数据进行降采样处理,得到降采样数据。在本技术实施例中,为了便于描述和区分,将从第二持久性存储介质中获取的满足查询请求的降采样数据,定义为第一降采样数据;将对从内存中获取的满足查询请求的原始数据进行降采样处理得到的降采样数据,定义为第二降采样数据。
[0074]
可选地,可从查询请求中,获取查询请求包含的聚合算子和采样时间间隔;进一步,可按照查询请求包含的采样时间间隔,从满足查询请求的原始数据中,获取每个采样时间间隔对应的原始数据;进一步,可按照查询请求包含的聚合算子对每个采样时间间隔对应的原始数据进行聚合处理,以得到上述第二降采样数据。
[0075]
接着,在步骤305中,可基于第一降采样数据和第二降采样数据,确定查询请求对应的查询结果。
[0076]
本实施例提供的数据查询方法,可查询内存中的原始数据和降采样数据。一方面,对内存中的原始数据进行实时降采样,对于降采样数据可直接获取满足查询请求的降采样数据,得到数据查询结果。由于内存中的原始数据为最新的原始数据,加上降采样数据查询结果可实现全量降采样数据查询,可提高数据查询的时效性和准确度,解决了cq降采样不能查询到最新降采样数据的缺点。另一方面,对于直接查询降采样数据部分在数据查询过程中无需进行降采样处理,相较于实时降采样查询,有助于提高数据查询效率。
[0077]
而且,对于内存中存在满足查询请求的原始数据的情况,由于内存空间较小,存储的原始数据的数据量相较于第一持久性存储介质存储的原始数据要小很多,因此,对于内存中的原始数据的实时降采样的完成速度较快,相较于上述现有方案中对全量原始数据进行实时降采样查询的方式来说,本技术实施例提供的数据查询方式依然具有较高的数据查询效率。
[0078]
在实际应用中,数据的存储方式可能影响数据查询过程。因此,下面结合降采样数据的存储过程及降采样数据写入第二持久性存储介质的过程,对降采样查询(聚合查询)的具体实施过程进行示例性说明。
[0079]
在本技术实施例中,不限定将降采样数据写入第二持久性存储介质的具体实现形式。考虑到第二持久性存储介质存储的降采样数据一般是根据不同的降采样规则降采样处理得到的,为了便于后续查询,提高后续数据查询效率,在本技术实施例中,针对上述任一数据单元a对应的降采样数据,可根据数据单元a对应的降采样规则和数据单元a的字段名,确定用于表征降采样规则和降采样对象的目标字段名(field)。在本技术实施例中,不限定目标字段名(field)的具体格式。在一些实施例中,目标字段名的格式可表示为:“{raw_field}_{aggregator}_{interval}”。其中,“raw_field”表示列字段名即数据单元的字段名,可表征降采样对象。“aggregator”表示聚合算子;“interval”表示采样时间间隔。例如,对cpu按照30s的采样时间间隔做max降采样的降采样规则,可确定降采样规则为表征“按照30s的采样时间间隔做max降采样”、降采样对象为cpu字段。相应地,目标字段名可表示为“cpu_max_30s”。
[0080]
进一步,可以目标字段名为字段名,以任一数据单元a的降采样数据为目标字段名的字段值,将目标字段名和数据单元a对应的降采样数据写入第二持久性存储介质。这样,
在降采样查询时,可根据降采样查询请求中的查询条件,确定满足查询条件的目标字段名;根据满足查询条件的目标字段名,索引出该目标字段名对应的字段值作为满足查询条件的降采样数据。该降采样查询过程,可根据降采样数据对应的目标字段名进行数据查询,无需查询所有的降采样数据,有助于提高数据查询效率。
[0081]
具体地,基于上述目标字段名,在根据查询请求查询第二持久性存储介质时,可从查询请求中,获取查询请求对应的查询条件;并根据查询条件,生成满足第二持久性存储介质中降采样数据对应的字段名格式(即上述目标字段名的格式)的第一字段名。可选地,可从查询条件中,获取待查询的数据对象、聚合算子及采样时间间隔等;进一步,可按照上述目标字段名的格式,根据待查询的数据对象、聚合算子及采样时间间隔,转化成具有上述目标字段名的格式的第一字段名。例如,对于查询cpu每30s内的最大值(max)的查询条件来说,待查询的数据对象为cpu字段;聚合算子为max算子;采样时间间隔为30s。相应地,该查询条件转化的第一字段名为“cpu_max_30s”。
[0082]
进一步,可根据第一字段名,查询第二持久性存储介质,以确定第一字段名对应的降采样数据。进一步,可从第一字段名对应的降采样数据中,获取满足查询条件的第一降采样数据。
[0083]
在一些实施例中,如图1b和图4所示,原始数据和降采样数据可以文件的形式进行存储。在本技术实施例中,文件是指为了存储信息而使用的对信息的编码方式,不限定文件的具体实现形态。在一些实施例中,文件可为数据表等。其中,原始数据的存储文件,定义为原始文件;降采样数据的存储文件定义为降采样文件。在本技术实施例中,所述内存中的原始数据每次达到设定的数据量,启动一次将内存中的原始数据写入第一持久性存储介质的操作,形成一个原始文件;在每次原始数据写入第一持久性存储介质的过程中,启动一次对写入第一持久性存储介质的目标原始数据进行降采样处理操作及将降采样数据写入第二持久性存储介质的操作,形成一个降采样文件。
[0084]
在本技术实施例中,为了降低降采样文件占用的存储空间,可采用层级组织结构存储降采样文件。每个层级用于存储设定阈值个降采样文件。将每个层级对应的设定阈值用m进行表示。其中,m≥2,且m为整数。不同层级对应的阈值可以相同,也可不同。在本技术实施例中,为了降低降采样文件占用的存储空间,如图5所示,针对任意两个相邻层级,在下层级中的降采样文件的数量达到该下层级对应的阈值m的情况下,对所述m个降采样文件进行合并处理;将合并后的降采样文件存储至下层级的上一层级,例如,图5中层级组织结果的层级从l0-l5依次增高,在l0层级中的降采样文件的数量达到设定阈值m时,可将l0层级中的m个降采样文件进行合并;并将合并后的降采样文件存储至l1层级;对于l1层级,在该层级中的降采样文件的数量达到设定阈值n时,可将l1层级中的n个降采样文件进行合并;并将合并后的降采样文件存储至l2层级等等,依次类推。其中,n≥2,且n为整数。n与m可以相同,也可不同。
[0085]
考虑到m个降采样文件可能存在时间窗口重叠的降采样数据,为了进一步降低降采样数据占用的存储空间,针对m个降采样文件存在重叠时间窗口的情况,可根据降采样规则中的聚合算子,对重叠时间窗口对应的降采样处理结果进行聚合操作;并将聚合后的m个降采样文件合并为一个降采样文件。之后,将合并后的降采样文件存在至上一层级。由于在降采样文件合并过程中对重叠时间窗口的降采样数据进行了去重,因此,采样层级组织结
构存储降采样文件可降低降采样数据占用的存储空间。
[0086]
对于以文件形式存储的降采样数据的实施例来说,在聚合查询时,从第二持久性存储介质中获取的满足查询请求的第一降采样数据可能位于一个降采样文件中,也可能位于多个降采样文件中。多个是指2个或2个以上。在本实施例中,对于第一降采样数据位于多个降采样文件的实施例,可根据多个降采样文件中的降采样数据的时间信息,判断多个降采样文件中的降采样数据是否存在重叠时间窗口;若判断结果为是,可根据查询请求中的聚合算子,对重叠时间窗口对应的第一降采样数据进行聚合操作,得到第一降采样数据。进一步,可基于聚合后的第一降采样数据和第二降采样数据,确定查询请求对应的查询结果。
[0087]
在实际应用中,对于写入第一持久性存储介质的原始数据来说,可能存在数据删除的情况,在本技术实施例中,为了实现降采样数据与原始数据同步删除,在第一持久性存储介质的原始数据存在数据删除的情况下,可对删除的原始数据进行标记,得到墓碑(tombstone)记录。其中,墓碑记录用于记录删除的原始数据信息。其中,墓碑记录中记录的原始数据,可为第一持久性存储介质逻辑意义上删除的原始数据,也可为实际物理上删除的原始数据。
[0088]
进一步,可根据墓碑记录中数据的时间信息和第二持久性存储介质存储的降采样数据的时间信息,确定墓碑记录对应的降采样数据。可选地,对于上述以降采样文件形式存储降采样文件的实施例来说,可根据墓碑记录中数据的时间信息和第二持久性存储介质存储的降采样文件中数据的时间信息,确定墓碑记录对应的降采样文件。为了保持降采样数据与原始数据同步删除,可在墓碑记录对应的降采样文件合并过程中,从墓碑记录对应的降采样文件中确定墓碑记录对应的降采样数据。可选地,可根据墓碑记录中数据的实现信息和墓碑记录对应的降采样文件中降采样数据的时间信息,确定墓碑记录对应的降采样文件中与墓碑记录中数据的时间窗口重叠的降采样数据,为墓碑记录对应的降采样数据。进一步,可在墓碑记录对应的降采样文件合并过程中,删除墓碑记录对应的降采样数据,这样合并后的降采样文件不再存在被删除的原始数据对应的降采样数据,实现降采样数据和原始数据同步删除,解决上述cq降采样方式无法在原始数据删除时同步删除降采样数据的缺陷。
[0089]
为了防止查询到已删除的原始数据对应的降采样数据,提高数据查询准确度,在本实施例中,基于上述墓碑记录,在聚合查询过程中确定查询请求的查询结果时,可获取用于标记删除的原始数据的墓碑记录;并根据墓碑记录中数据的时间信息和第一降采样数据中数据的时间信息,判断第一降采样数据中是否含有墓碑记录对应的降采样数据;若判断结果为是,可从第一降采样数据中删除墓碑记录对应的降采样数据;并确定第二降采样数据和删除墓碑记录对应的降采样数据后的第一降采样数据,为查询请求的查询结果。这样,可保证墓碑记录标记的删除的原始数据对应的降采样数据不被查询出,有助于提高数据查询准确度,解决上述cq降采样方式无法在原始数据删除时同步删除降采样数据的缺陷。
[0090]
对于上述第一降采样数据位于多个降采样文件,且多个降采样文件中的降采样数据存在重叠时间窗口的实施例,在基于聚合后的第一降采样数据和第二降采样数据,确定查询请求对应的查询结果时,也可根据墓碑记录中数据的时间信息和聚合后的第一降采样数据中数据的时间信息,判断聚合第一降采样数据中是否含有墓碑记录对应的降采样数据;若判断结果为是,可从聚合后的第一降采样数据中删除墓碑记录对应的降采样数据;并
确定第二降采样数据和删除墓碑记录对应的降采样数据后的聚合后的第一降采样数据为查询请求对应的查询结果。
[0091]
进一步,可将查询结果返回给查询请求的提供方。在本技术实施例中,针对聚合查询来说,之所以聚合查询可在降采样数据中查询到满足聚合查询请求的降采样数据,主要是因为降采样数据对应的降采样规则可由查询请求的提供方进行设置。对于查询请求的提供方来说可根据自身的查询需求,自主设置降采样规则;并预先存储于执行本技术实施例提供的数据降采样方法的模块、装置、设备或系统中。
[0092]
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤301和302的执行主体可以为设备a;又比如,步骤301的执行主体可以为设备a,步骤302的执行主体可以为设备b;等等。
[0093]
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
[0094]
相应地,本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述数据降采样方法和/或数据查询方法中的步骤。
[0095]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包括:计算机程序。当计算机程序被处理器执行时,致使处理器执行上述数据降采样方法和/或数据查询方法中的步骤。在本技术实施例中,不限定计算机程序产品的具体实现形态。在一些实施例中,计算机程序产品可实现为查询引擎、针对数据库的数据处理系统或者查询引擎中的执行器等。
[0096]
图6为本技术实施例提供的计算系统的结构示意图。如图6所示,该计算系统包括:存储器61和处理器62。其中,存储器61可包括:内存61a和持久性存储介质61b。
[0097]
在本实施例中,存储器61和处理器62可位于同一物理机,也可位于不同的物理机。内存61a和持久性存储介质61b可属于同一物理机,也可属于不同的物理机。可选地,内存61a与处理器62属于同一物理机。持久性存储介质61b的数量可为1个或多个。多个是指2个和2个以上。多个持久性存储介质61b可属于同一物理机,也可属于不同的物理机。
[0098]
在本实施例中,内存61a和持久性存储介质61b与处理器62通信连接。处理器62可用于:将获取的原始数据写入内存61a;在内存61a中的原始数据达到设定的数据量的情况下,将内存61a中的原始数据写入持久性存储介质61b中的第一持久性存储介质61b1;在原始数据写入第一持久性存储介质61b1的过程中,根据预设的降采样规则,对写入第一持久性存储介质61b1的目标原始数据进行降采样处理,以得到降采样数据;并将降采样数据写入第二持久性存储介质61b2。
[0099]
在本技术实施例中,第一持久性存储介质61b1和第二持久性存储介质61b2可为同一存储介质,也可为不同的存储介质。
[0100]
在一些实施例中,处理器62在对写入第一持久性存储介质的目标原始数据进行降采样处理时,具体用于:按照目标原始数据的字段名,将目标原始数据划分为至少一个数据
单元;以及,根据预设的降采样规则,对至少一个数据单元分别将进行降采样处理,以得到降采样数据。
[0101]
可选地,处理器62在对至少一个数据单元分别将进行降采样处理时,具体用于:从预设的降采样规则中,获取采样时间间隔和聚合算子;针对任一数据单元,从任一数据单元中,获取每个采样时间间隔内的目标原始数据;按照聚合算子,对每个采样时间间隔内的目标原始数据进行聚合处理,以得到任一数据单元对应的降采样数据。
[0102]
在另一些实施例中,处理器62在将降采样处理结果写入第二持久性存储介质61b2时,具体用于:针对任一数据单元对应的降采样数据,根据降采样规则和任一数据单元的字段名,确定用于表征降采样规则和降采样对象的目标字段名;以目标字段名为字段名,以任一数据单元的降采样数据为目标字段名的字段值,将目标字段名和任一数据单元对应的降采样数据写入第二持久性存储介质61b2。
[0103]
在一些实施例中,处理器62还用于:采用层级组织结构存储降采样数据对应的降采样文件。相应地,处理器62还用于:针对任意两个相邻层级,在下层级中的降采样文件的数量达到下层级对应的阈值m的情况下,对m个降采样文件进行合并处理;将合并后的降采样文件存储至下层级的上一层级;其中,m为设定阈值,m≥2,且m为整数。
[0104]
可选地,处理器62在对m个降采样文件进行合并处理时,具体用于:针对m个降采样文件存在重叠时间窗口的情况,根据降采样规则中的聚合算子,对重叠时间窗口对应的降采样处理结果进行聚合操作;并将聚合后的m个降采样文件合并为一个降采样文件。
[0105]
在一些实施例中,处理器62还用于:针对第一持久性存储介质61b1中的原始数据存在数据删除的情况,对删除的原始数据进行标记,以得到墓碑记录;根据墓碑记录中数据的时间信息和降采样文件中数据的时间信息,确定墓碑记录对应的降采样文件;在墓碑记录对应的降采样文件合并过程中,从墓碑记录对应的降采样文件中确定墓碑记录对应的降采样数据;删除墓碑记录对应的降采样数据。
[0106]
在本技术实施例中,如图6所示,计算系统还可包括:通信组件63。处理器62还用于:通过通信组件63获取查询请求;查询请求用于聚合查询;根据查询请求,查询内存61a和第二持久性存储介质61b2;针对内存61a中存在满足查询请求的数据的情况,从内存和第二持久性存储介质61b2中分别获取满足查询请求的第一原始数据和第一降采样数据;根据查询请求,对第一原始数据进行降采样处理,以得到第二降采样数据;以及,基于第一降采样数据和第二降采样数据,确定查询请求的查询结果。
[0107]
可选地,处理器62在确定查询请求的查询结果时,具体用于:获取用于标记删除的原始数据的墓碑记录;根据墓碑记录中数据的时间信息和第一降采样数据中数据的时间信息,判断第一降采样数据中是否含有墓碑记录对应的降采样数据;若判断结果为是,从第一降采样数据中删除墓碑记录对应的降采样数据;并确定第二降采样数据和删除墓碑记录对应的降采样数据后的第一降采样数据,为查询请求的查询结果。
[0108]
可选地,处理器62在查询第二持久性存储介质61b2时,具体用于:从查询请求中,获取查询请求对应的查询条件;根据查询条件,生成满足第二持久性存储介质中降采样数据对应的字段名格式的第一字段名;根据第一字段名,查询第二持久性存储介质61b2,以确定第一字段名对应的降采样数据;从第二持久性存储介质中获取满足查询请求的第一降采样数据,包括:从第一字段名对应的降采样数据中,获取满足查询条件的第一降采样数据。
[0109]
在一些实施例中,第一降采样数据位于多个降采样文件中。相应地,处理器62在确定查询请求的查询结果时,具体用于:针对不同降采样文件中的第一降采样数据存在重叠时间窗口的情况,根据查询请求中的聚合算子,对重叠时间窗口对应的第一降采样数据进行聚合操作,以得到聚合后的第一降采样数据;基于聚合后的第一降采样数据和第二降采样数据,确定查询请求的查询结果。
[0110]
在一些可选实施方式中,如图6所示,计算系统还可以包括:电源组件64等组件。图6中仅示意性给出部分组件,并不意味着计算系统必须包含图6所示全部组件,也不意味着计算系统只能包括图6所示组件。
[0111]
值得说明的是,本技术实施例提供的计算系统包含的组件可属于同一物理机,也可属于不同的物理机。对于包含的组件属于不同的物理机的情况,不同的物理机之间通信连接。处理器62可通过物理机之间的通信实现对其它组件的控制和操作。
[0112]
本实施例提供的计算系统,在原始数据从内存写入持久性存储介质的过程中,根据预设的降采样规则,对写入持久性存储介质的目标原始数据进行降采样处理;并存储降采样处理得到的降采样数据,实现了原始数据的预降采样。这样,在降采样查询时,可直接查询预降采样结果,无需在降采样查询时,对原始数据进行实时降采样处理,有助于提高后续降采样查询效率。
[0113]
另一方面,在实施例提供的数据降采样是在内存刷新(memstore flush)阶段,即将内存中的数据写入第一持久性存储介质的过程中,对写入第一持久性存储介质的目标原始数据进行降采样处理的,相较于cq降采样无需查询原始数据的倒排数据和正排索引来获取原始数据,可减少内存和cpu资源消耗。
[0114]
对于降采样查询,在本技术实施例中,可查询内存中的原始数据和降采样数据。一方面,对内存中的原始数据进行实时降采样,对于降采样数据可直接获取满足查询请求的降采样数据,得到数据查询结果。由于内存中的原始数据为最新的原始数据,加上降采样数据查询结果可实现全量降采样数据查询,解决cq降采样不能查询到最新降采样数据的缺点。另一方面,对于直接查询降采样数据部分在数据查询过程中无需进行降采样处理,相较于实时降采样查询,有助于提高数据查询效率。
[0115]
在本技术实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0116]
在本技术实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)或微控制单元(microcontroller unit,mcu);也可以为现场可编程门阵列(field-programmable gate array,fpga)、可编程阵列逻辑器件(programmable array logic,pal)、通用阵列逻辑器件(general array logic,gal)、复杂可编程逻辑器件(complex programmable logic device,cpld)等可编程器件;或者为先进精简指令集(risc)处理器(advanced risc machines,arm)或系统芯片(system on chip,soc)等等,但
不限于此。
[0117]
在本技术实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g或3g,4g,5g或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(nfc)技术、射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术或其他技术来实现。
[0118]
在本技术实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
[0119]
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0120]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0121]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0122]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0123]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0124]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0125]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0126]
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但
不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0127]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0128]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1