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

数据处理方法、装置及可读存储介质

文献发布时间:2023-06-19 11:02:01


数据处理方法、装置及可读存储介质

技术领域

本公开涉及数据处理技术领域,尤其涉及一种数据处理方法、装置及可读存储介质。

背景技术

在信息时代的背景下,数据是领域发展的核心,其中,数据关联是查询有效数据的重要手段之一。现有技术中,通常是采用动态查询的方式进行数据关联。具体地,根据查询条件,在多个数据集中逐条匹配,之后将匹配成功的数据元素关联起来。

随着数据集以及数据集包括的数据元素的不断增大,采用上述方式,查询效率较低。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据处理方法、装置及可读存储介质。

第一方面,本公开实施例提供了一种数据处理方法,包括:

获取查询请求,所述查询请求包括至少一个查询条件;

针对至少一个目标数据子集组中的每个目标数据子集组,根据所述至少一个查询条件以及预先获取的第n个数据子集与第n+1个数据子集之间的对应关系,获取所述目标数据子集组对应的查询结果;其中,n的取值为1至N-1,N为大于或等于2的整数;所述目标数据子集组对应的查询结果包括用于指示所述目标数据子集组中满足所述至少一个查询条件的数据元素的信息;

根据每个所述目标数据子集组对应的查询结果,获取所述至少一个目标数据子集组中满足所述查询条件的数据元素。

在一些可能的设计中,所述针对至少一个目标数据子集组中的每个目标数据子集组,根据所述至少一个查询条件以及预先获取的第n个数据子集与第n+1个数据子集之间的对应关系,获取所述目标数据子集组对应的查询结果,包括:

针对所述目标数据子集组,根据所述至少一个查询条件中第1个数据子集对应的查询条件,对所述第1个数据子集中的所有数据元素进行筛选,获取所述第1个数据子集对应的第一查询结果;

根据所述第n个数据子集对应的第一查询结果、以及所述第n个数据子集与第n+1个数据子集之间的对应关系,确定第n+1个数据子集对应的候选数据元素;

根据所述至少一个查询条件中第n+1个数据子集对应的查询条件,对所述第n+1个数据子集对应的候选数据元素进行筛选,获取所述第n+1个数据子集对应的第一查询结果;并更新n=n+1,直至所述n+1等于所述N,获得所述目标数据子集组中每个数据子集对应的第一查询结果;其中,n的取值为1至N-1;

根据所述目标数据子集组中的每个数据子集对应的第一查询结果,获取所述目标数据子集对应的查询结果。

在一些可能的设计中,所述第n个数据子集和所述第n+1个数据子集之间的对应关系为所述第n个数据子集中的数据元素对应的第一标识和所述第n+1个数据子集中与其相匹配的的数据元素对应的第一标识之间的对应关系;

根据所述第n个数据子集对应的查询结果、以及所述第n个数据子集与第n+1个数据子集之间的对应关系,确定第n+1个数据子集对应的候选数据元素,包括:

根据所述第n个数据子集对应的查询结果中指示的数据元素的第一标识,在所述第n个数据子集和所述第n+1个数据子集之间的对应关系中进行匹配,确定所述第n+1个数据子集对应的候选数据元素的第一标识。

在一些可能的设计中,所述根据所述目标数据子集组中的每个数据子集对应的第一查询结果,获取所述目标数据子集对应的查询结果,包括:

针对所述目标数据子集组,将第n+1个数据子集对应的第一查询结果,与第n个数据子集对应的第一查询结果进行匹配,获取第n个数据子集对应的第二查询结果;

更新n=n-1,直至所述n-1等于1,获得所述目标数据子集组中每个数据子集对应的第二查询结果;其中,n的取值为由N-1至1;

根据所述目标数据子集组中每个数据子集对应的第二查询结果,获取所述目标数据子集组对应的查询结果;当n=N-1时,第n+1个数据子集对应的第二查询结果为所述第n+1个数据子集对应的第一查询结果。

在一些可能的设计中,所述将第n+1个数据子集对应的第一查询结果,与第n个数据子集对应的第一查询结果进行匹配,获取第n个数据子集对应的第二查询结果,包括:

将所述第n+1个数据子集对应的第一查询结果包括的各个数据元素的第二标识,与第n个数据子集对应的第一查询结果包括的各个数据元素的第二标识进行匹配,获取第n个数据子集中与所述第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识;

根据所述第n个数据子集中与所述第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识,以及所述第n个数据子集对应的第一查询结果包括的各个数据元素的第一标识和第二标识之间的对应关系,获取所述第n个数据子集中与所述第n+1个数据子集对应的查询结果指示的数据元素具有对应关系的数据元素的第一标识。

在一些可能的设计中,所述方法还包括:

对多个原始数据集分别进行分段处理,获取每个所述原始数据集分别对应的至少一个数据子集;

根据每个所述原始数据集分别对应的至少一个数据子集进行组合,获取至少一个数据子集组;其中,每个所述数据子集组包括至少两个数据子集,且所述至少两个数据子集分别属于不同的原始数据集。

在一些可能的设计中,所述方法还包括:

根据每个所述目标数据子集对应的查询结果,将所述目标数据子集组对应的查询结果指示的数据元素进行关联。

第二方面,本公开实施例提供一种数据处理装置,包括:

获取模块,用于获取查询请求,所述查询请求包括至少一个查询条件;

处理模块,用于针对至少一个目标数据子集组中的每个目标数据子集组,根据所述至少一个查询条件以及预先获取的第n个数据子集与第n+1个数据子集之间的对应关系,获取所述目标数据子集组对应的查询结果;其中,n的取值为1至N-1,N为大于或等于2的整数;所述目标数据子集组对应的查询结果包括用于指示所述目标数据子集组中满足所述查询条件的数据元素的信息;以及,根据每个所述目标数据子集组对应的查询结果,获取所述至少一个目标数据子集组中满足所述查询条件的数据元素。

第三方面,本公开实施例提供一种数据处理装置,包括:存储器、处理器以及计算机程序指令;

所述存储器,被配置为存储所述计算机程序指令;

所述处理器,执行所述计算机程序指令时,以执行如第一方面任一项所述的数据处理方法。

第四方面,本公开实施例提供一种可读存储介质,包括:计算机程序指令;

所述计算机程序指令被数据处理装置的处理器执行时,以执行第一方面任一项所述的数据处理方法。

第五方面,本公开实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,所述数据处理装置的至少一个处理器可以从所述可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得所述数据处理装置执行如第一方面任一项所述的数据处理方法。

本公开实施例提供一种数据处理方法、装置及可读存储介质,其中,该方法通过预先对相邻的数据子集进行匹配,并存储获得的对应关系。在获取到查询任务时,可根据查询条件,在上述预先保存的对应关系中直接进行查询,无需如现有技术中按照查询条件在原始数据集中进行逐条匹配。另外,本公开实施例提供的方案,多个目标数据子集组分别对应的查询任务可以并行执行,能够进一步提高处理效率。且本实施例提供的方案,在进行正向查询以及反向回溯的过程,是根据数据元素的标识进行查询匹配,从而可以忽略数据元素的数据类型、数据结构等,更加灵活,也更加有利于后期维护和存储。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开一实施例提供的数据处理方法的流程示意图;

图2为本公开另一实施例提供的数据处理方法的流程示意图;

图3为本公开另一实施例提供的原始数据集分段处理后的结构示意图;

图4为本公开另一实施例提供的数据处理方法的流程示意图;

图5为本公开另一实施例提供的数据处理方法的流程示意图;

图6为本公开一实施例提供的数据处理装置的结构示意图;

图7为本公开另一实施例提供的数据处理装置的结构示意图;

图8为本公开另一实施例提供的电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

数据集是指数据元素的集合,数据集中的数据元素包括一个或多个数据项。为了查询有效数据元素,常常需要将两个或者多个数据集中的数据元素按照特定字段或者特定变量关联起来。现有技术在进行数据关联时,根据查询条件,在多个数据集中逐条匹配,之后将匹配成功的数据元素关联起来。随着数据集的规模不断增大,查询速度会降低,效率也会较低。

为了解决上述现有技术中存在的问题,本方案通过预先将要执行匹配的操作每个数据集划分为有穷个数据子集,并预先按照特定字段或特定变量将相邻的数据子集进行匹配,生成相邻子集间的对应关系。当接收到查询任务时,根据接收到查询条件以及相邻数据子集间的对应关系,获取满足查询条件的数据元素。

本方案将数据集划分为有穷个数据子集至少具有以下有益效果:

一、可以使处理任务在数据处理单元资源或者数据传输带宽有限的情况保持高效的执行,且不受原始数据集大小的影响,可以灵活适用于不同的场景。

二、可以根据数据处理单元的数量以及数据处理资源,灵活调整数据子集的大小,从而达到性能最优的目的。

三、可以根据数据子集间执行的队列关系,将数据处理任务并行化,进一步提高数据处理速度。

下面通过几个具体的实施例,对本方案提供的数据处理方法进行详细介绍:

图1为本公开一实施例提供的数据处理方法的流程示意图。本实施例提供的数据处理方法的执行主体为本公开实施例提供的数据处理转股估值,该数据处理装置可以通过任意的软件和/或硬件的方式实现。如图1所示,本实施例的方法包括:

S101、获取查询请求,所述查询请求包括至少一个查询条件。

具体地,查询请求用于请求获取至少一个目标数据子集组中满足所述至少一个查询条件的数据元素。其中,查询请求可以是用户通过终端设备的用户操作界面输入的,或者,也可以是用于通过语音输入的,或者还可以是通过其他方式输入的,本公开实施例对于获取查询请求的具体实现方式不作限制。

其中,查询请求携带至少一个查询条件,至少一个查询条件可以包括一个或多个查询条件。若至少一个查询条件包括一个查询条件,则每个目标数据子集组中的所有数据子集可以对应相同的查询条件;若至少一个查询条件包括多个查询条件,则每个目标数据子集组中的数据子集可以分别对应不同的查询条件,或者,目标数据子集中的部分数据子集对应相同的查询条件,目标数据子集中的其他数据子集分别对应不同的查询条件。

本方案中,查询条件可以是根据数据元素包括的一个或多个数据项确定的。

需要说明的是,无论查询请求中包括一个还是多个查询条件,针对目标数据子集组来说,每个目标数据子集组均对应相同的查询条件。

S102、针对至少一个目标数据子集组中的每个目标数据子集组,根据所述至少一个查询条件以及预先获取的第n个数据子集与第n+1个数据子集之间的对应关系,获取所述目标数据子集组对应的查询结果。

其中,n的取值为1至N-1,N为大于或等于2的整数;所述目标数据子集组对应的查询结果包括用于指示所述目标数据子集组中满足所述查询条件的数据元素的信息。

本方案中,上述至少一个目标数据子集组为需要执行查询请求的数据子集组。其中,每个目标数据子集组包括多个数据子集,且每个目标数据子集组包括的多个数据子集分别属于不同的原始数据集。另外,每个目标数据子集组中包括的数据子集,相邻的数据子集之间的对应关系是预先根据特定字段或者特定变量进行匹配获取的。

需要说明的是,这里的“相邻”并非目标数据子集中各数据子集的位置上的相邻,而是按照数据子集的特征来确定的。以其中一个目标数据子集组为例,目标数据子集组包括N个数据子集,数据处理装置为目标数据子集组中的每个数据子集分配一个数字编号,则根据数据子集对应的数字编号,确定第1个数据子集至第N个数据子集的顺序,按照该顺序,前后两个数据子集即为相邻的两个数据子集。

获取每个目标数据子集组对应的查询结果可通过下述方式实现:

一种可能的实现方式,可针对每个目标数据子集组执行以下步骤:

步骤一、根据至少一个查询条件中的第1个数据子集对应的查询条件,对第1个数据子集中的所有数据元素进行筛选,获取第1个数据子集对应的第一查询结果。

其中,第1个数据子集对应的第一查询结果可以包括满足第1查询条件的数据元素的第一标识。其中,第一标识能够唯一标识该数据元素所属的数据子集以及该数据元素本身。示例性地,若数据子集的行表示数据元素,则第一标识可以为数据元素在所属数据子集中的行号;若数据子集的列表示数据元素,则第一标识可以为数据元素在所属数据子集中的列号。

在一些可能的设计中,第1个数据子集对应的第一查询结果还可以包括满足第1个数据子集对应的查询条件的数据元素的第二标识。针对第1个数据子集,第1个数据子集对应的第一查询结果包括的第二标识可以是根据第一标识生成的。例如,第二标识也可以为数据元素在所属数据子集中的行号或者列号。

由于本方案中将数据元素抽象为第一标识和第二标识,在后续的查询以及反向回溯的过程中,可以无视原始数据集中数据元素的数据类型、数据结构以及数据大小,因此,可以更好地适用于不同的场景中。另外,将数据元素抽象为第一标识和第二标识,可以将查询结果的格式归一化,更有利于后期维护和存储。

针对第2个数据子集至第N个数据子集,循环执行步骤二至步骤四,以获取第2个数据子集至第N个数据子集分别对应的第一查询结果。

步骤二:令n=1。

步骤三:根据第n个数据子集对应的第一查询结果、以及第n个数据子集与第n+1个数据子集之间的对应关系,确定第n+1个数据子集对应的候选数据元素。

其中,第n个数据子集与第n+1个数据子集之间的对应关系为具有配对关系的第n个数据子集中的数据元素的第一标识与第n+1个数据子集中的数据元素的第一标识之间的对应关系。

具体地,首先根据第n个数据子集对应的第一查询结果中包含的数据元素的第一标识,在第n个数据子集与第n+1个数据子集之间的对应关系中进行查询,并将匹配成功的第n+1个数据子集中的数据元素,这些匹配成功的第n+1个数据子集中的数据元素即为第n+1个数据子集中的候选数据元素。

步骤四:根据至少一个查询条件中的第n+1个数据子集对应的查询条件,对第n+1个数据子集中的候选数据元素进行筛选,获取第n+1个数据子集对应的第一查询结果。

在一些情况下,针对第n+1个数据子集有特定的查询条件,那么,根据该第n+1个数据子集对应的查询条件对第n+1个数据子集中的候选数据元素进行筛选,并基于筛选后的数据元素分别对应的第一标识,获取第n+1个数据子集对应的第一查询结果。

在另一些情况下,针对第n+1个数据子集可能没有特定的查询条件,即该第n+1个数据子集对应的查询条件为空,那么,可将第n+1个数据子集中的所有候选数据元素确定为满足第n+1个数据子集对应的查询条件的数据元素;并基于第n+1个数据子集中的所有候选数据元素分别对应的第一标识,获取第n+1个数据子集对应的第一查询结果。

步骤五:更新n=n+1,并判断n是否等于N;若n不等于N,则返回执行步骤三;若n等于N,则结束。

通过循环执行上述步骤三至步骤五,从而获取第2个数据子集至第N个数据子集分别对应的第一查询结果。

步骤六:根据目标数据子集组中的每个数据子集对应的第一查询结果,获取目标数据子集对应的查询结果。

通过上述步骤一至步骤五的实现方式,正向逐级获取每个数据子集分别对应的第一查询结果时,针对第n个数据子集来说,其对应的第一查询结果中指示的数据元素实质上是满足了前n个数据子集分别对应的查询条件的数据元素,而不是满足所有查询条件的数据元素,因此,需要根据最后一个数据子集,即第N个数据子集,对应的第一查询结果向前反向回溯,确定其他N-1个数据子集中,与第N个数据子集对应的第一查询结果指示的数据元素具有配对关系的数据元素,即获取同时满足至少一个查询条件中的所有查询条件的数据元素。

具体地,针对每个目标数据子集组,将第n+1个数据子集对应的第一查询结果,与第n个数据子集对应的第一查询结果进行匹配,获取第n个数据子集对应的第二查询结果;并更新n=n-1,直至n-1等于1,获得该目标数据子集组中每个数据子集对应的第二查询结果;其中,n的取值为由N-1至1。

接着,根据目标数据子集组中每个数据子集对应的第二查询结果,在其所属的数据子集中进行查询,获取满足查询条件的数据元素,即获取目标数据子集组对应的查询结果;当n=N-1时,第n+1个数据子集对应的第二查询结果为第n+1个数据子集对应的第一查询结果。

其中,将第n+1个数据子集对应的第一查询结果,与第n个数据子集对应的第一查询结果进行匹配,获取第n个数据子集对应的第二查询结果,可以通过下述方式实现:

首选,将第n+1个数据子集对应的第一查询结果包括的各个数据元素的第二标识,与第n个数据子集对应的第一查询结果包括的各个数据元素的第二标识进行匹配,获取第n个数据子集中与第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识;

根据第n个数据子集中与第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识,以及第n个数据子集对应的第一查询结果包括的各个数据元素的第一标识和第二标识之间的对应关系,获取第n个数据子集中与第n+1个数据子集对应的查询结果指示的数据元素具有对应关系的数据元素的第一标识。

通过上述方式,按照由第N个数据子集至第1个数据子集的顺序,逐级向前进行反向回溯,从而获取第1至第N个数据子集中,每个数据子集包括的与第N个数据子集对应的第二查询结果指示的数据元素具有配对关系的数据元素。

S103、根据每个所述目标数据子集组对应的查询结果,获取所述至少一个目标数据子集组中满足所述查询条件的数据元素。

应理解,本方案中,每个目标数据子集组的查询任务可以是相互独立的,也就是说,当目标数据子集组为多个时,多个数据子集组分别对应的查询任务可以由多个数据处理进行并列执行。

本方案中每个目标数据子集组对应的查询结果相互独立,因此,本步骤仅需根据每个目标数据子集组分别对应的查询结果在原始数据集中进行查找,从而获取至少一个目标数据子集组中满足至少一个查询条件的数据元素。

本实施例提供的数据处理方法,通过预先对相邻的数据子集进行匹配,并存储获得的对应关系。在获取到查询任务时,可根据查询条件,在上述预先保存的对应关系中直接进行查询,无需如现有技术中按照查询条件在原始数据集中进行逐条匹配。另外,本实施例提供的方案,多个目标数据子集组分别对应的查询任务可以并行执行,能够进一步提高处理效率。且本实施例提供的方案,在进行正向查询以及反向回溯的过程,是根据数据元素的标识进行查询匹配,从而可以忽略数据元素的数据类型、数据结构等,更加灵活,也更加有利于后期维护和存储。

图2为公开另一实施例提供的数据处理方法的流程示意图。本实施例提供的方案,在图1所示实施例的基础上,S101之前,还可以包括以下步骤:

S1001、对多个原始数据集分别进行分段处理,获取每个原始数据集分别对应的至少一个数据子集。

一种可能的实现方式,可按照预先确定的数据元素的数量对多个原始数据集进行分段处理,分段后的每个数据子集包括相同数量的数据元素。

另一种可能的实现方式,可按照预先确定的数据元素的数量,对多个原始数据集进行分段处理,分段后的每个数据子集包括特定数量的数据元素。

另一种可能的实现方式,可按照原始数据集中某个特定变量的特征,对原始数据集进行分段处理。

需要说明的是,本公开实施例对于分段处理的具体实现方式不作限制,其只要能够将原始数据集划分为至少一个数据子集即属于本方案的保护范畴。

S1002、根据每个原始数据集分别对应的至少一个数据子集进行组合,获取至少一个数据子集组。

其中,每个所述数据子集组包括至少两个数据子集,且所述至少两个数据子集分别属于不同的原始数据集;所述至少一个数据子集组包括所述至少一个目标数据子集组。

本实施例提供的数据处理方法,通过对原始数据集进行分段处理,并将不同原始数据集中的数据子集进行组合,得到多个数据子集组;为并行执行查询任务以及灵活调整数据子集规模提供了基础。

可选地,还可以包括:

S1003、针对每个数据子集组,获取并存储相邻的两个数据子集之间的对应关系。

需要说明的是,关于“相邻”的概念可参照图1所示实施例中地描述,此处不再赘述。在一些情况下,还可以获取数据集组中,任意两个数据子集之间的对应关系。

具体地,可按照特定字段(或者关键字段)对相邻的两个数据子集进行匹配,并根据数据子集包括的每个数据元素的第一标识,生成上述对应关系。

下面以一个具体实施例,原始数据集包括A、B、C为例详细说明本公开提供的数据处理方法。具体地,可以包括以下步骤:

步骤一:按照预先确定的数据元素的数量,对原始数据集A、B、C分别进行分段处理,参照图3所示,原始数据集A划分为2个数据子集,原始数据集B划分为3个数据子集,原始数据集C划分为4个数据子集,即A={A1、A2},B={B1、B2,B3},C={C1、C2,C3,C4}。

上述每个数据子集包含的数据元素分别对应一个第一索引值(该第一索引值即为第一标识)。应理解,每个数据子集中的每个数据元素都对应一个第一索引值,该第一索引值能够唯一标识该数据子集中的数据元素。

步骤二:将相邻原始数据集中的数据子集按照特定字段进行匹配,获取每个组合之间的对应关系。

具体地,对A1-B1、A1-B2、A1-B3、A2-B1、A2-B2、A2-B3、B1-C1、B1-C2、B1-C3、B1-C4、B2-C1、B2-C2、B2-C3、B2-C4、B3-C1、B3-C2、B3-C3、B3-C4这些相邻的数据子集,按照特定字段进行匹配,获取并存储每相邻的两个数据子集之间的对应关系。

需要说明的是,相邻的两个数据子集之间的对应关系实质是具有配对关系的数据元素的第一索引值之间的对应关系。

步骤三、获取用户输入的查询请求,其中,查询请求包括3个查询条件,分别为查询条件1、查询条件2和查询条件3。

其中,查询条件1为原始数据集A对应的查询条件,查询条件2为原始数据集B对应的查询条件,查询条件3为原始数据集C对应的查询条件。

应理解,原始数据集A对应的查询条件即为数据子集A1、A2对应的查询条件。原始数据集B对应的查询条件即为数据子集B1、B2、B3对应的查询条件。原始数据集C对应的查询条件即为数据子集C1、C2、C3、C4对应的查询条件。

步骤四、每个目标数据子集组,根据查询条件1、查询条件2和查询条件3、以及该目标数据子集组中每相邻的两个数据子集之间的对应关系,获取该目标数据子集组的查询结果。

具体地,目标数据子集组的数量为24个,分别为:A1-B1-C1、A1-B1-C2、A1-B1-C3、A1-B1-C4、A1-B2-C1、……、A2-B3-C4。

这里以目标数据子集组A1-B1-C1为例,并结合图4以及图5详细说明正向查询以及反向回溯的具体实现方式:

首先,根据数据子集A1对应的查询条件1,从数据子集A1中获取满足查询条件1的数据元素,这里使用数据元素的第一索引值表示,同时生成数据元素的第二索引值。参照图4所示,从数据子集A1中获取的满足查询条件1的数据元素的第一索引值分别为“1、3、4、7、9、10、12、15”,并同时生成相应的第二索引值“1、3、4、7、9、10、12、15”,图4的示例中,本步骤的第一索引值和第二索引值相同。

接着,根据A1与B1之间的对应关系,将从数据子集A1中获取满足查询条件1的数据元素在数据子集B1中筛选出来,生成A1与B1之间的配对结果。在此基础上,根据数据子集B1对应的查询条件2,对从数据子集B1中筛选出来的数据元素进行进一步筛选,并针对筛选出来的数据元素生成相应的第二索引值。参照图4所示,由于A1与B1之间的对应关系中,并非所有数据子集A1中满足查询条件1的数据元素在数据子集B1中都能够具有配对关系,因此,根据A1和B1之间的对应关系进行查询之后,获得的配对结果中,数据子集A1中满足查询条件1的数据元素由8个减少为6个,且该6个数据元素的第一索引值为“1、4、7、9、10、15”、第二索引值为“1、4、7、9、10、15”,以及B1中与该6个数据元素具有配对关系的6个数据元素的第一索引值为“4、6、3、1、13、11”,接着通过B1对应的查询条件2对从B1中筛选出来的6个数据元素进行进一步的筛选,如图4中所示,这6个数据元素均满足查询条件2,且该6个数据元素对应的第二索引值分别为“0、1、2、3、4、5”。需要说明的是,这里从B1中筛选出来的6个数据元素分别对应的第二索引值是根据从A1与B1之间的配对结果中,A1包含的数据元素的第二索引值生成的。

之后,根据B1与C1之间的对应关系,将从数据子集B1中获取满足查询条件2的数据元素在数据子集C1中筛选出来,生成B1与C1之间的配对结果。在此基础上,根据数据子集C1对应的查询条件3,对从数据子集C1中筛选出来的数据元素进行进一步筛选,并针对筛选出来的数据元素生成相应的第二索引值。

该步骤与前述根据A1与B1之间的对应关系,将A1中筛选出来的8个数据元素在B1中筛选出来,以及确定相应的第一索引值以及第二索引值的实现方式类似。

需要说明的是,上述针对从数据子集C1中筛选出来的数据元素的第二索引值,是基于从前一个数据子集B1中筛选出来的数据元素的第二索引值生成的。在反向回溯时,从数据子集C1中筛选出来的数据元素的第二索引值能够指示该数据元素在数据子集B1和C1之间的配对结果中的位置信息。类似地,从数据子集B1中筛选出来的数据元素的第二索引值能够指示该数据元素在数据子集A1和B1之间的配对结果中的位置信息。

应理解,若是目标数据子集组包含更多的数据子集,那么,针对每个数据子集来说,从该数据子集中筛选出来的数据元素的第二索引值均能够指示该数据元素在其所属的数据子集和相邻的前一个数据子集之间的配对结果中的位置信息。

在目标数据子集组A1-B1-C1中,根据从C1中筛选出来的数据元素的第二索引值,在数据子集B1和C1之间的配对结果中进行查找,获取数据子集B1中,与从数据子集C1中筛选出来的数据元素具有配对关系的数据元素。接着,根据数据子集B1中,与从数据子集C1中筛选出来的数据元素具有配对关系的数据元素的第二索引值,在数据子集A1和B1之间的配对结果中进行查找,获取数据子集A1中,与从数据子集C1中筛选出来的数据元素具有配对关系的数据元素。

参照图5所示,根据从C1中筛选处理的数据元素的第二索引值“0、2、4、5”,在A1与B1的配对结果中进行查询,分别获取A1和B1中相应的数据元素的第一索引值,其中,A1中对应的数据元素的第一索引值分别为“1、7、10、15”,B1中对应的数据元素的第一索引值分别为“4、3、13、11”。

之后,根据从每个数据子集中筛选出来的数据元素的第二索引值确定其对应的第一索引值,再根据从每个数据子集中筛选出来的数据元素的第一索引值分别在其所属的数据子集中进行查找,获取相应的数据元素本身。之后,可将这些数据元素关联起来。

参照图5所示,根据A1中筛选出来的数据元素的第一索引值“1、7、10、15”、B1中筛选出来的数据元素的第一索引值“4、3、13、11”,以及C1中筛选出来的数据元素的第一索引值“9、6、15、3”,分别在A1、B1、C1中进行查询,获取相应的原始数据;之后,可将这些原始数据元素关联起来。

针对上述24组目标数据子集组,分别执行上述查询任务,从而获取原始数据集A、B、C中符合查询条件1、查询条件2以及查询条件3的数据元素。

图6为本公开一实施例提供的数据处理装置的结构示意图。该数据处理装置为硬件和/或软件组成的计算机系统。该数据处理装置能够执行上述任一方法实施例的技术方案。

具体地,参照图6所示,该数据处理装置600包括:指令处理单元601、分段筛选单元602、数据缓冲单元603以及数据查询单元604。其中,各单元按照图6所示的方式进行连接,连接方式包括但不限于数据端口。

其中,指令处理单元601,用于接收和处理得到的指令流,并根据指令流配置相应的数据端口。其中,指令流中可以包括查询请求对应的原始数据在数据缓冲单元603中的地址,以及数据缓冲单元603为数据处理结果预留的地址,指令流中还可以包括操作类型信息。

分段筛选单元602,用于根据至少一个查询条件,对数据子集组合或者查询结果进行筛选。分段筛选单元602可以是具有收发、分段、筛选数据的任意计算机系统。

数据缓冲单元603,用于存储执行过程中的配对结果及查询结果。

数据查询单元604,包括:正向查询子单元6041和反向回溯子单元6042。其中,当指令处理单元601接收的操作类型为正向查询,正向查询子单元6041会根据上述指令处理单元601的其他信息从数据缓冲单元603读取相应的数据,并进行正向查询处理,以及输出相应的查询结果;当指令处理单元601接收的操作类型为反向回溯,反向回溯子单元根据上述指令处理单元601的其他信息从数据缓冲单元603读取相应的数据,并进行反向回溯处理,以及输出相应的查询结果。

且本方案中,数据查询单元604的数量可以为一个或多个,当数据查询单元604的数量为多个时,该数据处理装置600还可以包括调度单元605,该调度单元605能够根据查询任务的资源需求,调度多个数据处理单元604并行执行查询任务。

需要说明的是,反向回溯子单元6042输出的结果即为上述方法实施例中所述的目标数据子集组中满足所述查询条件的数据元素。

图7为本公开另一实施例提供的数据处理装置的结构示意图。如图7所示,本实施例提供的数据处理装置700包括:获取模块701和处理模块702。

其中,获取模块701,用于获取查询请求,所述查询请求包括至少一个查询条件。

处理模块702,用于针对至少一个目标数据子集组中的每个目标数据子集组,根据所述至少一个查询条件以及预先获取的第n个数据子集与第n+1个数据子集之间的对应关系,获取所述目标数据子集组对应的查询结果;其中,n的取值为1至N-1,N为大于或等于2的整数;所述目标数据子集组对应的查询结果包括用于指示所述目标数据子集组中满足所述查询条件的数据元素的信息;以及,根据每个所述目标数据子集组对应的查询结果,获取所述至少一个目标数据子集组中满足所述查询条件的数据元素。

在一些可能的设计中,处理模块702,具体用于针对所述目标数据子集组,根据所述至少一个查询条件中第1个数据子集对应的查询条件,对所述第1个数据子集中的所有数据元素进行筛选,获取所述第1个数据子集对应的第一查询结果;

根据所述第n个数据子集对应的第一查询结果、以及所述第n个数据子集与第n+1个数据子集之间的对应关系,确定第n+1个数据子集对应的候选数据元素;

根据所述至少一个查询条件中第n+1个数据子集对应的查询条件,对所述第n+1个数据子集对应的候选数据元素进行筛选,获取所述第n+1个数据子集对应的第一查询结果;并更新n=n+1,直至所述n+1等于所述N,获得所述目标数据子集组中每个数据子集对应的第一查询结果;其中,n的取值为1至N-1;

根据所述目标数据子集组中的每个数据子集对应的第一查询结果,获取所述目标数据子集对应的查询结果。

在一些可能的设计中,所述第n个数据子集和所述第n+1个数据子集之间的对应关系为所述第n个数据子集中的数据元素对应的第一标识和所述第n+1个数据子集中与其相匹配的的数据元素对应的第一标识之间的对应关系。

处理模块702,具体用于根据所述第n个数据子集对应的查询结果中指示的数据元素的第一标识,在所述第n个数据子集和所述第n+1个数据子集之间的对应关系中进行匹配,确定所述第n+1个数据子集对应的候选数据元素的第一标识。

在一些可能的设计中,处理模块702,具体用于针对所述目标数据子集组,将第n+1个数据子集对应的第一查询结果,与第n个数据子集对应的第一查询结果进行匹配,获取第n个数据子集对应的第二查询结果;

更新n=n-1,直至所述n-1等于1,获得所述目标数据子集组中每个数据子集对应的第二查询结果;其中,n的取值为由N-1至1;

根据所述目标数据子集组中每个数据子集对应的第二查询结果,获取所述目标数据子集组对应的查询结果;当n=N-1时,第n+1个数据子集对应的第二查询结果为所述第n+1个数据子集对应的第一查询结果。

在一些可能的设计中,处理模块702,具体用于将所述第n+1个数据子集对应的第一查询结果包括的各个数据元素的第二标识,与第n个数据子集对应的第一查询结果包括的各个数据元素的第二标识进行匹配,获取第n个数据子集中与所述第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识;

根据所述第n个数据子集中与所述第n+1个数据子集对应的第一查询结果指示的各个数据元素具有对应关系的数据元素的第二标识,以及所述第n个数据子集对应的第一查询结果包括的各个数据元素的第一标识和第二标识之间的对应关系,获取所述第n个数据子集中与所述第n+1个数据子集对应的查询结果指示的数据元素具有对应关系的数据元素的第一标识。

在一些可能的设计中,处理模块702,还用于对多个原始数据集分别进行分段处理,获取每个所述原始数据集分别对应的至少一个数据子集;以及根据每个所述原始数据集分别对应的至少一个数据子集进行组合,获取至少一个数据子集组;其中,每个所述数据子集组包括至少两个数据子集,且所述至少两个数据子集分别属于不同的原始数据集。

在一些可能的设计中,处理模块702,还用于根据每个所述目标数据子集对应的查询结果,将所述目标数据子集组对应的查询结果指示的数据元素进行关联。

本实施例提供的数据处理装置可以用于执行上述任一方法实施例的技术方案,其实现原理以及技术效果类似,可参照方法实施例的详细描述,此不再赘述。

图8为本公开一实施例提供的电子设备的结构示意图。如图8所示,本实施例提供的电子设备800包括:存储器801和处理器802。

其中,存储器801可以是独立的物理单元,与处理器802可以通过总线803连接。存储器801、处理器802也可以集成在一起,通过硬件实现等。

存储器801用于存储程序指令,处理器802调用该程序指令,执行以上任一方法实施例的操作。

可选地,当上述实施例的方法中的部分或全部通过软件实现时,上述电子设备800也可以只包括处理器802。用于存储程序的存储器801位于电子设备800之外,处理器802通过电路/电线与存储器连接,用于读取并执行存储器中存储的程序。

处理器802可以是中央处理器(Central Processing Unit,CPU),网络处理器(Network Processor,NP)或者CPU和NP的组合。

处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC),可编程逻辑器件(ProgrammableLogic Device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(ComplexProgrammable Logic Device,CPLD),现场可编程逻辑门阵列(Field-Programmable GateArray,FPGA),通用阵列逻辑(Generic Array Logic,GAL)或其任意组合。

存储器801可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random-Access Memory,RAM);存储器也可以包括非易失性存储器(Non-volatileMemory),例如快闪存储器(Flash Memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-state Drive,SSD);存储器还可以包括上述种类的存储器的组合。

本公开还提供一种计算机可读存储介质,计算机可读存储介质中包括计算机程序指令,所述计算机程序指令在被数据处理装置的处理器执行时,以执行以上任一方法实施例的技术方案。

本公开还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,所述数据处理装置的至少一个处理器可以从所述可读存储介质中读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得所述数据处理装置执行如上任一方法实施例的技术方案。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • PET 数据处理方法、PET 数据处理装置、计算机可读的存储介质、以及数据处理方法
  • 数据处理方法、装置、计算机可读存储介质及电子装置
技术分类

06120112774290