一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据提取方法、装置及存储介质与流程

2021-10-24 08:30:00 来源:中国专利 TAG:数据处理 提取 装置 方法 数据


1.本技术涉及数据处理领域,尤其涉及一种数据提取方法、装置及存储介质。


背景技术:

2.随着互联网和大数据的飞速发展,数据正以前所未有的速度在被产生和消费,我们需要处理的数据量也随之成倍的增加。当前的数据分析引擎,例如各种数据库,大多都采用列存的方式进行数据的存储。
3.目前,在列存的数据分析中,主机端将参与数据分析的所有列从存储设备加载到内存中,然后由主机端进行列的过滤,之后再进行后续的处理。这种数据分析方式,对系统来说,增加了io带宽和内存带宽的占用,同时也给主机端的cpu带来了计算的压力。


技术实现要素:

4.本技术提供了一种数据提取方法、装置及存储介质,以减小系统中io带宽和内存带宽的占用,同时降低主机端的计算压力。
5.第一方面,本技术提供了一种数据提取方法,应用于主机端,包括:
6.从可计算存储设备中获取参考列;
7.根据参考列的内容和选择条件,确定过滤信息;
8.向可计算存储设备发送过滤请求,过滤请求携带所述过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤;
9.接收来自所述可计算存储设备的过滤后的数据。
10.一种可能的实施方式中,向可计算存储设备发送过滤请求之前,还包括:查询目标列在可计算存储设备中的存储信息,存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度,根据存储信息以及过滤信息,生成所述过滤请求。
11.一种可能的实施方式中,根据存储信息以及过滤信息,生成过滤请求,包括:根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间,根据存储信息、过滤信息以及内存空间的地址和大小,生成过滤请求。
12.一种可能的实施方式中,接收来自可计算存储设备的过滤后的数据之前,还包括:根据目标列的大小和所述过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间。
13.第二方面,本技术提供一种数据提取方法,应用于可计算存储设备,包括:
14.接收来自主机端的过滤请求,过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤,过滤信息是根据参考列的内容和选择条件确定的;
15.基于过滤信息对目标列进行过滤;
16.向主机端发送过滤后的数据。
17.一种可能的实施方式中,过滤请求还包括存储信息,存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度;基于过滤信息对目标列进行过滤之前,还包括:确定目标列的逻辑地址对应的数据块;根据目标列在逻辑地址中的地址偏移和长度,在数据块中确定目标列。
18.一种可能的实施方式中,过滤请求还包括在主机端所申请的内存空间的大小。在上述向所述主机端发送过滤后的数据之前,数据提取方法还可以包括:确定过滤后的数据的大小小于或等于内存空间的大小。
19.一种可能的实施方式中,数据提取方法还可以包括:若过滤后的数据的大小大于内存空间的大小,则删除过滤后的数据,并返回错误信号给主机端,该错误信号用于指示主机端申请的内存空间不足。
20.第三方面,本技术提供一种数据提取装置,应用于主机端,包括:
21.获取模块,用于从可计算存储设备中获取参考列;
22.确定模块,用于根据参考列的内容和选择条件,确定过滤信息;
23.发送模块,用于向可计算存储设备发送过滤请求,过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤;
24.接收模块,用于接收来自可计算存储设备的过滤后的数据。
25.一种可能的实施方式中,确定模块还用于:查询目标列在可计算存储设备中的存储信息,存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度,根据存储信息以及过滤信息,生成所述过滤请求。
26.一种可能的实施方式中,确定模块具体用于:根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间,根据存储信息、过滤信息以及内存空间的地址和大小,生成过滤请求。
27.一种可能的实施方式中,确定模块还用于:根据目标列的大小和所述过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间。
28.第四方面,本技术提供一种数据提取装置,应用于可计算存储设备,包括:
29.接收模块,用于接收来自主机端的过滤请求,所述过滤请求携带过滤信息,所述过滤请求用于指示所述可计算存储设备基于所述过滤信息对目标列进行过滤,所述过滤信息是根据参考列的内容和选择条件确定的;
30.过滤模块,用于基于所述过滤信息对目标列进行过滤;
31.发送模块,用于向所述主机端发送过滤后的数据。
32.一种可能的实施方式中,还包括确定模块,用于确定目标列的逻辑地址对应的数据块;根据目标列在逻辑地址中的地址偏移和长度,在数据块中确定目标列。
33.一种可能的实施方式中,过滤请求还包括在主机端所申请的内存空间的大小,确定模块还用于:确定过滤后的数据的大小小于或等于内存空间的大小。
34.一种可能的实施方式中,发送模块还用于:若过滤后的数据的大小大于内存空间的大小,则删除过滤后的数据,并返回错误信号给主机端,该错误信号用于指示主机端申请的内存空间不足。
35.第五方面,本技术提供一种数据提取系统,包括:
36.可计算存储设备和主机端,其中,所述主机端用于执行如第一方面所述的数据提
取方法;所述可计算存储设备用于执行如第二方面所述的数据提取方法。
37.第六方面,本技术提供一种电子设备,包括:
38.存储器和处理器;
39.存储器用于存储程序指令;
40.处理器用于调用所述存储器中的程序指令执行第一方面的数据提取方法。
41.第七方面,本技术一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现第一方面的数据提取方法。
42.第八方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面的数据提取方法。
43.本技术提供一种数据提取方法、装置及存储介质,主机端先从可计算存储设备中获取参考列,然后根据参考列的内容和选择条件,确定过滤信息,并向可计算存储设备发送过滤请求,其中过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤,之后,接收来自可计算存储设备的过滤后的数据。通过在可计算存储设备中对目标列进行过滤,由可计算存储设备返回过滤后的数据给主机端,以减小系统中io带宽和内存带宽的占用,同时降低主机端的计算压力,例如中央处理器(cpu)的消耗。
附图说明
44.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术一实施例提供的应用场景示意图;
46.图2为本技术一实施例提供的数据提取方法的流程图;
47.图3是本技术实施例提供的基于单个参考列生成过滤信息的示例图;
48.图4是本技术实施例提供的基于两个参考列生成过滤信息的示例图;
49.图5是本技术实施例提供的描述目标列数据信息的示例图;
50.图6为本技术另一实施例提供的数据提取方法的流程图;
51.图7是本技术实施例中可计算存储设备对过滤结果进行封装的示例图;
52.图8为本技术又一实施例提供的数据提取方法的流程图;
53.图9为本技术一实施例提供的数据提取装置的结构示意图;
54.图10为本技术另一实施例提供的数据提取装置的结构示意图;
55.图11为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
56.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
57.首先,对本技术涉及的部分技术术语进行解释说明:
58.中央处理器(central processing unit,简称:cpu),cpu作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。cpu自产生以来,在逻辑结构、运行效率以及功能外延上取得了巨大发展。
59.目前,在列存的数据分析中,参与分析的一般是多个列,而数据的选择条件往往是针对某一个列的,即,数据库引擎将参与分析的各个列读取到内存中,然后根据某一列的选择条件对该列进行过滤,并根据过滤的结果从其它列中提取相应的数据,这种数据的分析方式,将参与分析的所有列均从存储设备加载到了内存,然后由主机端的cpu进行列的过滤,因此对系统来说,增加了io带宽和内存带宽的占用,同时也给主机端cpu带来了计算的压力。
60.基于上述问题,本技术的实施例提供了一种数据提取方法、装置及存储介质,根据参考列生成相应的过滤信息,并利用可计算存储设备本身的计算能力,在可计算存储设备内部完成目标列的数据过滤,并将过滤后的结果返回主机端,从而减小系统中io带宽和内存带宽的占用,同时降低主机端cpu的消耗。
61.图1为本技术一实施例提供的应用场景示意图。如图1所示,本应用场景中,主机端110包括cpu和内存,需要进行数据处理时,主机端先从可计算存储设备120中提取参考列并存储在内存中,再由cpu执行从选择条件中确定参考列的过滤信息这一操作,之后由主机端110根据过滤信息申请用于存放返回结果的内存空间,并将过滤请求发送给可计算存储设备120。
62.其中,可计算存储设备120中包括计算单元、缓存、存储控制器以及存储介质。具体地,计算单元用于根据过滤信息提取目标列中的数据,缓存用于暂时存储在可计算存储设备120中对目标列进行提取过滤后的数据,存储控制器用于从存储介质中查询目标列以及将过滤后的数据发送给主机端110。总而言之,当需要进行数据处理时,主机端110先将过滤请求发送给可计算存储设备120,由可计算存储设备120进行数据过滤,完成过滤操作,并将过滤后的数据返回给主机端110。
63.需要说明的是,图1仅是本技术实施例提供的一种应用场景的示意图,本技术实施例不对图1中包括的设备进行限定,也不对图1中设备之间的位置关系进行限定。例如,在图1所示的应用场景中,可计算存储设备120相对主机端110既可以是外部存储器,也可以是集成在主机端110中的内部存储器。
64.下面,通过具体实施例对本技术的技术方案进行详细说明。需要说明的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
65.图2为本技术一实施例提供的数据提取方法的流程图。该方法应用于主机端。如图2所示,该数据提取方法包括如下步骤:
66.s201、从可计算存储设备中获取参考列。
67.在实际应用中,当主机端有从可计算存储设备获取多列数据的需求时,例如数据分析,主机端会首先将存储在可计算存储设备的存储介质中的参考列读取到主机端的内存中。
68.其中,参考列是根据选择条件确定的包含有具体内容的列,在本技术中,不对其命名方式加以限定。
69.s202、根据参考列的内容和选择条件,确定过滤信息。
70.其中,过滤信息的确定既可以是基于元素的,也可以是基于元素组的。通常情况下,当数据量过大时,往往基于元素组来确定过滤信息,从而加快了数据过滤的速率。示例地,基于元素级别确定过滤信息时,被选择的元素记为1,而不被选择的元素记为0;基于元素组级别确定过滤信息时,若该元素组内有任意一个元素被选择,则该元素组对应的所有元素均会被选择。
71.示例地,图3是本技术实施例提供的基于单个参考列生成过滤信息的示例图。如图3所示,图3显示了生成不同粒度(元素级别和元素组级别)过滤信息的一个示例,参考列的选择条件为元素值大于4,生成的过滤信息中1表示被选择,0表示不被选择。
72.可选地,参考列可以是一列,也可以是多列。当参考列是多列时,过滤信息根据各列选择条件之间的逻辑关系生成。示例地,参考列中包含的数据所代表的可以是学生的学号,也可以是学生的学科成绩等等,当参考列是多列时,其代表的可以是学生的多门科目的成绩。同时,选择条件可以是多门科目的选择条件的逻辑关系,如数学大于100分且英语大于110分,或者语文小于120分且物理大于140分。在具体的实现过程中,先确定选择条件,再根据选择条件确定具体的参考列。
73.示例地,图4是本技术实施例提供的基于两个参考列生成过滤信息的示例图。如图4所示,图4显示了两个参考列时元素级别的过滤信息生成情况,该示例中包括了两种不同的多列选择条件,分别为“列1大于4且列2小于8”和“列1大于4或列2小于5”。此时过滤信息根据多个选择条件之间的逻辑关系进行生成,再进一步地,列1代表的具体意义可以是一年中被评为优秀的次数,列2代表的具体意义可以是排名的位次。以第一个选择条件为例,该选择条件是筛选出总排名的前八名中一年评为优秀次数大于4的员工。
74.s203、向可计算存储设备发送过滤请求。
75.其中,过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤。
76.另外,目标列为根据过滤信息需要提取出具体内容的列,例如,在上述实施例中,目标列为员工的姓名。
77.本技术中,在主机端生成过滤信息后,主机端将过滤请求发送给可计算存储设备,由可计算存储设备完成过滤。
78.s204、接收来自可计算存储设备的过滤后的数据。
79.本技术实施例中,主机端先从可计算存储设备中获取参考列,然后根据参考列的内容和选择条件,确定过滤信息,之后向可计算存储设备发送过滤请求,过滤请求携带过滤信息,其中,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤,过滤后,主机端接收来自可计算存储设备的过滤后的数据。通过在可计算存储设备中对目标列进行过滤,由可计算存储设备返回过滤后的数据给主机端,以减小系统中io带宽和内存带宽的占用,同时降低主机端的计算压力,例如中央处理器(cpu)的消耗。
80.在上述实施例的基础上,进一步地,s203、向可计算存储设备发送过滤请求之前,数据提取方法还可以包括:查询目标列在可计算存储设备中的存储信息,存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度;根据存储信息以及过滤信息,生成过滤请求。
81.如上所述的,在s202中确定了过滤信息后,生成过滤请求前,还需要查询目标列在可计算存储设备中的存储信息,该存储信息包含了目标列的地址和大小,之所以需要将该存储信息作为过滤请求发送给可计算存储设备,原因是为了让可计算存储设备接收到过滤请求后,从过滤请求中的存储信息中确定目标列的具体位置,再根据过滤信息进行过滤。
82.示例地,图5是本技术实施例提供的描述目标列数据信息的示例图,如图5所示,主机端查询目标列在存储设备中所占用的逻辑地址,以及在逻辑地址中的偏移和长度,并确认目标列的数据类型,图5描述了目标数据的相关信息,图中目标数据为4字节整型数据,在存储设备中占用的逻辑地址(每个逻辑块大小为4kb)为lba10到lba13,目标数据整体长度为12kb,第一个数据逻辑块的逻辑地址为lba10,第4个数据逻辑块的逻辑地址为lba13。该目标列在第一个逻辑数据块中有2kb的地址偏移。
83.上述实施例的基础上,再进一步地,根据存储信息以及过滤信息,生成所述过滤请求,可以包括:根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间,根据存储信息、过滤信息以及所述内存空间的地址和大小,生成过滤请求。
84.该方法中,查询目标列的存储信息后,根据目标列的存储信息和过滤信息计算出过滤后目标列的数据的大小,并由主机端在内存中申请相应大小的内存空间,将之前确定的目标的存储信息、过滤信息以及申请的内存空间一并生成过滤请求,发送给可计算存储设备,用于过滤。另外,在某些情况下,由于一些目标列包含的信息大小不容易直接确定,例如,该目标列包含的内容是对学生的评价,由于评价有长有短,因此只有过滤后才知道具体的长度,因此需要在发送过滤请求后在主机端申请内存空间。
85.可选地,基于上述实施例的基础上,步骤s204中,接收来自可计算存储设备的过滤后的数据之前,上述数据提取方法还可以包括:根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量;在主机端中,申请与数据量大小相同的内存空间。
86.需要说明的是,申请内存空间的操作可以在发送过滤请求之后、接收过滤后的数据之前完成,也可以在发送过滤请求前完成,本技术不对其加以限定。
87.本技术实施例中,根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量,并在主机端中,申请与数据量大小相同的内存空间。且该步骤可以在确定过滤请求之前,也可以在发送过滤请求之后,接收过滤后的数据之前,通过申请内存空间,为过滤后的数据预留了空间,保障了过滤后数据可以有效存储在内存中,便于后续使用。
88.以上说明了本技术提供的数据提取方法中主机端执行的操作,接下来,通过图6说明可计算存储设备执行的步骤。
89.图6为本技术另一实施例提供的数据提取方法的流程图。本技术所提供的数据提取方法可以应用于可计算存储设备,如图6所示,该方法有如下步骤:
90.s601、接收来自主机端的过滤请求,过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤,过滤信息是根据参考列的内容和选择条件确定的。
91.s602、基于过滤信息对目标列进行过滤。
92.基于之前根据参考列确定的过滤信息,计算单元对目标列进行过滤提取,具体地,将过滤信息中的每个数字对应到目标列中,数字为1的即从目标列中提取该数据,数字为0
的则不提取该数据。示例地,若该过滤信息的某一段为10011,对应到目标列的相应位置中,存储的数据依次为:100、120、105、110、119。则经过过滤提取后,提取的数据为100、110和119,不难发现,120和105已经被过滤掉。当目标数据完成过滤操作时,并没有过滤错误时,计算单元还会对过滤后的结果进行封装(封装信息包括结果中元素(组)的个数,结果的长度、crc校验等等。
93.示例地,图7是本技术实施例中可计算存储设备对过滤结果进行封装的示例图。如图7所示,过滤后的数据被封装在中部,其数据头存储了数据的长度、个数以及编码方式等信息,数据尾存储的是crc校验码,crc,其英文为cyclic redundancy check,中文为循环冗余校验,是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。在数据尾加上crc校验码,用于校验数据在保存过程和后续的传输过程中是否出错。
94.另外,过滤后的数据暂存于可计算存储设备的缓存中,存储设备中的计算单元可以是cpu等通用设备,也可以是fpga等专用设备。
95.s603、向主机端发送过滤后的数据。
96.需要注意的是,当过滤操作发现错误时,计算单元放弃此次请求,清空已经完成的部分,并丢弃尚未完成的部分,同时返回给主机端相应的错误信息;当过滤操作无误时,由可计算存储设备中的存储控制器将封装后的结果回填到主机端用于存放结果的内存中。对于主机端而言,若主机端接收到返回的正确信息,则对返回数据进行crc校验,校验无误后,由数据库引擎进行后续处理;若主机端接收到返回的错误信息,则由主机端代为进行数据的过滤操作,操作完成后交于数据库引擎进行后续处理。该步骤是为了保证过滤操作的正常进行,从而使其不受可计算存储设备中不可抗因素的影响。
97.本技术实施例中,可计算存储设备接收来自主机端的过滤请求,再基于过滤信息对目标列进行过滤,过滤后向主机端发送过滤后的数据,由于在可计算存储设备中执行了过滤操作,减少了主机端cpu的压力。
98.基于上述实施例的基础,进一步的,执行步骤s602、基于过滤信息对目标列进行过滤之前,上述数据提取方法还可以包括:确定目标列的逻辑地址对应的数据块,根据目标列在逻辑地址中的地址偏移和长度,在数据块中确定目标列。
99.可计算存储设备接收到主机端的过滤请求后,由于该存储请求携带目标列的存储信息,且存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度,因此,由可计算存储设备中的存储控制器根据目标数据的逻辑地址从存储介质中读取相应的数据块,再由可计算存储设备中的计算单元根据目标列在数据块中的偏移和长度,截取相应的数据部分。该数据部分即为目标列,用于后续过滤操作。
100.一些实施例中,过滤请求还可以包括在主机端所申请的内存空间的大小。在上述向所述主机端发送过滤后的数据之前,数据提取方法还可以包括:确定过滤后的数据的大小小于或等于内存空间的大小。
101.一种可能的实施方式中,数据提取方法还可以包括:若过滤后的数据的大小大于内存空间的大小,则删除过滤后的数据,并返回错误信号给主机端,该错误信号用于指示主机端申请的内存空间不足。
102.也就是说,内存空间的大小用于与过滤后的数据大小进行比对,如果申请的内存
空间大小足够,则将过滤后的数据返回主机端;如果内存空间大小不够,则返回错误信号给主机端,并将过滤数据删除。
103.一些实施例中,过滤请求还可以包括在主机端申请的内存空间的地址。当需要返回过滤后的数据给主机端时,可计算存储设备通过所接收到的过滤请求中携带的内存空间的地址,将过滤后的数据保存到对应地址的内存空间中。
104.图8为本技术又一实施例提供的数据提取方法的流程图。该实施例将主机端和可计算存储设备作为一个系统对数据提取方法进行说明。如图8所示,该数据提取方法包括:
105.s801、主机端读取参考列,根据参考列内容和过滤条件生成过滤信息。
106.s802、主机端获取目标列中目标数据的数据类型、逻辑地址、偏移和长度,申请用于存放返回结果的内存,并连同过滤信息一起发给可计算存储设备。
107.s803、存储控制器根据目标数据的逻辑地址从存储介质中读取相应的数据块,然后由计算单元截取目标数据内容,并根据过滤信息进行数据的过滤,过滤后的数据暂存于存储设备的缓存中。
108.s804、是否发现错误。
109.若未发现错误,则执行步骤s805、按预定格式封装过滤后的数据,并将其返回主机端用于存储结果的内存中。
110.若发现有错误,则执行步骤s806、可计算存储设备放弃此次请求,并返回相应的错误码给主机端,由主机端完成此次过滤操作。
111.s807、判断目标列是否过滤完成。
112.若过滤完成,则执行步骤s808、过滤结束,主机端进行后续操作。
113.或者,若过滤未完成,则返回步骤s802。对于大批量的数据而言,一般地,可以采用多次过滤的方法,每次过滤操作对一部分数据进行过滤,过滤后,将这一部分过滤后的数据返回给主机端,并再次执行步骤s802,如此反复操作。当经过多次过滤后,若判断过滤完成,则将最后一次过滤后的数据发送给主机端,并不再执行步骤s802;对于单次过滤的数据,由于一次过滤后便完成过滤操作,因此不需要再次返回步骤s802。
114.示例地,若公司需要对工龄5年以上且月迟到次数少于4的员工进行奖励,在数据库中,每一行所代表的内容为该行对应员工的各人信息,因此在本技术中,存在两个参考列,参考列1的内容为工龄,参考列2的内容为迟到次数,同时,需要提取的数据为员工的姓名,因此,该示例中的目标列为员工的姓名。上述条件的选择条件为参考列1大于5且参考列2小于4,基于上述选择条件,生成过滤信息,并由可计算存储设备中的计算单元根据过滤信息,提取目标列中对应的员工姓名,然后将其封装并传输给主机端,用于后续处理。
115.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
116.图9为本技术一实施例提供的数据提取装置900的结构示意图。该数据提取装置应用于主机端。如图9所示,该数据提取装置包括:
117.获取模块901,用于从可计算存储设备中获取参考列;
118.确定模块902,用于根据参考列的内容和选择条件,确定过滤信息;
119.发送模块903,用于向可计算存储设备发送过滤请求,过滤请求携带过滤信息,过滤请求用于指示可计算存储设备基于过滤信息对目标列进行过滤;
120.接收模块904,用于接收来自可计算存储设备的过滤后的数据。
121.一种可能的实施方式中,确定模块902还用于:查询目标列在可计算存储设备中的存储信息,存储信息包括目标列的逻辑地址以及目标列在逻辑地址中的地址偏移和长度,根据存储信息以及过滤信息,生成所述过滤请求。
122.一种可能的实施方式中,确定模块902具体用于:根据目标列的大小和过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间,根据存储信息、过滤信息以及内存空间的地址和大小,生成过滤请求。
123.一种可能的实施方式中,确定模块902还用于:根据目标列的大小和所述过滤信息,确定对目标列进行过滤后的数据量,在主机端中,申请与数据量大小相同的内存空间。
124.本技术实施例提供的装置,可用于执行如前所述的实施例的方法,其实现原理和技术效果类似,在此不再赘述。
125.图10为本技术另一实施例提供的数据提取装置1000的结构示意图。本技术实施例提供的数据提取装置应用于可计算存储设备。如图10所示,该数据提取装置包括:
126.接收模块1001,用于接收来自主机端的过滤请求,所述过滤请求携带过滤信息,所述过滤请求用于指示所述可计算存储设备基于所述过滤信息对目标列进行过滤,所述过滤信息是根据参考列的内容和选择条件确定的;
127.过滤模块1002,用于基于所述过滤信息对目标列进行过滤;
128.发送模块1003,用于向所述主机端发送过滤后的数据。
129.一种可能的实施方式中,还包括确定模块(图中未标出),用于确定目标列的逻辑地址对应的数据块;根据目标列在逻辑地址中的地址偏移和长度,在数据块中确定目标列。
130.一种可能的实施方式中,过滤请求还包括在主机端所申请的内存空间的大小,确定模块还用于:确定过滤后的数据的大小小于或等于内存空间的大小。
131.一种可能的实施方式中,发送模块1003还用于:若过滤后的数据的大小大于内存空间的大小,则删除过滤后的数据,并返回错误信号给主机端,该错误信号用于指示主机端申请的内存空间不足。
132.本技术实施例提供的装置,可用于执行如前所述的实施例的方法,其实现原理和技术效果类似,在此不再赘述。
133.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
134.例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,asic),或,一个
circuits,简称:asic)中。当然,处理器和可读存储介质也可以作为分立组件存在于数据提取装置中。
142.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
143.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜