CN111949681A - 数据的聚合处理装置、方法和存储介质 - Google Patents
数据的聚合处理装置、方法和存储介质 Download PDFInfo
- Publication number
- CN111949681A CN111949681A CN202010573227.0A CN202010573227A CN111949681A CN 111949681 A CN111949681 A CN 111949681A CN 202010573227 A CN202010573227 A CN 202010573227A CN 111949681 A CN111949681 A CN 111949681A
- Authority
- CN
- China
- Prior art keywords
- aggregation
- processing
- sub
- module
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/30—Providing cache or TLB in specific location of a processing system
- G06F2212/305—Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供了一种数据的聚合处理装置、方法和存储介质。其中,该装置可以通过序列分组模块先将较复杂的目标数据序列拆分成多个子序列,进而可以通过聚合模块组利用所包含的多个并联的聚合模块以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再通过合并模块合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少用户的等待时间的技术效果。
Description
技术领域
本说明书属于数据库处理技术领域,尤其涉及数据的聚合处理装置、方法和存储介质。
背景技术
随着技术的发展,数据库所包含的数据量越来越庞大。相应的,服务器在响应用户针对数据库的查询请求,对数据库中的数据进行聚合处理(或操作)所需要的耗时也变得越来越长,导致用户往往需要等待较长的时间,才能得到服务器反馈的聚合处理结果。
因此,亟需一种能够达到针对数据库中的数据高效地进行聚合处理的方法。
发明内容
本说明书提供了一种数据的聚合处理装置、方法和存储介质,以提高聚合处理效率,解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。
本说明书提供的一种数据的聚合处理装置、方法和存储介质是这样实现的:
一种数据的聚合处理装置,包括序列分组模块、聚合模块组,和合并模块,其中,序列分组模块与聚合模块组相连,合并模块与聚合模块组相连;
序列分组模块,用于将所接入的数据库中的目标数据序列,划分为多个子序列组,得到多个子序列;其中,所述目标数据序列包括多个数据元素;
聚合模块组包括多个并联的聚合模块,所述聚合模块组用于获取多个子序列,并通过多个并联的聚合模块对所述多个子序列并行进行聚合处理,得到对应的多个子序列的中间处理结果;
合并模块,用于合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
在一个实施例中,在所述聚合模块组和所述序列分组模块之间还连接有子序列缓存模块,所述子序列缓存模块用于缓存所述多个子序列。
在一个实施例中,所述子序列缓存模块包括片上存储器,所述子序列缓存模块将所述多个子序列缓存在片上存储器中。
在一个实施例中,所述子序列缓存模块还包括DDR存储器和/或SSD存储器,所述子序列缓存模块在所述片上存储器的存储空间不满足存储要求的情况下,将所述多个子序列缓存在所述DDR存储器和/或SSD存储器中。
在一个实施例中,在所述合并模块和所述聚合模块组之间还连接有中间处理结果缓存模块,所述中间处理结果缓存模块用于缓存多个中间处理结果。
在一个实施例中,所述中间处理结果缓存模块包括片上存储器,所述中间处理结果缓存模块将所述多个中间处理结果缓存在片上存储器中。
在一个实施例中,在所述聚合模块组和所述序列分组模块之间还连接有子序列分组模块组,其中,所述子序列分组模块组包括多个子序列分组模块,所述多个子序列分组模块用于对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。
在一个实施例中,所述聚合模块包括多个逻辑操作单元,所述多个逻辑操作单元包括以下至少之一:加法单元、除法单元、比较单元。
在一个实施例中,所述装置还包括配置端口,所述配置端口与所述聚合模块组中聚合模块相连,所述配置端口用于接收用户设置的聚合处理的模式配置参数。
在一个实施例中,所述模块用于根据所述模式配置参数组合多个逻辑操作单元,以对子序列进行对应的模式类型的聚合处理。
在一个实施例中,聚合处理的模式类型包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理等等。
本申请还提供了一种数据的聚合处理方法,包括:
获取数据库中的目标数据序列,其中,所述目标数据序列包括多个数据元素;
将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列;
对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果;
合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
在一个实施例中,将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列,包括:
确定多个数据元素中各个数据元素的属性标志;
将所述属性标志作为分组标志,并根据数据元素的分组标志,确定出多个数据元素中的各个数据元素所分别对应的子序列组;
根据各个子序列组所包含的数据元素,建立对应的子序列。
在一个实施例中,所述方法还包括:
通过配置端口接收用户设置的聚合处理的模式配置参数;
根据所述聚合处理的模式配置参数,确定聚合处理的模式类型。
在一个实施例中,所述聚合处理的模式类型包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理。
在一个实施例中,在将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列后,所述方法还包括:
确定所述多个子序列中的各个子序列所包含的数据元素的数量;
根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定是否需要对所述多个子序列中的子序列进行分组处理。
在一个实施例中,在根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定需要对所述多个子序列中的子序列进行分组处理的情况下,所述方法还包括:
通过对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列;
相应的,对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果,包括:
对所述多个单位子序列分别进行并行的聚合处理,得到单位子序列的聚合处理结果;
聚合对应同一个子序列的单位子序列的聚合处理结果,得到子序列的中间处理结果。
在一个实施例中,所述方法还包括:
将所述多个子序列存储在片上存储器上。
在一个实施例中,在片上存储器存储空间不满足存储要求的情况下,将所述多个子序列存储在DDR存储器,或SSD存储器上。
在一个实施例中,获取数据库中的目标数据序列,包括:
接收用户针对数据库的数据查询请求;
根据所述数据查询请求,从数据库获取与所述数据查询请求关联的目标数据序列。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取数据库中的目标数据序列,其中,所述目标数据序列包括多个数据元素;将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列;对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果;合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
本说明书提供的一种数据的聚合处理装置、方法和存储介质,通过先将较复杂的目标数据序列拆分成多个子序列,进而可以以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少用户查询、访问数据库时的等待时间,提高用户的使用体验的技术效果。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书的一个实施例提供的数据的聚合处理装置的结构组成示意图;
图2是本说明书的另一个实施例提供的数据的聚合处理装置的结构组成示意图;
图3是本说明书的再一个实施例提供的数据的聚合处理装置的结构组成示意图;
图4是本说明书的一个实施例提供的数据的聚合处理装置中的聚合模块的结构组成示意图;
图5是本说明书的一个实施例提供的数据的聚合处理方法的流程示意图;
图6是在一个场景示例中,应用本说明书实施例提供的数据的聚合处理方法的一种实施例的示意图;
图7是在一个场景示例中,应用本说明书实施例提供的数据的聚合处理方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到通常服务器在针对数据库中的数据序列进行聚合操作时,往往是采用串行处理的方式对数据序列中的数据元素逐个地进行聚合处理的。而随着大数据等技术的发展,数据库所包含的数据量越来越庞大。相应的,服务器所要进行聚合操作的数据序列也变得越来越复杂。例如,服务器往往要进行聚合处理的数据序列中可能会包含有成千上万个数据元素。针对上述比较复杂的数据序列,如果采用串行处理的方式进行处理时,处理过程往往需要耗费掉较长的处理时长,使得延时情况会更加得明显,导致用户需要等待较长的时间才能最终得到聚合处理结果。可见,基于现有方法针对较复杂的数据序列进行聚合处理时,往往会存在聚合处理效率低、处理耗时长,用户的等待时间长、用户体验差的技术问题。
针对产生上述问题的根本原因,本说明书考虑可以先通过分组的方式,将较复杂的目标数据序列拆分成多个相对较简单的子序列,进而可以充分地利用处理器的处理性能采用并行处理的方式同时对多个子序列同时进行聚合处理得到对应的中间处理结果。进一步,再采用合并的方式,将上述中间处理结果进行合并处理,得到针对完整的目标数据序列的聚合处理结果,完成针对目标数据序列的聚合处理。这样可以有效地解决现有方法中存在的聚合处理效率低、处理耗时长,用户的等待时间长、用户体验差的技术问题,达到提高聚合处理效率,减少了用户查询、访问数据库时的等待时间,提高了用户的使用体验的技术效果。
基于上述思考思路,本申请实施例提供了一种数据的聚合处理装置。具体请参阅图1所示的本说明书的一个实施例提供的数据的聚合处理装置的结构组成示意图。其中,该装置具体可以包括:序列分组模块101、聚合模块组103,和合并模块105等结构模块。其中,序列分组模块101与聚合模块组103相连,合并模块105与聚合模块组103相连。
具体的,上述聚合模块组103中进一步可以包括多个聚合模块,例如,聚合模块0、聚合模块1……聚合模块M等。上述多个聚合模块相互之间以并联的方式组成了所述聚合模块组103。其中,多个聚合模块之间的数据处理是相互独立的。
具体的,上述序列分组模块101,具体实施时,可以用于将所接入的数据库中的目标数据序列,划分为多个子序列组,得到多个子序列;其中,所述目标数据序列包括多个数据元素。
其中,上述目标数据序列具体可以是数据库中用户想要查询的数据序列,也可以是从外部输入,或者通过片上缓存输入的数据序列。
上述序列分组模块101具体实施时,可以先确定出目标数据序列所包含的多个数据元素中各个数据元素的属性标志;再将所述属性标志作为分组标志,并根据数据元素的分组标志,确定出多个数据元素中的各个数据元素所分别对应的子序列组;进而可以根据各个子序列组所包含的数据元素,建立对应的子序列。
聚合模块组103具体包括多个并联的聚合模块,所述聚合模块组用于从所述序列分组模块组101中获取得到多个子序列,并通过多个并联的聚合模块分别对所述多个子序列并行进行聚合处理,得到对应的多个子序列的中间处理结果。
上述聚合模块组103在得到分组模块101输出的多个子序列后,会将上述多个子序列分别分配给多个聚合模块进行处理。在具体分配时,如果待处理的多个子序列的数量大于所述多个聚合模块的数量,可以将所述多个子序列分批次地分配个多个聚合模块进行处理。
上述合并模块105,具体实施时,可以用于合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
具体的,上述合并模块105可以包括多个并联的合并子模块。例如,合并模块105可以包括并联的合并子模块0、合并子模块1……合并子模块L。这样,合并模块105在具体对多个中间处理结果进行合并时,可以调用所包含的多个合并子模块分别获取两个中间处理结果进行两两合并。最终输出一个总的合并结果作为针对目标数据序列的聚合处理结果。从而可以通过并行处理的方式进行具体的合并处理,进一步提高了处理效率。
在本实施例中,具体实施时,可以利用上述装置,在对一个较为复杂的包含的数据元素数量较多的目标数据序列进行聚合处理时,可以先通过序列分组模块101将上述较为复杂的目标数据序列划分成多个相对较简单的,包含的数据元素的数量相对较少的多个子序列。进一步,通过聚合模块组103先将上述序列分组模块101输出的多个子序列分别分配到所包括的并联的多个聚合模块中。进而可以通过多个并联的聚合模块同时以并行处理的方式针对各自所分配到的多个子序列分别进行聚合处理,得到对应子序列的多个中间处理结果。再通过合并模块105合并上述对应子序列的多个中间处理结果,从而得到针对目标数据序列的聚合处理结果。
通过上述装置可以先将较复杂的目标数据序列拆分成多个子序列,进而可以以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少用户查询、访问数据库时的等待时间,提高用户的使用体验的技术效果。
在一个实施例中,参阅图2所示,在所述聚合模块组103和所述序列分组模块101之间具体还可以连接有子序列缓存模块102-1,其中,所述子序列缓存模块102-1具体可以用于缓存所述多个子序列。
具体实施时,序列分组模块101通过分组所得到的多个子序列可以先通过子序列缓存模块102-1进行缓存。聚合模块组103在要对子序列进行处理时,可以从缓存中读取出多个子序列,再分配给多个聚合模块进行处理。
在一个实施例中,所述子序列缓存模块102-1具体可以包括片上存储器,所述子序列缓存模块102可以将所述多个子序列缓存在片上存储器中。
具体实施时,在片上存储器的存储空间满足存储要求的情况下,子序列缓存模块102可以优先将上述多个子序列缓存在片上存储器中,这样可以有效地提高聚合模块组103读取多个子序列的读取效率,提高整体的处理效率。
在一个实施例中,所述子序列缓存模块102-1具体还可以包括DDR存储器和/或SSD存储器,所述子序列缓存模块102-1在所述片上存储器的存储空间不满足存储要求的情况下,可以将所述多个子序列缓存在所述DDR存储器和/或SSD存储器中。这样在片上存储器的存储空间不足时,子序列缓存模块102-1可以将多个子序列缓存在DDR存储器和/或SSD存储器等片外的存储器中,聚合模块组103可以从上述DDR存储器和/或SSD存储器等读取获得多个子序列。
在一个实施例中,参阅图2所示,在所述合并模块105和所述聚合模块组103之间还连接有中间处理结果缓存模块104,所述中间处理结果缓存模块104具体可以用于缓存多个中间处理结果。
具体实施时,聚合模块组103通过并行的聚合处理所得到的多个中间处理结果可以先通过中间处理结果缓存模块104进行缓存。合并模块105在要对中间处理结果进行合并处理时,可以从缓存中读取出多个中间处理结果进行合并处理。
在一个实施例中,所述中间处理结果缓存模块104具体可以包括片上存储器,所述中间处理结果缓存模块104具体实施时,可以将所述多个中间处理结果缓存在片上存储器中。
具体实施时,在片上存储器的存储空间满足存储要求的情况下,中间处理结果缓存模块104具体实施时可以优先将上述多个中间处理结果缓存在片上存储器中,这样可以有效地提高合并模块105读取多个中间处理结果的读取效率,从而提高整体的处理效率。
在一个实施例中,所述中间处理结果缓存模块104具体还可以包括DDR存储器和/或SSD存储器,所述中间处理结果缓存模块104在所述片上存储器的存储空间不满足存储要求的情况下,可以将所述多个中间处理结果缓存在所述DDR存储器和/或SSD存储器中。这样在片上存储器的存储空间不足时,中间处理结果缓存模块104可以将多个中间处理结果缓存在DDR存储器和/或SSD存储器等片外的存储器中,合并模块105可以从上述DDR存储器和/或SSD存储器等读取获得多个中间处理结果。
在一个实施例中,可以参阅图3所示。在所述聚合模块组103和所述序列分组模块101之间具体可以还连接有子序列分组模块组102-2,其中,所述子序列分组模块组102-1具体可以包括多个子序列分组模块。例如,子序列分组模块0、子序列分组模块1……子序列分组模块N等。所述多个子序列分组模块具体可以用于对所述多个子序列中的各个子序列所包含的数据元素进行进一步的分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。
在本实施例中,考虑到通过序列分组模块101划分得到的多个子序列可能所包含的数据元素仍然比较多,聚合模块组103中的聚合模块进行聚合处理时,相对还是比较复杂。这时,可以通过上述子序列分组模块组102-2中的多个子序列分组模块将多个子序列进行进一步的拆分,得到包含的数据元素更少,相对更简单的多个单位子序列。相应的,后续聚合模块组103中的多个聚合模块可以先对所述多个单位子序列分别进行并行的聚合处理,得到单位子序列的聚合处理结果;再聚合对应同一个子序列的单位子序列的聚合处理结果,得到子序列的中间处理结果。这样可以降低聚合模块组103进行聚合处理的复杂度,进一步提高处理效率。
在一些实施例中,可以参阅图4所示,所述聚合模块具体可以包括多个不同逻辑操作单元。其中,所述多个逻辑操作单元具体可以包括以下至少之一:加法单元、除法单元、比较单元等。当然,上述所列举的逻辑操作单元只是一种示意性说明。具体实施时,根据具体的应用场景和处理要求,还可以包括除上述所列举的逻辑操作单元以外其他类型的逻辑操作单元。对此,本说明书不作限定。
在一个实施例中,所述聚合模块可以通过组合所选中的多个逻辑操作单元,来实现对子序列的对应模式类型的聚合处理。
在一个实施例中,聚合处理的模式类型具体可以包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理等等。当然,上述所列举的模式类型只是一种示意性说明。具体实施时,根据具体的应用场景和处理要求,还可以包含有其他模式类型的聚合处理。对此,本说明书不作限定。
在一个实施例中,所述装置具体还可以包括配置端口,其中,所述配置端口具体可以与所述聚合模块组中聚合模块相连,所述配置端口具体可以用于接收用户设置的聚合处理的模式配置参数。用户可以通过配置端口设置相应的模式配置参数对聚合模块进行配置设置,来控制聚合模块对子序列进行对应的模式类型的聚合处理。
在一个实施例中,所述模块具体可以用于根据所述模式配置参数来选择和组合多个相应逻辑操作单元,进而可以通过上述逻辑单元组合对子序列进行对应的模式类型的聚合处理。从而能够实现满足用户要求的聚合处理。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的数据的聚合处理装置,通过序列分组模块可以先将较复杂的目标数据序列拆分成多个子序列,进而可以通过聚合模块组通过所包含的多个并联的聚合模块以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再通过合并模块合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少了用户查询、访问数据库时的等待时间,提高了用户的使用体验的技术效果。
本申请实施例还提供了一种数据的聚合处理方法。具体请参阅图5所示的本说明书的一个实施例提供的数据的聚合处理方法的流程示意图。本申请实施例提供的数据的聚合处理方法,具体实施时,可以包括以下内容。
S501:获取数据库中的目标数据序列,其中,所述目标数据序列包括多个数据元素。
在本实施例中,上述数据的聚合处理方法具体可以应用于负责对数据库中的数据进行聚合操作处理的服务器。其中,上述服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的负责数据处理的服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。需要说明的是,在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在一个实施例中,上述目标数据序列具体可以包括一种存储于数据库中,包含有用户想要查询访问的信息内容的数据序列。其中,上述目标数据序列中可以包括多个数据元素。具体的可以参阅图6所示。在目标数据序列Table0中,每一个数据元素具体可以包含有该数据元素的数据值(可以记为Col),以及该数据元素在该数据序列中的编号(可以记为Order)。
在一个实施例中,根据不同的业务场景,上述目标数据序列具体可以用于表征不同的业务内容。相应的,上述目标数据序列中的每一个数据元素具体的数据值可以是用于表征对应的业务内容的数据值。
例如,在员工A查询工资的业务场景中,上述目标数据序列具体可以是存储在数据库中的用于表征员工A工资的具体情况的数据。其中,上述目标数据序列中的每一个数据元素具体可以对应于该员工工资中的一个工资项,表征该员工A在该工资项所获得的金额。例如,目标数据序列中编号为1的数据元素可以是对应于员工A的基本工资项,该数据元素的数据值3000可以用于表征该员工A的基本工资的金额是3000元等。当然,上述所列举的目标数据序列只是一种示意性说明。具体实施时,根据具体的应用场景和处理需要,上述目标数据序列还可以是用于表征其他业务内容的数据序列。对此,本说明书不作限定。
在一个实施例中,上述获取数据库中的目标数据序列,具体实施时,可以包括以下内容:接收用户针对数据库的数据查询请求;根据所述数据查询请求,从数据库获取与所述数据查询请求关联的目标数据序列。
在本实施例中,用户如果想要查询或访问某个数据库,获取相应的信息内容,可以先通过客户端设备,例如用户使用的手机、电脑等设备生成并向服务器发送对应的针对数据库的数据查询请求。其中,上述查询请求中具体可以携带有该用户想要查询获取的信息内容的指示信息。
服务器在接收到上述查询请求后,可以先通过对查询请求进行解析,获取其中所携带的用户想要查询获取的信息内容的指示信息,并根据上述指示信息对查询请求所针对的数据库进行搜索,从数据库中找到与该查询请求匹配关联的,包含有用户想要获取的信息内容的数据序列作为目标数据序列。
S502:将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列。
在本实施例中,考虑到目标数据序列本身较为复杂,包含有大量的数据元素,如果采用串行处理的方式进行处理势必需要耗费较多的处理时长。为了能够配合采用并行处理的方式进行处理,可以先将原本较为复杂的目标数据序列拆分成多个相对较为简单,包含的数据元素的数量相对较少的子序列。
在一个实施例中,考虑到数据库中存储的目标数据序列中往往还会包含有用于表征数据元素的属性的标志或标记信息,因此,可以考虑获取并根据目标数据序列中数据元素的属性标志作为分组依据,来将所述目标数据序列中的多个数据元素划分为不同的子序列组,得到对应的多个子序列。
具体实施时,可以确定多个数据元素中各个数据元素的属性标志;将所述属性标志作为分组标志,并根据数据元素的分组标志,确定出多个数据元素中的各个数据元素所分别对应的子序列组;根据各个子序列组所包含的数据元素,建立对应的子序列。
在本实施例中,具体实施时,可以将划分在一个子序列组中的多个数据元素,按照数据元素在目标数据序列中的编号进行组合,来建立得到对应该子序列组的子序列。
在一个实施例中,上述属性标志具体可以包括以下所列举的一种或多种组合:性别属性标志、级别属性标志、业务类型属性标志等等。当然,上述所列举的属性标志只是一种示意性说明。具体实施时,根据具体的业务场景,还可以引入其他合适的属性标志。对此,本说明书不作限定。
在一个实施例中,还可以是服务器根据目标数据序列中数据元素的属性,另外为各个数据元素设置对应的属性标志,作为分组标志。也可以是服务器根据针对单个子序列的处理性能,随机为各个数据元素设置一个数字作为分组标志,并保证每个子序列组所对应的分组标志的数量相同,且满足针对单个子序列的处理性能。
当然,需要说明的是,上述所列举的将目标数据序列拆分为多个子序列的拆分方式只是一种示意性说明。具体实施时,根据具体情况,也可以采用其他合适的拆分方式来将目标数据序列拆分成多个子序列。对此,本说明书不作限定。
在一个实施例中,在通过上述方式拆分得到的子序列有时可能仍然比较复杂,包含有数量较多的数据元素,或者基于服务器的处理性能对该单个的子序列还是无法高效地进行处理,这时服务器可以对上述拆分得到的子序列进行进一步的拆分分组,得到相对更简单的处理结构。
具体的,在将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列后,所述方法还可以包括以下内容:确定所述多个子序列中的各个子序列所包含的数据元素的数量;根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定是否需要对所述多个子序列中的子序列进行分组处理。
如果子序列所包含的数据元素的数量相对较多,大于预设的阈值数量,可以对该子序列进行分组处理,以将该子序列进行拆分成相对更加简单的,包含的数据元素数量相对更少的单位子序列。
例如,可以通过对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。后续处理时,可以以单位子序列作为并行处理的单位进行具体的并行处理。
在一个实施例中,在将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列后,进一步,服务器还可以先将所述多个子序列以缓存的方式存储在片上存储器上。这样可以便于后续读取子序列,提高读取效率,进一步提高整体的处理效率。
在一个实施例中,考虑到片上存储器的存储空间可能相对较为有限,因此,服务器在存储子序列时还会先对片上存储空间进行检测,以确定片上存储器存储空间是否满足存储要求。
在确定片上存储空间满足存储要求的情况下,可以优先将所述多个子序列存储在片上存储器上。在片上存储器存储空间不满足存储要求的情况下,将所述多个子序列存储在DDR存储器,或SSD存储器上。
S503:对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果。
在本实施例中,上述聚合处理,也可以称为聚合操作,可以理解为一种根据目标数据序列中的数据元素的数据值,对目标数据序列中的数据元素所进行的具体的操作处理。
在一个实施例中,对应不同的业务场景和处理需求,上述聚合处理可以是不同模式类型的聚合处理。具体的,上述聚合处理的模式类型可以包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理等。当然,上述所列举的聚合处理的模式类型只是一种示意性说明。具体实施时,根据具体的业务场景,还可以引入其他合适的聚合处理的模式类型。对此,本说明书不作限定。在本实施例中,仅以求和处理这种模式类型的聚合处理为例,进行具体说明。其他模式类型的聚合处理的实现方式,可以参照求和处理这种模式类型的聚合处理,本说明书不作赘述。
在一个实施例中,具体实施时,在对所述多个子序列并行进行聚合处理之前,服务器还可以通过配置端口接收用户设置的聚合处理的模式配置参数;根据所述聚合处理的模式配置参数,确定聚合处理的模式类型。其中,上述模式配置参数具体可以用于表征用户所选中的聚合处理的模式类型。
在一个实施例中,具体实施时,也可以不用获取用户设置的模式配置参数,而是根据所针对处理的目标数据序列本身的数据特点,选择对应匹配的聚合处理的模式类型作为默认的模式类型,进而可以直接对多个子序列进行默认的模式类型的聚合处理。
在一个实施例中,服务器可以采用并行处理的方式对上述多个子序列同时进行并行的聚合处理。从而可以有效地缩短对目标数据序列进行聚合处理的处理时长。
在一个实施例中,具体实施时,服务器可以将上述多个子序列分别分配给不同的处理单元(例如,不同的聚合模块),从而可以通过控制不同的处理单元分别从存储器上读取所分配的子序列,再控制处理单元对所读取出的子序列同时进行聚合处理,得到对应的中间处理结果,从而实现对多个子序列的并行处理。
其中,上述中间处理结果具体可以理解为对单个子序列进行聚合处理所得到的聚合处理结果。例如,在聚合处理为求和处理模式类型的情况下,上述中间处理结果可以是一个子序列中所包含的数据元素的数据值相加得到的和。
在一个实施例中,如果待处理的子序列的数量相对较多,超过了可分配的处理单元,可以将多个子序列分批次地分配给多个处理单元,通过控制处理单元进行多次并行聚合处理,完成对所有的子序列的并行处理。
在一个实施例中,如果之前还通过对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。相应的,上述对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果,具体实施时,可以包括以下内容:对所述多个单位子序列分别进行并行的聚合处理,得到单位子序列的聚合处理结果。进一步,再聚合对应同一个子序列的单位子序列的聚合处理结果,得到子序列的中间处理结果。
具体的,可以参阅图6所示,先将目标数据序列划分成了4个子序列,分别记为:Table0_0、Table0_1、Table0_2、Table0_3。进一步又将上述4个子序列中的各个子序列分别进行分组拆分成2个更简单的单位子序列,得到了8个不同的单位子序列,分别记为:Table0_0_0、Table0_0_1、Table0_1_0、Table0_1_1、Table0_2_0、Table0_2_1、Table0_3_0、Table0_3_1、。这时服务器可以将单位子序列分配不同的处理单元,并控制多个处理单元同时对多个单位子序列进行并行的聚合处理,得到对应的多个单位子序列的聚合处理结果。再将对应同一个子序列的单位子序列的聚合处理结果进行聚合,得到对应一个子序列的中间处理结果。
S504:合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
在一个实施例中,可以通过合并的方式将多个中间处理结果进行合并处理,最终得到一个总的处理结果,作为针对目标数据序列的聚合处理结果,从而完成针对该复杂的目标数据序列的聚合处理。
在本实施例中,具体的合并方式可以根据具体的业务场景和用户需求灵活确定。具体的,可以参阅图6所示,将对应4个子序列的中间处理结果“12”、“23”、“36”和“49”合并到一个表中,得到了一个Result0,作为最终的聚合处理结果,从而完成了对目标数据序列Table0的聚合处理。
在本实施例中,具体的合并的方式还可以根据聚合处理的模式类型确定的。例如,如果聚合处理的模式类型为求和处理,对应的合并的方式可以是将所述多个中间处理结果进行相加秋后。如何聚合处理的模式类型为求平均值处理,对应的合并的方式可以是对所述多个中间处理结果进行几何平均值的求解等等。对于上述具体的合并的方式,本说明书不作限定。
在本实施例中,通过先将较复杂的目标数据序列拆分成多个子序列,进而可以以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够充分地利用服务器的处理性能,解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少了用户查询、访问数据库时的等待时间,提高了用户的使用体验的技术效果。
在一个实施例中,上述将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列,具体实施时,可以包括以下内容:确定多个数据元素中各个数据元素的属性标志;将所述属性标志作为分组标志,并根据数据元素的分组标志,确定出多个数据元素中的各个数据元素所分别对应的子序列组;根据各个子序列组所包含的数据元素,建立对应的子序列。
在一个实施例中,所述方法具体实施时,还可以包括以下内容:通过配置端口接收用户设置的聚合处理的模式配置参数;根据所述聚合处理的模式配置参数,确定聚合处理的模式类型。
在一个实施例中,所述聚合处理的模式类型具体可以包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理等等。
在一个实施例中,在将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列后,所述方法具体实施时,还可以包括以下内容:确定所述多个子序列中的各个子序列所包含的数据元素的数量;根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定是否需要对所述多个子序列中的子序列进行分组处理。
在一个实施例中,在根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定需要对所述多个子序列中的子序列进行分组处理的情况下,所述方法具体实施时,还可以包括以下内容:通过对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。
相应的,对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果,具体可以包括:对所述多个单位子序列分别进行并行的聚合处理,得到单位子序列的聚合处理结果;聚合对应同一个子序列的单位子序列的聚合处理结果,得到子序列的中间处理结果。
在一个实施例中,所述方法具体实施时,还可以包括:将所述多个子序列存储在片上存储器上。
在一个实施例中,具体实施时,在片上存储器存储空间不满足存储要求的情况下,可以将所述多个子序列存储在DDR存储器,或SSD存储器上。
在一个实施例中,上述获取数据库中的目标数据序列,具体实施时,可以包括以下内容:接收用户针对数据库的数据查询请求;根据所述数据查询请求,从数据库获取与所述数据查询请求关联的目标数据序列。
在一个实施例中,在合并所述中间处理结果,得到针对目标数据序列的聚合处理结果后,所述方法具体实施时,还可以包括:服务器将所得到的针对目标数据序列的聚合处理结果发送至用户使用的客户端设备;客户端设备向用户展示所述聚合处理结果,以便用户获取想要查询的信息内容。
由上可见,本说明书实施例提供的数据的聚合处理方法,通过先将较复杂的目标数据序列拆分成多个子序列,进而可以以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,从而能够解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少了用户查询、访问数据库时的等待时间,提高了用户的使用体验的技术效果。还通过将复杂的目标数据序列拆分成相对较为简单的子序列后,先将上述子序列优先缓存在片上存储器上,方便后续读取、处理,从而提高了读取、处理子序列的效率,进一步提高了针对目标数据序列整体的聚合处理效率。
本说明书实施例还提供了一种基于上述数据的聚合处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取数据库中的目标数据序列,其中,所述目标数据序列包括多个数据元素;将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列;对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果;合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
在一个具体实施场景示例中,可以应用本申请实施例的提供的数据的聚合处理方法对数据库中的数据序列进行聚合处理。具体实施过程可以参阅以下内容。
第一步,序列分组,在数据库中聚合操作都是基于分组进行的。通常可以先对序列(即数据库中的目标数据序列)进行分组处理,得到数据序列各数据元素对应的分组标志。然后根据分别标志,将原始数据序列分成不同的子序列。这样后续聚合操作可以是针对不同的子序列进行。
第二步,子序列进一步分组,经过第一步划分完的子序列后,即可分别对不同的子序列进行聚合操作(即聚合处理)。但是在很多情形下,每个子序列数据量仍然过大,对单个子序列进行串行处理起来过慢。因此可以针对各子序列,按照顺序根据特定间隔进一步进行划分,划分为成更小的子序列(即单位子序列)。
第三步,子序列聚合,对第一步和第二步划分完成的子序列分别进行聚合操作,为了高效进行处理,可以将各子序列分别映射到不同的聚合处理单元中,并行进行处理。
第四步,结果合并,通过第二步操作,同一分组中的数据序列又被分成了多个子序列进行处理。在第三步中,各子序列分别完成了聚合操作,得到了中间结果。在本步骤中,可以将同一分组中的各中间结果进行合并,得出最终的结果。
在本场景示例中,根据聚合操作类型(即聚合处理的模式类型)不同,合并方式也有相应的不同方式。例如,对于求和操作,对应的合并操作为多个中间结果相加,对于求最大值/最小值操作合并操作为取多个中间结果的最大值/最小值,对于求平均值操作合并操作为取多个中间结果的几何平均值等。
在本场景示例中,为了能够实现上述方法,可以利用服务器基于处理逻辑,构建以下的程序实现模块。具体可以参阅图7所示。具体可以包括:序列分组模块、子序列处理分组模块、序列缓存模块、聚合模块组、中间结果缓存模块、中间结果合并模块组。
其中,序列分组模块,具体用于接收从外部输入,或者从片上缓存输入的序列数据(即目标数据序列)。并且根据事先获得的数据分组标志序列。并依次将分组后的序列分配给子序列处理分组模块0、子序列处理分组模块1、子序列处理分组模块N进行分组。如果分配到子序列处理分组模块N,输入序列还未完全被分组,等待前面子序列完成,继续从子序列处理分组模块0开始进行划分。
子序列处理分组模块组,该模块包含了多个子序列处理分组模块,每个模块根据事先设定的间隔,具体用于对输入的子序列进行划分,进一步分成多个子序列。
序列缓存模块,经过子序列处理分组模块划分的子序列,在进行聚合操作之前,其数据先在序列缓存模块中进行存储。通过片上序列缓存模块,可以提高数据存取效率,有助于系统整体性能提升,当片上序列缓存模块空间占满,可以把部分数据存储在片上存储器件上,如更大的DDR、SSD等存储器件。
聚合模块组,该模块包含多个聚合模块,该模块从片上序列缓存模块中对各子序列分别进行聚合操作,多个聚合模块并行工作可以获得非常高的性能。
进一步,上述聚合模块结构可以参阅图4所示,通常由几个基本的逻辑操作单元组成,包括加法单元、除法单元、比较单元等,多个基本的逻辑操作相互组合可以实现求和、求平均值、求最大值/最小值等操作。具体实施时,可以通过配置端口获取并根据模式配置参数的通过选择、利用上述基本的逻辑操作单元,实现聚合操作的不同的工作模式。
中间结果缓存模块,经过聚合模块处理之后的中间结果,在进行聚合操作之前,其数据先在中间结果缓存模块中进行存储。同时,后续中间结果合并模块处理后的中间结果也可以继续暂存在中间结果缓存模块中。通过片上中间结果缓存模块,可以提高数据存取效率,有助于系统整体性能提升,当片上序列缓存模块空间占满,可以把部分数据存储在片上存储器件上,如更大的DDR、SSD等存储器件。
中间结果合并模块组,该模块包含了多个中间结果合并模块,每个模块都可以对两个中间结果进行合并,输出合并后的结果。多个中间结果合并模块并行工作,可以较为高效地完成多中间结果的合并。
在本场景示例中,具体实施时,可以通过上述服务器基于上述方法对数据库中图6所示序列进行具体的聚合操作。
图6所示的具体包括一个包含有16个数据元素的序列Table0,以及其对应的分组指示序列Indicator0。其中,指示序列中的Group列中的多个连续1,代表着该数据元素属于同一分组,0代表着不同分组之间的分割。Order列代表着原始数据序列Table 0中的对应的数据元素序号(即编号)。
通过上述服务器执行上述方法,利用序列分组模块对原始输入数据序列,根据分组标识序列进行分组,得到四个子序列:Table0_0、Table0_1、Table0_2以及Table0_3。
再将上述划分完的四组子序列,分别分配到四个不同子序列处理分组模块中进行进一步划分,划分成为8个子序列:Table0_0_0,Table0_0_1,Table0_1_0,Table0_1_1,Table0_2_0,Table0_2_1,Table0_3_0,Table0_3_1。再将划分完的上述各子序列暂存到序列缓存模块中。
接着,可以将上述各子序列分别分配到不同的聚合模块中,并根据配置参数将各聚合模块配置成求和模式。对8个子序列并行进行聚合操作,得出中间结果暂存到片上中间结果缓存模块中。
最后,可以将前两个中间结果4和8被分配到一个中间结果合并模块中,进行求和合并操作,得到最终结果12。将中间结果10和13被分配到一个中间结果合并模块中,进行求和合并操作,得到最终结果23。依次类推,完成剩余其他四个中间结果的合并,得到最终结果36和49。最后将上述四个结果组合成一个表Result0作为针对原数据序列聚合操作的最终结果。从而完成对该数据序列的聚合操作。
通过上述场景示例,验证了本申请实施例提供的数据的聚合处理方法,通过先将较复杂的目标数据序列拆分成多个子序列,进而可以以并行处理的方式同时对多个子序列进行聚合处理得到对应的中间处理结果,再合并中间处理结果,得到针对目标数据序列的聚合处理结果,完成了针对目标数据序列的聚合处理,确实能够有效解决现有方法中存在的聚合处理效率低、处理过程耗时长的技术问题。达到提高聚合处理效率,减少了用户查询、访问数据库时的等待时间,提高了用户的使用体验的技术效果。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (21)
1.一种数据的聚合处理装置,其特征在于,包括序列分组模块、聚合模块组,和合并模块,其中,序列分组模块与聚合模块组相连,合并模块与聚合模块组相连;
序列分组模块,用于将所接入的数据库中的目标数据序列,划分为多个子序列组,得到多个子序列;其中,所述目标数据序列包括多个数据元素;
聚合模块组包括多个并联的聚合模块,所述聚合模块组用于获取多个子序列,并通过多个并联的聚合模块对所述多个子序列并行进行聚合处理,得到对应的多个子序列的中间处理结果;
合并模块,用于合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
2.根据权利要求1所述的装置,其特征在于,在所述聚合模块组和所述序列分组模块之间还连接有子序列缓存模块,所述子序列缓存模块用于缓存所述多个子序列。
3.根据权利要求2所述的装置,其特征在于,所述子序列缓存模块包括片上存储器,所述子序列缓存模块将所述多个子序列缓存在片上存储器中。
4.根据权利要求3所述的装置,其特征在于,所述子序列缓存模块还包括DDR存储器和/或SSD存储器,所述子序列缓存模块在所述片上存储器的存储空间不满足存储要求的情况下,将所述多个子序列缓存在所述DDR存储器和/或SSD存储器中。
5.根据权利要求1所述的装置,其特征在于,在所述合并模块和所述聚合模块组之间还连接有中间处理结果缓存模块,所述中间处理结果缓存模块用于缓存多个中间处理结果。
6.根据权利要求5所述的装置,其特征在于,所述中间处理结果缓存模块包括片上存储器,所述中间处理结果缓存模块用于将所述多个中间处理结果缓存在片上存储器中。
7.根据权利要求1所述的装置,其特征在于,在所述聚合模块组和所述序列分组模块之间还连接有子序列分组模块组,其中,所述子序列分组模块组包括多个子序列分组模块,所述多个子序列分组模块用于对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列。
8.根据权利要求1所述的装置,其特征在于,所述聚合模块包括多个逻辑操作单元,所述多个逻辑操作单元包括以下至少之一:加法单元、除法单元、比较单元。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括配置端口,所述配置端口与所述聚合模块组中聚合模块相连,所述配置端口用于接收用户设置的聚合处理的模式配置参数。
10.根据权利要求9所述的装置,其特征在于,所述模块用于根据所述模式配置参数组合多个逻辑操作单元,以对子序列进行对应的模式类型的聚合处理。
11.根据权利要求10所述的装置,其特征在于,聚合处理的模式类型包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理。
12.一种数据的聚合处理方法,其特征在于,包括:
获取数据库中的目标数据序列,其中,所述目标数据序列包括多个数据元素;
将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列;
对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果;
合并所述中间处理结果,得到针对目标数据序列的聚合处理结果。
13.根据权利要求12所述的方法,其特征在于,将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列,包括:
确定多个数据元素中各个数据元素的属性标志;
将所述属性标志作为分组标志,并根据数据元素的分组标志,确定出多个数据元素中的各个数据元素所分别对应的子序列组;
根据各个子序列组所包含的数据元素,建立对应的子序列。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
通过配置端口接收用户设置的聚合处理的模式配置参数;
根据所述聚合处理的模式配置参数,确定聚合处理的模式类型。
15.根据权利要求14所述的方法,其特征在于,所述聚合处理的模式类型包括以下至少之一:求和处理、求平均值处理、求最小值处理和求最大值处理。
16.根据权利要求12所述的方法,其特征在于,在将所述目标数据序列中的多个数据元素划分为多个子序列组,得到多个子序列后,所述方法还包括:
确定所述多个子序列中的各个子序列所包含的数据元素的数量;
根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定是否需要对所述多个子序列中的子序列进行分组处理。
17.根据权利要求16所述的方法,其特征在于,在根据所述多个子序列中的各个子序列所包含的数据元素的数量,确定需要对所述多个子序列中的子序列进行分组处理的情况下,所述方法还包括:
通过对所述多个子序列中的各个子序列所包含的数据元素进行分组处理,将所述多个子序列中的子序列分别拆分成多个单位子序列;
相应的,对所述多个子序列并行进行聚合处理,得到多个针对子序列的中间处理结果,包括:
对所述多个单位子序列分别进行并行的聚合处理,得到单位子序列的聚合处理结果;
聚合对应同一个子序列的单位子序列的聚合处理结果,得到子序列的中间处理结果。
18.根据权利要求12所述的方法,其特征在于,所述方法还包括:
将所述多个子序列存储在片上存储器上。
19.根据权利要求18所述的方法,其特征在于,在片上存储器存储空间不满足存储要求的情况下,将所述多个子序列存储在DDR存储器,或SSD存储器上。
20.根据权利要求12所述的方法,其特征在于,获取数据库中的目标数据序列,包括:
接收用户针对数据库的数据查询请求;
根据所述数据查询请求,从数据库获取与所述数据查询请求关联的目标数据序列。
21.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求12至20中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010573227.0A CN111949681A (zh) | 2020-06-22 | 2020-06-22 | 数据的聚合处理装置、方法和存储介质 |
PCT/CN2020/107192 WO2021258512A1 (zh) | 2020-06-22 | 2020-08-05 | 数据的聚合处理装置、方法和存储介质 |
US18/145,661 US12118004B2 (en) | 2020-06-22 | 2022-12-22 | Data aggregation processing apparatus and method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010573227.0A CN111949681A (zh) | 2020-06-22 | 2020-06-22 | 数据的聚合处理装置、方法和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949681A true CN111949681A (zh) | 2020-11-17 |
Family
ID=73337162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010573227.0A Pending CN111949681A (zh) | 2020-06-22 | 2020-06-22 | 数据的聚合处理装置、方法和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US12118004B2 (zh) |
CN (1) | CN111949681A (zh) |
WO (1) | WO2021258512A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023280207A1 (zh) * | 2021-07-07 | 2023-01-12 | 清华大学 | 数据处理方法、执行工作站、分布式计算系统和存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782663B (zh) * | 2020-05-21 | 2023-09-01 | 浙江邦盛科技股份有限公司 | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 |
CN111949681A (zh) * | 2020-06-22 | 2020-11-17 | 中科驭数(北京)科技有限公司 | 数据的聚合处理装置、方法和存储介质 |
CN116665836B (zh) * | 2023-07-26 | 2023-10-27 | 国仪量子(合肥)技术有限公司 | 序列数据的编辑存储方法、读取播放方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809075A (zh) * | 2015-04-20 | 2015-07-29 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
CN109145051A (zh) * | 2018-07-03 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 分布式数据库的数据汇总方法及装置和电子设备 |
CN110442574A (zh) * | 2019-07-01 | 2019-11-12 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4055396B2 (ja) * | 2001-11-02 | 2008-03-05 | 富士通株式会社 | 表データ移行プログラム |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US9213732B2 (en) * | 2012-12-28 | 2015-12-15 | Sap Ag | Hash table and radix sort based aggregation |
US10055480B2 (en) * | 2015-05-29 | 2018-08-21 | Sap Se | Aggregating database entries by hashing |
WO2015191032A1 (en) * | 2014-06-09 | 2015-12-17 | Hewlett-Packard Development Company, L.P. | Aggregate projection |
CN106598494B (zh) * | 2016-12-05 | 2022-07-29 | 东软集团股份有限公司 | 数据统计方法和装置 |
US11106598B2 (en) * | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
CN110362763A (zh) * | 2019-07-16 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 数据排序方法、数据排序装置、介质及电子设备 |
US11860782B2 (en) * | 2019-08-13 | 2024-01-02 | Neuroblade Ltd. | Compensating for DRAM activation penalties |
CN111949681A (zh) * | 2020-06-22 | 2020-11-17 | 中科驭数(北京)科技有限公司 | 数据的聚合处理装置、方法和存储介质 |
US11886413B1 (en) * | 2020-07-22 | 2024-01-30 | Rapid7, Inc. | Time-sliced approximate data structure for storing group statistics |
US20220342911A1 (en) * | 2021-04-27 | 2022-10-27 | Pricewaterhousecoopers Llp | Automated data set processing and visualization for multi-module pricing insights graphical user interface |
US20230394041A1 (en) * | 2022-06-06 | 2023-12-07 | Microsoft Technology Licensing, Llc | Systems and methods for accelerating and optimizing groupwise comparison in relational databases |
-
2020
- 2020-06-22 CN CN202010573227.0A patent/CN111949681A/zh active Pending
- 2020-08-05 WO PCT/CN2020/107192 patent/WO2021258512A1/zh active Application Filing
-
2022
- 2022-12-22 US US18/145,661 patent/US12118004B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809075A (zh) * | 2015-04-20 | 2015-07-29 | 电子科技大学 | 一种存取实时并行处理的固态记录装置及方法 |
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
CN109145051A (zh) * | 2018-07-03 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 分布式数据库的数据汇总方法及装置和电子设备 |
CN110442574A (zh) * | 2019-07-01 | 2019-11-12 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023280207A1 (zh) * | 2021-07-07 | 2023-01-12 | 清华大学 | 数据处理方法、执行工作站、分布式计算系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021258512A1 (zh) | 2021-12-30 |
US12118004B2 (en) | 2024-10-15 |
US20230128085A1 (en) | 2023-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913955A (zh) | 数据的排序处理装置、方法和存储介质 | |
CN111949681A (zh) | 数据的聚合处理装置、方法和存储介质 | |
US20160267099A1 (en) | Similarity Analysis Method, Apparatus, and System | |
US9454407B2 (en) | Service resource allocation | |
US20110119251A1 (en) | System and Method for SQL Query Load Balancing | |
CN109981702B (zh) | 一种文件存储方法及系统 | |
CN115408100A (zh) | 容器集群调度的方法、装置、设备及存储介质 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN110084476B (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
US8543722B2 (en) | Message passing with queues and channels | |
EP4302200A1 (en) | Measuring and improving index quality in a distributed data system | |
CN113419856B (zh) | 智能限流方法、装置、电子设备及存储介质 | |
CN111930505B (zh) | 大数据平台的数据资源管理方法及系统、服务器及介质 | |
CN112199039B (zh) | 虚拟存储管理方法及处理器 | |
CN114253456A (zh) | 一种缓存负载均衡方法和装置 | |
CN116661873A (zh) | 数据并行处理方法、装置、计算机设备及存储介质 | |
CN114860460B (zh) | 一种数据库加速的方法、装置、计算机设备 | |
WO2022227561A1 (zh) | 用于数据读取的装置、方法、芯片、计算机设备及存储介质 | |
US10067678B1 (en) | Probabilistic eviction of partial aggregation results from constrained results storage | |
CN115617859A (zh) | 基于知识图谱集群的数据查询方法和装置 | |
US11233847B1 (en) | Management of allocated computing resources in networked environment | |
US10887381B1 (en) | Management of allocated computing resources in networked environment | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
CN105468603A (zh) | 数据选择方法及装置 | |
CN117112206B (zh) | 交易资源隔离方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100089 room 801, 8 / F, building 3, yard 1, 81 Beiqing Road, Haidian District, Beijing Applicant after: YUSUR TECHNOLOGY Co.,Ltd. Address before: 100190 scientific research complex building, Institute of computing technology, Chinese Academy of Sciences, no.6, Academy of Sciences South Road, Haidian District, Beijing Applicant before: YUSUR TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201117 |
|
RJ01 | Rejection of invention patent application after publication |