一种聚合数据查询方法、设备及介质与流程

文档序号:26050534发布日期:2021-07-27 15:25阅读:106来源:国知局
一种聚合数据查询方法、设备及介质与流程

本申请涉及数据库技术,特别涉及一种聚合数据查询方法、设备及介质。



背景技术:

随着物联网、社交网络、云计算等技术不断融入我们的生活,并伴随着计算能力、存储空间、网络带宽的高速发展,大量生活、工作等事务产生的数据都已经信息化,人类产生的数据量相比以前有了爆炸式的增长,不同领域、不同行业产生并累积了大量的数据。与此同时,传统的数据存储及查询技术已经无法胜任新的环境,由此催生了许多新型的支持大数据量存储及查询的数据库。但是,即便有了新型的开源数据库,在服务器配置(内存)有限的情况下,对于大数据量的聚合查询仍是十分缓慢。

用户在执行聚合查询操作时,输入查询条件,聚合查询系统判断是否有相同条件的有效缓存数据。当系统确定有相同条件的有效缓存数据,直接返回查询到的数据。当系统未查询到相同条件的有效缓存数据时,则执行全量实时查询,全量时间范围的聚合查询非常缓慢。



技术实现要素:

本申请的目的提供一种聚合数据查询方法、设备及介质,根据不同时间范围条件的聚合查询,快速的获取聚合结果。

本申请提供一种聚合数据查询方法包括:接收包含查询条件以及查询时间范围的数据查询请求;将查询时间范围划分为起始时间范围、截止时间范围、每个中间时间块;按照最长时间块到最短时间块的顺序,根据查询条件查询每个中间时间块内的缓存数据,获取一个以上中间自然时间聚合结果;根据查询条件实时聚合查询起始时间范围内的未缓存数据,获取起始时间聚合结果;根据查询条件实时聚合查询截止时间范围内的未缓存数据,获取截止时间聚合结果;将一个以上中间自然时间聚合结果、起始时间聚合结果以及截止时间聚合结果聚合合成为数据查询结果。

本申请还提供了一种聚合数据查询设备,用以执行实现上述方法的处理。

本申请还提供了一种计算机可读存储介质,存储有计算机可读指令,这些指令被处理器执行时使得处理器执行上述方法的处理。

本申请的有益效果在于,可通过查询缓存体数据获取中间时间段数据,并实时聚合查询余下小部分时间段数据,从而快速的获取聚合结果,及时的对业务进行判断和处理。

附图说明

图1为本申请实施例提供的聚合数据查询的流程图;

图2为本申请实施例提供的存储聚合数据的流程图;

图3为本申请实施例提供的聚合数据查询时间范围的示意图。

具体实施方式

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本申请的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

图1所示为一种聚合数据查询方法实施例的流程图,该方法包括:

步骤101,接收包含查询条件以及查询时间范围的数据查询请求。

步骤102,将查询时间范围划分为起始时间范围、截止时间范围、每个中间时间块。

本步骤中,起始时间范围是指查询时间范围的查询起始时间到最近下一个整点时间;截止时间范围是指查询时间范围的查询截止时间到最近的上一个整点时间。

步骤103,按照最长时间块到最短时间块的顺序,根据查询条件查询每个中间时间块内的缓存数据,获取一个以上中间自然时间聚合结果。

步骤104,根据查询条件实时聚合查询起始时间范围内的未缓存数据,获取起始时间聚合结果。

步骤105,根据查询条件实时聚合查询截止时间范围内的未缓存数据,获取截止时间聚合结果。

步骤106,将一个以上中间自然时间聚合结果、起始时间聚合结果以及截止时间聚合结果聚合合成为数据查询结果。

图1所示方法的有益效果在于,可通过查询缓存体数据获取中间时间段数据,并实时聚合查询余下小部分时间段数据,从而快速的获取聚合结果,及时的对业务进行判断和处理。

图2为本申请实施例提供的存储聚合数据的流程图。图2所示的方法可以用应用于缓存体的中不同的数据类型,根据不同的业务场景,用户可自定义缓存任务的聚合字段,即缓存任务中需要聚合查询的字段,聚合字段可以是可多字段组合。在系统中配置缓存任务在每个小时到达时执行。图2方法包括以下几个步骤:

步骤201,一个自然小时是否开始计时;若是,则执行步骤202,若否,则返回。

本申请中,中间时间块按照自然时间划分,是指不是用户自定义的时间。时间块按照时间长短的顺序分为:自然小时、自然日、自然月、自然年。每个小时开始时,缓存任务开始执行。

步骤202,将迁移将前一小时内未缓存数据缓存为一个中间自然时聚合数据。

假如,当第一个缓存任务在一月一日的凌晨0点到达后执行,则将前一日的晚上23点到00点之间的未缓存数据缓存为一个中间自然时聚合数据。

假如,当第二个缓存任务在一月一日的凌晨1点到达后执行,则将当天凌晨0点到1点之间的未缓存数据缓存为一个中间自然时聚合数据。

步骤203,判断当前小时是否是自然日的第一个小时,若是,执行步骤204,若否,返回步骤201。

第一个缓存任务判断当前小时是自然日的第一个小时,则继续执行步骤204。

第二个缓存任务判断当前小时不是自然日的第一个小时,则返回步骤201。

步骤204,将前一自然日的所有中间自然时聚合数据缓存为一个中间自然日聚合数据。

第一个缓存任务将前一天(即前一年的12月31日)的24个小时分别聚合缓存的24个中间自然时聚合数据缓存为一个中间自然日聚合数据。

步骤205,判断当前小时是否是自然月的第一个小时,若是,则执行步骤206,若否,则返回步骤201。

第一个缓存任务判断当前小时是自然月的第一个小时,则执行步骤206。

假如,第三个缓存任务是在四月七日凌晨的0点到达后执行,先将前一小时的未缓存数据聚合一个中间自然时聚合数据(参见步骤202);然后判断当前小时是自然日的第一个小时(参见步骤203),将前一日(即3月31日)的所有中间数据聚合为一个中间自然日聚合数据(参见步骤204);但是判断当前小时不是自然月的第一个小时,则返回步骤201。

步骤206,将前一月的所有中间自然日聚合数据缓存为一个中间自然月聚合数据。

第一个缓存任务将前一月(即前一年的12月)的所有中间自然日聚合数据缓存为一个中间自然月聚合数据之后。

步骤207,判断当前小时是否自然年的第一个小时,若是,执行步骤208,若否,返回步骤201。

第一个缓存任务判断当前小时是自然年的第一个小时,则执行步骤208。

假如,第四个缓存任务是在五月一日凌晨的0点到达后执行,先将前一小时的未缓存数据聚合为一个中间自然时聚合数据(参见步骤202),然后判断当前小时是自然日的第一个小时(参见步骤203),然后将前一日(即4月30日)的所有中间自然时数据聚合为一个中间自然日聚合数据(参见步骤204);判断当前小时是自然月的第一个小时,将前一个月(即,4月)的所有中间自然日聚合数据聚合为一个中间自然月聚合数据(参见步骤206);但是判断当前小时不是自然年的第一个小时,则返回步骤201。

步骤208,将前一自然年的所有中间自然月聚合数据缓存为一个中间自然年聚合数据。

第一个缓存任务在时间块的时间从短到长的顺序,依次完成了步骤202、204、206的处理后,前一年的所有自然月聚合数据缓存为一个中间自然年聚合数据。

图3为本申请实施例提供的聚合数据查询时间范围的示意图。图3中,当聚合数据系统的数据查询请求包含查询条件以及查询时间范围2017年7月10日14点42分23秒-2020年5月24日9点12分30秒。

聚合数据系统将将查询时间范围划分为起始时间范围r1、截止时间范围r2以及中间时间块。其中,中间时间块包括:中间自然时h1和h2、中间自然日d1和d2、中间自然月m1和m2、中间自然年y。

起始时间范围r1是用户查询的起始时间到最近的下一个整点时间,即2017年7月10日14点42分23秒-2017年7月10日15点。

截止时间范围r2:用户查询的结束时间到最近的上一个整点时间,即-2020年5月24日9点-2020年5月24日9点12分30秒。

中间自然时h1:起始时间范围r1到其次日前的每个小时(即2017年7月10日15点-2017年7月10日24点/2017年7月11日0点);中间自然时h2:截止时间范围r1在其当日之前的每个小时(即,2020年5月24日9点24点-2020年5月24日0点)。

中间自然日d1:起始时间范围r1的次日到其当前自然月最后一天的每个自然日(2017年7月11日0点0分-2017年7月31)。

中间自然日d2:截止时间范围r1当日在其当月之前的每个自然日的(即2020年5月1日0点-2020年5月23日24点。

中间自然月m1:起始时间范围r的次月到其当年最后一月的每个自然月(2017年8月-2017年12月的每个自然月)。

中间自然月m2:截止时间范围的当年的第一月到其前一月的每个自然月(即2020年1月-2020年4月的每个自然月)。

中间自然年y:起始时间范围r1的次年与截止时间范围r2的前一年的每个自然年(即2018年、2019年)。

聚合数据系统按照最长时间块到最短时间块的顺序,根据查询条件查询中间自然年y、中间自然日d1和d2、中间自然时h1和h2的聚合缓存数据,获取这些中间时间块对应的中间自然时间聚合结果。

聚合数据系统根据查询条件实时聚合查询起始时间范围r1内的未缓存数据,获取起始时间聚合结果;根据查询条件实时聚合查询截止时间范围内r的未缓存数据,获取截止时间聚合结果。

聚合数据系统将根据查询条件查询中间自然年y、中间自然日d1和d2、中间自然时h1和h2的聚合缓存数据,以及实时查聚合询未缓存的少部分时间范围r1和r2的未聚合缓存数据,聚合合成数据查询结果。

通过图3所示的方法,可通过查询缓存体数据获取中间时间段数据,并实时聚合查询余下小部分时间段数据,从而快速的获取聚合结果,及时的对业务进行判断和处理。

本申请还提供了一种电子设备,该设备包括:处理器以及存储器。该设备的存储器存储有计算机可读指令,该指令被处理器执行时使得处理器执行图1-图3的实施例。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1