数据提取方法、装置、可计算存储设备及数据请求设备与流程

文档序号:26050463发布日期:2021-07-27 15:25阅读:125来源:国知局
数据提取方法、装置、可计算存储设备及数据请求设备与流程

本发明实施例涉及计算机数据处理技术领域,尤其涉及一种数据提取方法、装置、可计算存储设备及数据请求设备。



背景技术:

在数据分析领域,原始数据的存储一般采用列存的方式进行,采用列存而非行存的方式,一是有利于目标列数据的读取,减少io操作;二是有利于数据的压缩,减少存储空间的占用。

为了进一步提升数据的读取效率,很多数据库还增加了列数据的索引,在将数据按列写入存储设备之前,统计各个列的数据块所对应的统计信息,从而可以实现在数据请求端中尽可能多的过滤掉不必要的数据读取操作,加快数据的读取过程。但是,现有的数据索引均是建立在列存数据块的基础上,而列存数据块往往较大,一般为数十或数百kb。这样就造成了在数据请求端只需要列存数据块中的少量数据的时候,存储设备依然会发送完整的列存数据块给数据请求端。即使减小列存数据块的大小(小于4kb),存储设备也会受限于其物理数据块(即扇区,一般为4kb)的大小而返回至少4kb的数据。

然而,发明人在实现本发明的过程中发现,上述方法中未充分发挥存储设备的可计算功能,存储设备与数据请求端之间传输的数据较大。



技术实现要素:

本发明实施例提供一种数据提取方法、装置、可计算存储设备及数据请求设备,以充分发挥存储设备的可计算功能,减少存储设备与数据请求端之间传输的数据量。

第一方面,本发明实施例提供一种数据提取方法,应用于可计算存储设备,包括:

接收数据请求端发送的数据请求信息,所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;

根据所述存储地址信息从所有数据块中获取目标数据块,所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;

向所述数据请求端发送所述目标数据。

可选的,根据所述数据选择条件和数据组的索引信息提取出目标数据,包括:

根据所述数据组的索引信息判断所述数据组与所述数据选择条件确定的数据区间是否存在重叠,若存在重叠,则确定所述数据组为目标数据组;

根据所述目标数据组确定目标数据。

可选的,根据所述数据组的索引信息判断所述数据组与所述数据选择条件确定的数据区间是否存在重叠,包括:

当所述索引信息包括最大值索引信息和最小值索引信息时,若数据组的最大值索引信息和/或最小值索引信息与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;

或者,当所述索引信息包括比特索引信息时,若数据组的比特信息中预设数值对应的桶区间与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;其中,所述桶区间是根据所述数据块元信息中桶区间的数目及桶分界值确定的。

可选的,所述数据请求信息还包括:提取粒度级别信息;根据所述目标数据组确定目标数据,包括:

当所述提取粒度级别信息为数据组级别时,则将所述目标数据组确定为目标数据,并将所述目标数据存放至缓存位置;

或者,当所述提取粒度级别信息为元素级别时,则将所述目标数据组中满足数据选择条件的数据元素确定为目标数据,并将所述目标数据存放至缓存位置。

可选的,所述数据块元信息包括每一数据组的起始偏移信息;所述根据数据块元信息确定所述数据块包含的数据组,包括:

根据所述每一数据组的起始偏移信息确定每一数据组的位置信息;

根据每一数据组的位置信息获取各个数据组。

可选的,根据所述数据选择条件和数据组的索引信息提取出目标数据,还包括:

判断在根据所述数据选择条件和数据组的索引信息提取出目标数据时是否出现告警信息;

当出现告警信息时,返回与所述告警信息对应的错误码,以使所述数据请求端执行与所述错误码对应的数据提取操作。

可选的,向所述数据请求端发送所述目标数据,包括:

将所述目标数据按照预设规则进行封装,向所述数据请求端发送封装后的数据,以使所述数据请求端根据封装后的数据解析所述数据目标数据。

可选的,将所述目标数据按照预设规则进行封装,包括:

当所述目标数据为数据组时,将数据长度信息、数据组、数据组偏移信息、数据组个数信息和校验码信息进行封装;

当所述目标数据为数据元素时,将数据长度信息、数据元素、数据元素个数信息和校验码信息进行封装。

可选的,所述接收数据请求端发送的数据请求信息之前,还包括:

接收数据请求端发送的数据块和存储地址信息,其中,所述数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

根据所述存储地址信息将所述数据块写入存储介质。

第二方面,本发明实施例提供一种数据提取方法,应用于数据请求设备,包括:

向可计算存储设备发送数据请求信息,以使所述可计算存储设备根据所述数据请求信息中的目标数据块的存储地址信息从所有数据块中获取目标数据块,根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

接收所述可计算存储设备发送的所述目标数据。

可选的,所述向可计算存储设备发送数据请求信息之前,还包括:

生成并向所述可计算存储设备发送的数据块和存储地址信息,以使所述可计算存储设备根据所述存储地址信息将所述数据块写入存储介质,其中,所述数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息。

第三方面,本发明实施例提供一种数据提取装置,包括:

接收模块,用于接收数据请求端发送的数据请求信息,所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;

获取模块,用于根据所述存储地址信息从所有数据块中获取目标数据块,所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

提取模块,用于根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;

发送模块,用于向所述数据请求端发送所述目标数据。

第四方面,本发明实施例提供一种数据提取装置,包括:

发送模块,向可计算存储设备发送数据请求信息,以使所述可计算存储设备根据所述数据请求信息中的目标数据块的存储地址信息从所有数据块中获取目标数据块,根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

接收模块,接收所述可计算存储设备发送的所述目标数据。

第五方面,本发明实施例提供一种可计算存储设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第一方面任一项所述的数据提取方法。

第六方面,本发明实施例提供一种数据请求设备,包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;

所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如第二方面任一项所述的数据提取方法。

第七方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如第一方面和第二方面任一项所述的数据提取方法。

第八方面,本发明实施例提供一种程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面和第二方面任一项所述的数据提取方法。

本发明实施例提供的数据提取方法及装置,该方法通过接收数据请求端发送的数据请求信息,所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;根据所述存储地址信息从所有数据块中获取目标数据块,所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;向所述数据请求端发送所述目标数据;实现了通过可计算存储设备将数据块中符合数据选择条件的数据筛选出来,能够充分发挥存储设备的可计算功能,降低了传输的数据量,进而减小数据传输时总线带宽的占用率,以及数据请求端内存带宽的占用率;此外,还可以减小数据请求端对数据的处理过程。

附图说明

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

图1为本发明实施例提供的数据提取的应用场景示意图;

图2为本发明实施例提供的一种数据提取方法的流程示意图;

图3为本发明实施例提供的数据块格式的示意图;

图4为本发明实施例提供的采用最大值索引信息和最小值索引信息进行数据提取的示意图;

图5为本发明实施例提供的采用比特索引进行数据提取的示意图;

图6为本发明实施例提供的数据组的封装格式示意图;

图7为本发明实施例提供的数据元素的封装格式示意图;

图8为本发明实施例提供的另一种数据提取方法的流程示意图;

图9为本发明实施例提供的一种数据提取装置的结构示意图;

图10为本发明实施例提供的另一种数据提取装置的结构示意图;

图11为本发明实施例提供的可计算存储设备的硬件结构示意图;

图12为本发明实施例提供的数据请求设备的硬件结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图1为本发明实施例提供的数据提取的应用场景示意图。如图1所示,所述数据提取的过程涉及的设备包括:数据请求端101与可计算存储设备102。其中,数据请求端101可以为任何需要从可计算存储设备102中获取目标数据的设备,例如计算机的主机。可计算存储设备102为具有数据存储功能和计算功能的设备,如硬盘或闪存等。

其中,数据以列存的方式存储在可计算存储设备的存储介质中。数据提取的过程主要包括:数据请求端101生成数据请求信息,将数据请求信息发送给可计算存储设备102,可计算存储设备102可以根据数据请求信息得到目标数据,并将筛选后的目标数据发送给数据请求端101。

在一些技术中,可计算存储设备中存储的数据的最小单位为数据块,当数据请求端在请求数据时,可计算存储设备会将某一符合条件的数据块发送给数据请求端,数据请求端再从获取的数据块中筛选所需的数据。然而,一个数据块内存储的数据比较多,一个数据块的大小一般为4kb左右,而数据请求端可能仅需要该某一数据块中的一部分数据。也就是说,当前可计算存储设备并未充分发挥其可计算功能,还是会将大量不需要的数据发送给数据请求端,存在着可计算存储设备与数据请求端之间传输的数据量较大的问题。

而随着可计算存储设备计算功能的发展,在数据提取的过程中,若可计算存储设备可以代替数据请求端做一部分数据筛选的工作,将一个数据块中的数据进行筛选,得到符合条件的数据,并将符合条件的数据发送给数据请求端,则会大大降低可计算存储设备与数据请求端之间传输的数据量。

本发明实施例提供的数据提取方法,通过在数据请求信息中设置数据选择条件,并提前将数据块设置为多个数据组,以及每个数据组的索引信息和数据块元信息,那么可计算存储设备在获取到数据请求信息后,可以根据数据选择条件和数据组的索引信息和数据块元信息得到满足数据选择条件的数据,并将满足数据选择条件的数据发送给数据请求端,实现了通过可计算存储设备对数据块级别的数据做进一步的数据提取,将传输的数据由数据块维度到现在的数据组或数据元素的维度,降低了传输的数据量。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本发明实施例提供的一种数据提取方法的流程示意图,本实施例的方法可以由数据提取装置执行,该数据提取装置可以以软件和/或硬件的形式设置在图1的可计算存储设备中。如图2所示,本实施例的方法,可以包括:

s201、接收数据请求端发送的数据请求信息,所述数据请求信息包括目标数据块的存储地址信息和数据选择条件。

在本实施例中,数据请求端在调用数据时需要从可计算存储设备获取所需的数据。其中,数据请求信息包括目标数据块的存储地址信息,通过目标数据块的存储地址信息可以确定目标数据块的存储位置。其中,存储地址信息包括:目标数据块的逻辑块地址、以及目标数据块在逻辑段地址内的偏移和长度。

其中,由于数据在可计算存储设备中是按列存储的,当一列数据较多时,可以将一列数据分成多个数据块进行存储,一次数据请求对应一个或多个目标数据块,要完成一列数据的提取时,可以通过一次或多次交互来完成,每次对应不同的目标数据块。

s202、根据所述存储地址信息从所有数据块中获取目标数据块,所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息。

图3为本发明实施例提供的数据块格式的示意图,如图3所示,一个数据块包括数据组1、数据组2直至数据组n,其中,在每个数据组的后面均存储有与该数据组对应的索引信息,分别为索引信息1、索引信息2直至索引信息n;其中,数据块还包括数据块元信息,数据块元信息的存储位置不做限定,就可以在数据块的初始位置,还可以为数据块的末尾位置。图中示出的是数据块元信息在数据块末尾位置的情形。

数据块元信息包括数据块的最大值和最小值,因此,根据数据选择条件和数据块元信息可以初步筛选出满足条件的数据块,该满足条件的数据块为目标数据块。例如,根据数据块元信息可以初步筛选出数据块1和数据块2为符合条件的数据。

在得到目标数据块后,可以根据目标数据块的存储地址信息确定目标数据块,具体的,可以根据目标数据块的逻辑块地址得到目标数据块的物理地址,根据目标数据块在逻辑段地址内的偏移和长度可以准确得到目标数据块。例如,存在三个数据块分别以物理地址为0、1、2、3等存储在存储介质中,每一个存储单位为4k。其中,当要读取第二个数据块时,根据第二个数据块的逻辑地址可知,该数据块的物理地址为1和2(其中,逻辑地址与物理地址之间存在映射关系)。当第二个数据块的偏移为2k,且长度为6k时,则可以准确读取该数据块,即读取第二个存储单位的数据和第三个存储单位的数据,将截取第二个存储单位的数据的后一半的数据和第三个存储单位的数据作为目标数据块。

s203、根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据。

在本实施例中,在获取目标数据块后,可以从该目标数据块中得到多个数据组,根据数据选择条件和数据组的索引信息可以得到满足数据选择条件的目标数据,目标数据可以为数据组或数据元素。其中,一个数据组包括多个数据元素。其中,对数据选择条件不做限制,可以为选择某一数据区间的数据。其中,数据组的索引信息为一种细粒度的索引信息,能够根据该索引信息确定该数据组内是否包含满足数据选择条件的数据。

s204、向所述数据请求端发送所述目标数据。

在本实施例中,在获取目标数据后,需要将目标数据发送给数据请求端,其中,获取的数据请求信息中还包括用于存放返回的目标数据的内存地址。可计算存储设备在得到目标数据后,可以向数据请求端发送目标数据并存储至内存地址。

此外,其中,获取的数据请求信息中还包括数据类型,数据请求端还可以根据目标数据的数据类型以及在可计算存储设备中的逻辑块地址、以及目标数据块在逻辑段地址内的偏移和长度,确定目标数据的大小,并根据目标数据的大小提前申请合适大小的存储空间,以便高效的对接收的目标数据进行存储。

本申请实施例通过在数据请求信息中设置数据选择条件,并提前将数据块设置为多个数据组,以及每个数据组的索引信息和数据块元信息,可计算存储设备在获取到数据请求信息后,可以根据数据选择条件和数据组的索引信息和数据块元信息得到满足数据选择条件的数据,并将满足数据选择条件的数据发送给数据请求端,实现了通过可计算存储设备对数据块级别的数据做进一步的数据提取,将传输的数据由数据块维度到现在的数据组或数据元素的维度,降低了传输的数据量。

可选的,根据所述数据选择条件和数据组的索引信息提取出目标数据,包括:

根据所述数据组的索引信息判断所述数据组与所述数据选择条件确定的数据区间是否存在重叠,若存在重叠,则确定所述数据组为目标数据组;根据所述目标数据组确定目标数据。

在本实施例中,在判断所述数据组是否为满足数据选择条件时,可以直接根据每个数据组对应的索引信息来确定。具体的,根据数据选择条件也可以确定一个数据区间,根据数据组的索引信息可以确定该数据组的取值范围,若该数据组的取值范围与该数据区间存在重叠,则表示该数据组内存在满足数据选择条件的数据,即该数据组为目标数据组。

在获取目标数据组后可以进一步的确定目标数据。具体的,可以根据数据选择条件来确定。

上述方法,通过判断索引信息确定的数据组和数据选择条件确定的数据区间是否存在重叠,能够准确确定一个数据组是否包含满足数据选择条件的数据。

可选的,根据所述数据组的索引信息判断所述数据组与所述数据选择条件确定的数据区间是否存在重叠,包括:

当所述索引信息包括最大值索引信息和最小值索引信息时,若数据组的最大值索引信息和/或最小值索引信息与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;

或者,当所述索引信息包括比特索引信息时,若数据组的比特信息中预设数值对应的桶区间与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;其中,所述桶区间是根据所述数据块元信息中桶区间的数目及桶分界值确定的。

在本实施例中,索引信息可以包括两种,一种为最大值索引信息和最小值索引信息,一种为比特索引信息。根据两种索引信息均可以获取数据组中各个数据元素所在的范围。

将最大值索引信息和/或最小值索引信息与数据选择条件确定的数据区间进行比较即可判断数据组与数据选择条件确定的数据区间是否存在重叠。图4为本发明实施例提供的采用最大值索引信息和最小值索引信息进行数据提取的示意图。如图4所示,在该数据块中包括数据组1和数据组2,以及与数据组1对应的索引信息1和与数据组2对应的索引信息2,以及数据块元信息,其中,数据选择条件为大于10小于13,则确定的数据区间为[11,12],根据索引信息1可知数据组1的最小值为1,最大值为8,可以确定数据组的取值范围为[1,8],可知该取值范围与数据区间没有重叠,则数据组1不满足数据选择条件。同样的,根据数据组2对应的索引信息可知数据组2的取值范围为[9,16],可知该取值范围与数据区间存在重叠,数据组2满足数据选择条件,可以初步提取出该数据组。

当索引信息为比特索引时,比特索引可以通过0和1分别表示数据组是否与桶区间存在重叠。进而根据索引信息中的数值,可以确定该数据组与数据选择条件确定的数据区间是否存在重叠。图5为本发明实施例提供的采用比特索引进行数据提取的示意图;如图5所示,首先根据数据块元信息中的桶分界值可以确定四个桶区间为[1,4]、[5,8]、[9,12]和[13,16],其中比特信息分别对应四个桶区间,其中,比特信息中从右至左的比特信息依次对应四个桶区间,且1表示与桶区间存在交集,0表示与桶区间不存在交集。则根据索引信息1中的比特索引0101可以确定数据组1中存在处于桶区间[1,4]和桶区间[9,12]的数据元素,则将该桶区间与数据选择条件对应的数据区间[11,12]进行比较,可以确定该数据组满足数据选择条件,可以初步提取出该数据组。同样的,对于数据组2,根据比特索引1010可以确定数据组2不满足数据选择条件。

其中,相比与最大值索引信息和最小值索引信息,通过比特索引的方式可以获取该数据组中更多的数据元素的信息,且可以灵活的设置比特信息的个数,能够更准确的判断数据组中是否存在满足数据选择条件的数据元素。

可选的,所述数据请求信息还包括:提取粒度级别信息;根据所述目标数据组确定目标数据,包括:

当所述提取粒度级别信息为数据组级别时,则将所述目标数据组确定为目标数据,并将所述目标数据存放至缓存位置;

或者,当所述提取粒度级别信息为元素级别时,则将所述目标数据组中满足数据选择条件的数据元素确定为目标数据,并将所述目标数据存放至缓存位置。

在本实施例中,进一步的还可以从数据请求端获取提取粒度级别的信息,提取粒度是指获取数据的级别为数据组级别还是数据元素级别。根据提取粒度级别的不同可以将不同的满足数据选择条件的数据发送给数据请求端。

具体的,当提取粒度级别为数据组级别时,直接将确定的目标数据组确定为目标数据,目标数据就是满足数据选择条件的数据组。如图4所示,此时,可以将提取的数据组,也就是数据组2发送给数据请求端。如图5所示,此时可以将提取的数据组,也就是数据组1发送给数据请求端。

此外,当提取粒度级别为数据元素级别时,从提取的目标数据组中筛选出满足数据选择条件的数据元素,将筛选出的满足数据选择条件的数据元素作为目标数据,目标数据就是满足数据选择条件的数据元素。如图4和图5所示,此时,可以将提取的数据元素11和12发送给数据请求端。

通过设置提取粒度级别信息可以将不同级别的数据发送给数据请求端,使得传输的数据级别可以更加灵活。

可选的,所述数据块元信息包括每一数据组的起始偏移信息;所述根据数据块元信息确定所述数据块包含的数据组,包括:

根据所述每一数据组的起始偏移信息确定每一数据组的位置信息;根据每一数据组的位置信息获取各个数据组。

在本实施例中,数据块元信息中存储有各个数据组的起始偏移信息,根据各个数据组的起始偏移信息可以确定各个数据组的位置信息,如图4所示,根据数据块元信息中的起始偏移信息1为0,可知该数据块中从第0个字节的位置开始即为数据组1以及数据组1的索引信息。根据数据块元信息中的起始偏移信息2为100,可知该数据块中从第100个字节的位置开始即为数据组2以及数据组2的索引信息。

其中,对于索引信息所占的存储空间的大小可以设置为固定值,因此,在得到数据组以及该数据组对应的索引信息后,可以确定索引信息及数据组的存储位置。或者,还可以是获取索引信息所占用的存储空间的实际大小,并将该实际大小存储至数据块元信息中,从而根据数据组的起始偏移信息和索引信息所占用的存储空间的实际大小,可以确定各个数据组和各个数据组的索引信息。

此外,数据块元信息中还可以包括数据组个数信息,该数据块的最大值和最小值等等。

通过在数据块元信息中设置每一数据组的起始偏移信息,能够准确得到每一数据组。

可选的,根据所述数据选择条件和数据组的索引信息提取出目标数据,还包括:

判断在根据所述数据选择条件和数据组的索引信息提取出目标数据时是否出现告警信息;当出现告警信息时,返回与所述告警信息对应的错误码,以使所述数据请求端执行与所述错误码对应的数据提取操作。

在本实施例中,在提取目标数据的过程中可能出现异常情况,如请求超时,即接收到数据请求端的数据请求信息后,超过预设时间还未发送目标数据,或者,可计算存储设备中用于存储目标数据的缓存空间出现异常等等。因此,在提取数据的过程中,当出现上述异常情况时,可以发出告警信息。其中,每一种告警信息可以对应一种错误码,当数据请求端接收到错误码时,可以确定出现的异常情况。

其中,当出现告警信息时,可计算存储设备将停止此次提取数据的操作,并清空缓存空间中已经存储的目标数据,同时将该告警信息对应的错误码返回给数据请求端,并使数据请求端根据该错误码可以执行数据提取操作,其中,不同的错误码对应的额数据提取操作可以相同也可以不同。

通过判断数据提取过程中是否出现异常情况,并在出现的异常情况时通过数据请求端来执行数据提取操作,能够防止可计算存储设备出现异常时无法提取符合数据选择条件的数据,确保数据提取操作的顺利完成。

可选的,向所述数据请求端发送所述目标数据,包括:

将所述目标数据按照预设规则进行封装,向所述数据请求端发送封装后的数据,以使所述数据请求端根据封装后的数据解析所述数据目标数据。

在本实施例中,在获取目标数据后,需要将目标数据按照预设规则进行封装,以使的数据请求端在接收到封装后的数据后,能够将目标数据正确解封。

可选的,将所述目标数据按照预设规则进行封装,包括:

当所述目标数据为数据组时,将数据长度信息、数据组、数据组偏移信息、数据组个数信息和校验码信息进行封装;

当所述目标数据为数据元素时,将数据长度信息、数据元素、数据元素个数信息和校验码信息进行封装。

在本实施例中,在获取目标数据后,需要对目标数据进行封装,再将封装后的数据发送给数据请求端。图6为本发明实施例提供的数据组的封装格式示意图;图7为本发明实施例提供的数据元素的封装格式示意图。如图6所示,当获取的目标数据为数据组时,需要将数据长度信息、数据组、数据组的偏移信息、数据组的个数信息、检验码进行封装。如图7所示,当获取的目标数据为数据元素时,需要将数据长度信息、数据元素、数据元素个数信息和校验码进行封装。

其中,通过数据长度信息可以初步判断得到的目标数据是否出现错误。通过校验码可以判断目标数据在从可计算存储设备传输至数据请求端的过程中是否出现错误。

当数据请求端在接收到返回的封装后的数据后,可以先对数据进行解析,假设数据长度信息、数据组偏移信息、数据组个数信息和校验码均占用4个字节,则通过最后四个字节可以得到校验码信息,并根据校验码信息校验数据是否出现错误。根据校验码前面4个字节的数据可以确定数据组个数,若数据组的个数为两个,则根据该数据组个数前面两个4字节的数据,可以分别获取两个数据组的数据组偏移信息,根据数据组偏移信息可以确定数据组1和数据组2的存储位置,最终得到数据组1和数据组2。其中,数据长度信息可以用于校验封装的数据是否正确。其中,对目标数据为数据元素时封装后的数据进行解析的过程与上述过程相似,此处不再赘述。

其中,当提取的数据为数据组级别时,数据请求端在获取到数据组后,则数据请求端的处理器可以做进一步的数据元素级别的提取。当提取的数据为数据元素级别时,数据请求端可以直接使用提取后的数据元素。

将获取的数据按照预设的封装格式进行封装,能够便于数据请求端对封装的数据进行解析。

可选的,所述接收数据请求端发送的数据请求信息之前,还包括:

接收数据请求端发送的数据块和存储地址信息,其中,所述数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;根据所述存储地址信息将所述数据块写入存储介质。

在本实施例中,在接收数据请求端发送的数据请求信息之前,需要先接收数据请求端发送的数据,并将数据存储至存储介质中。其中,数据请求端可以将数据按照预设的格式将数据块划分为多个数据组,并得到每个数据组的索引信息,以及数据块的元信息,该过程也可以成为数据块的生成阶段。具体的,可以按照字节大小将数据块中的数据划分为多个数据组,例如,依次读取数据块中的数据,每预设字节个数的数据作为一个数据组(如128个字节作为一个数据组),获取该数据组的索引信息,如该数据组的最大值索引信息和最小值索引信息,或者,该数据组的比特索引信息。在获取每一数据组的索引信息后,还需要获取该数据块的数据块元信息,如该数据块中每个数据组的起始偏移信息,此外,还可以包括数据组的个数,以及该数据块的最大值和最小值等。

将数据组、索引信息和数据块元信息按照预设规则进行组合,得到数据块,并将数据块和该数据块的存储地址信息发送给可计算存储设备。具体的,在按照预设规则进行组合时,可以将每一数据组和该数据组的索引信息按顺序存储,最后再存储该数据块的数据块元信息。

其中,可计算存储设备在接收到数据块和存储地址信息后,根据存储地址信息将数据块存储在存储介质中。

此外,需要说明的是通过可计算存储设备进行数据的筛选目的是为了不降低数据处理速度的基础上,减小可计算存储设备与数据请求端之间传输的数据量,因此,可以在可计算存储设备中设置加速器,以提高数据处理速度。

图8为本发明实施例提供的另一种数据提取方法的流程示意图,本实施例的方法可以由数据提取装置执行,该数据提取装置可以以软件和/或硬件的形式设置在图1的数据请求端中。如图8所示,本实施例的方法,可以包括:

s801、向可计算存储设备发送数据请求信息,以使所述可计算存储设备根据所述数据请求信息中的目标数据块的存储地址信息从所有数据块中获取目标数据块,根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

s802、接收所述可计算存储设备发送的所述目标数据。

其中,在本实施例中,数据请求端执行的操作与可计算存储设备执行的操作相对应,其实现原理和技术效果类似,此处不再赘述。

可选的,所述向可计算存储设备发送数据请求信息之前,还包括:

生成并向所述可计算存储设备发送的数据块和存储地址信息,以使所述可计算存储设备根据所述存储地址信息将所述数据块写入存储介质,其中,所述数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息。

其中,在本实施例中,数据请求端需要预先将数据块划分为多个数据组,并生成每个数据组的索引信息,以及数据块元信息,其中,在对数据组进行划分时,是按照原始数据的存储顺序将预设字节长度的数据划分为一个数据组。

此外,本实施例中,数据请求端的在接收到封装数据以及可计算存储设备在提取数据的过程中出现异常情况时执行的操作与上述实施例中执行操作相同,其实现原理和技术效果类似,此处不再赘述。

图9为本发明实施例提供的一种数据提取装置的结构示意图;所述数据提取装置90包括:

接收模块901,用于接收数据请求端发送的数据请求信息,所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;

获取模块902,用于根据所述存储地址信息从所有数据块中获取目标数据块,所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

提取模块903,用于根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;

发送模块904,用于向所述数据请求端发送所述目标数据。

可选的,所述提取模块903包括目标数据组确定单元和目标数据确定单元:

所述目标数据组确定单元,用于根据所述数据组的索引信息判断所述数据组与所述数据选择条件确定的数据区间是否存在重叠,若存在重叠,则确定所述数据组为目标数据组;

所述目标数据确定单元,用于根据所述目标数据组确定目标数据。

可选的,所述目标数据组确定单元具体用于:

当所述索引信息包括最大值索引信息和最小值索引信息时,若数据组的最大值索引信息和/或最小值索引信息与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;

或者,当所述索引信息包括比特索引信息时,若数据组的比特信息中预设数值对应的桶区间与所述数据选择条件确定的数据区间存在重叠,则确定所述数据组与所述数据选择条件确定的数据区间存在重叠;其中,所述桶区间是根据所述数据块元信息中桶区间的数目及桶分界值确定的。

可选的,所述数据请求信息还包括:提取粒度级别信息;所述目标数据确定单元具体用于:

当所述提取粒度级别信息为数据组级别时,则将所述目标数据组确定为目标数据,并将所述目标数据存放至缓存位置;

或者,当所述提取粒度级别信息为元素级别时,则将所述目标数据组中满足数据选择条件的数据元素确定为目标数据,并将所述目标数据存放至缓存位置。

可选的,所述数据块元信息包括每一数据组的起始偏移信息;所述提取模块在所述根据数据块元信息确定所述数据块包含的数据组时,具体用于:

根据所述每一数据组的起始偏移信息确定每一数据组的位置信息;

根据每一数据组的位置信息获取各个数据组。

可选的,所述提取模块还包括异常处理单元,所述异常处理单元具体用于:

判断在根据所述数据选择条件和数据组的索引信息提取出目标数据时是否出现告警信息;

当出现告警信息时,返回与所述告警信息对应的错误码,以使所述数据请求端执行与所述错误码对应的数据提取操作。

可选的,所述发送模块904具体用于:

将所述目标数据按照预设规则进行封装,向所述数据请求端发送封装后的数据,以使所述数据请求端根据封装后的数据解析所述数据目标数据。

可选的,所述发送模块904在将所述目标数据按照预设规则进行封装时,具体用于:

当所述目标数据为数据组时,将数据长度信息、数据组、数据组偏移信息、数据组个数信息和校验码信息进行封装;

当所述目标数据为数据元素时,将数据长度信息、数据元素、数据元素个数信息和校验码信息进行封装。

可选的,所述装置还包括数据写入模块,所述数据写入模块用于:

接收数据请求端发送的数据块和存储地址信息,其中,所述数据块包括至少一个数据组、每一数据组的索引信息数据块的元信息;

根据所述存储地址信息将所述数据块写入存储介质。

本发明实施例提供的数据提取装置,可以实现上述如图2所示的实施例的数据提取方法,其实现原理和技术效果类似,此处不再赘述。

图10为本发明实施例提供的另一种数据提取装置的结构示意图;所述数据提取装置100包括:

发送模块1001,用于向可计算存储设备发送数据请求信息,以使所述可计算存储设备根据所述数据请求信息中的目标数据块的存储地址信息从所有数据块中获取目标数据块,根据数据块元信息确定所述数据块包含的数据组,根据所述数据选择条件和数据组的索引信息提取出目标数据;所述目标数据为满足数据选择条件的数据;所述数据请求信息包括目标数据块的存储地址信息和数据选择条件;所述目标数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息;

接收模块1002,用于接收所述可计算存储设备发送的所述目标数据。

可选的,所述装置还包括生成模块,所述生成模块用于:

生成并向所述可计算存储设备发送的数据块和存储地址信息,以使所述可计算存储设备根据所述存储地址信息将所述数据块写入存储介质,其中,所述数据块包括至少一个数据组、每一数据组的索引信息和数据块元信息。

本发明实施例提供的数据提取装置,可以实现上述如图7所示的实施例的数据提取方法,其实现原理和技术效果类似,此处不再赘述。

图11为本发明实施例提供的可计算存储设备的硬件结构示意图;如图11所示,本实施例提供的可计算存储设备110包括:至少一个处理器1101和存储器1102。其中,处理器1101、存储器1102通过总线1103连接。

在具体实现过程中,至少一个处理器1101执行所述存储器1102存储的计算机执行指令,使得至少一个处理器1101执行上述方法实施例中的数据提取方法。

处理器1101的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

图12为本发明实施例提供的数据请求设备的硬件结构示意图;如图12所示,本实施例提供的可计算存储设备120包括:至少一个处理器1201和存储器1202。其中,处理器1201、存储器1202通过总线1203连接。

在具体实现过程中,至少一个处理器1201执行所述存储器1202存储的计算机执行指令,使得至少一个处理器1201执行上述方法实施例中的数据提取方法。

处理器1201的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

在上述的图11和图12所示的实施例中,应理解,处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例的数据提取方法。

上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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