一种抽样查询的方法和装置与流程

文档序号:15346638发布日期:2018-09-04 22:50阅读:145来源:国知局
本申请涉及存储领域,更具体地,涉及存储领域中一种抽样查询的方法和装置。
背景技术
:在存储系统中,通过索引可以快速地查找数据。在分布式系统中,可以基于数据生成用于查询数据的索引信息。为了提升系统的读写性能,可以将索引信息分别存储至多个索引分区,这样,服务器在接收到客户端发送的查询请求后,可以同时在多个索引分区中查询满足该查询条件的数据,最后将多个索引分区中所有满足该查询条件的数据反馈给客户端。但是,当查询涉及的查询结果中的内容较多,并且,用户不需要关注所有能够满足查询条件的数据,这种查询方式的响应较长,影响用户体验。因此,亟需提供一种技术,能够提高用户体验。技术实现要素:本申请提供一种抽样查询的方法和装置,能够有效减少反馈查询结果的响应时延,提高用户体验。第一方面,提供了一种抽样查询的方法,该方法包括:获取查询条件;根据抽样查询比例,从m个索引分区中确定n个目标索引分区,以使得n与m的比值与所述抽样查询比例对应,其中,所述m个索引分区为根据所述查询条件确定的待查询索引分区,m为大于1的整数,n为大于或等于1的整数,并且,n小于m;根据所述查询条件在所述n个目标索引分区中查询数据,并根据查询到的数据生成查询结果,所述查询结果包括以下至少一项:所述m个索引分区中满足所述查询条件的数据的数量、所述n个目标索引分区中满足所述查询条件的数据;反馈所述查询结果。因此,本申请实施例提供的抽样查询的方法,一方面,通过抽样查询比例从基于查询条件确定的m个索引分区中确定部分索引分区(即,n个目标索引分区),进而可以仅在该n个目标索引分区中进行数据查询,生成包括该m个索引分区中满足该查询条件的数据的数量和该目标索引分区中满足所述查询条件的数据中的至少一项的查询结果,避免了现有技术中由于必须在该m个索引分区的查询结果响应后才反馈查询结果而导致的响应时延较长的问题,有效的减少了反馈查询结果的响应时延,提高了用户体验;另一方面,通过在该m个索引分区中的n个目标索引分区中进行数据查询,相比于现有技术中必须在该m个索引分区进行数据查询,本申请实施例占用了较少的计算资源,这样,可以使得设备在该m个索引分区中的其他索引分区中针对其他查询条件进行数据查询,增加了查询并发度。在一种可选的设计中,所述根据查询到的数据生成查询结果,包括:确定从所述n个目标索引分区中查询到的数据的数量;根据确定的数据的数量和所述抽样查询比例,估算所述m个索引分区中满足所述查询条件的数据的数量,所述查询结果包括所述m个索引分区中满足所述查询条件的数据的数量。在一种可选的设计中,所述方法还包括:获取所述m个索引分区所属的m个计算节点的负载信息,所述负载信息记录计算节点的负载;以及,所述根据抽样查询比例,从m个索引分区中确定n个目标索引分区,包括:根据所述m个计算节点的负载信息,从所述m个计算节点中选择负载最小的n个目标计算节点,所述n个目标计算节点对应的索引分区为所述n个目标索引分区。因此,本申请实施例提供的抽样查询的方法,通过抽样查询比例和对应于查询条件的计算节点的负载信息,将负载最小的n个目标计算节点中的索引分区确定为n个目标索引分区,可以使得包括该n个目标计算节点在内的计算节点的负载比较均衡,并且,通过该n个目标索引分区进行数据查询,也能更进一步提高查询速度。在一种可选的设计中,在所述根据查询到的数据生成查询结果之前,所述方法还包括:计算基于所述查询条件进行数据查询过程中消耗的计算资源的资源消耗值;在所述n个目标计算节点的负载中加上所述资源消耗值,得到所述n个目标计算节点的更新的负载信息。因此,本申请实施例提供的抽样查询的方法,设备在根据查询到的数据生成查询结果之前,通过在n个目标计算节点的负载中加上查询条件的资源消耗值,生成n个目标计算节点的更新的负载信息,可以使得设备为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。在一种可选的设计中,所述计算基于所述查询条件进行数据查询过程中消耗的计算资源的资源消耗值,包括:将所述查询条件分解为至少一个分词,所述至少一个分词中的每个分词对应一个查询节点;计算每个所述查询节点的资源消耗值;对所述至少一个分词对应的所有查询节点的资源消耗值进行求和,得到所述查询条件的资源消耗值。在一种可选的设计中,在所述根据查询到的数据生成查询结果之后,所述方法还包括:在所述n个目标计算节点的更新的负载信息所指示的负载中减去所述资源消耗值。因此,本申请实施例提供的抽样查询的方法,设备在根据查询到的数据生成查询结果之后,通过在n个目标计算节点的负载中减去查询条件的资源消耗值,以释放计算资源,可以使得设备为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。在一种可选的设计中,所述查询条件包括所述抽样查询比例。第二方面,提供了一种抽样查询的装置,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的单元。第三方面,提供了一种抽样查询的设备,所述设备包括处理器和存储器;所述存储器用于存储计算机执行指令,所述处理器和所述存储器之间通过内部连接通路互相通信。当所述设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述设备执行第一方面或第一方面的任意可能的实现方式中的各个过程。第四方面,提供了一种计算机存储介质,所述计算机存储介质包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行上述第一方面或第一方面的任意可能的实现方式中的各个过程。第五方面,提供了一种芯片,所述芯片包括处理器和存储器,所述处理器用于执行所述存储器存储的指令,当所述指令被执行时,所述处理器可以实现第一方面或第一方面的任意可能的实现方式中的各个过程。附图说明图1是适用于本申请实施例的数据存储系统的示意图。图2是现有技术中基于查询条件在多个索引分区中查询数据的示意图。图3是根据本申请实施例的抽样查询的方法的示意性流程图。图4是根据本申请实施例的抽样查询的装置的示意性框图。图5是根据本申请实施例的抽样查询的装置的示意性结构图。图6是根据本申请实施例的芯片的示意性结构图。具体实施方式下面将结合附图,对本申请中的技术方案进行描述。图1所示为适用于本申请实施例的数据存储系统的示意图。该数据存储系统100包括终端设备110和抽样查询的设备120,该终端设备可以通过有线或无线网络与设备120连接。终端设备110具有请求数据查询功能。具体而言,该终端设备110中可以安装具有能够请求数据查询功能的客户端,例如,该客户端可以为浏览器。该终端设备110可以是手机、平板电脑、电子阅读器、个人计算机、车载设备、可穿戴设备等设备。可选地,该终端设备110具有请求数据存储功能。抽样查询的设备120具有数据查询功能可以基于来自终端设备110发送的查询请求进行数据查询。该抽样查询的设备120可以为计算设备、存储设备或服务器等用于查询数据的设备。可选地,该抽样查询的设备120具有数据存储功能,该抽样查询的设备120中设置的数据库用于存储数据。可选地,数据库可以为hbase、mongo数据库(mongodatabase,mongodb)、分布型关系数据库服务(distributerelationaldatabaseservice,drds)、volt数据库(voltdatabase,voltdb)、和cassandra等分布式数据库。例如,该抽样查询的设备120可以基于用户通过该终端设备110的客户端发送的数据存储请求通过数据库存储数据。应理解,图1所示的数据存储系统仅为示意性说明,不应对本申请实施例构成限定。例如,数据存储系统可以仅包括抽样查询的设备120,该抽样查询的设备120不仅具有查询功能也具有请求数据查询功能。其中,该抽样查询的设备120可以通过抽样查询的设备120中的客户端接收用户输入的查询条件。为了描述方便,以抽样查询的设备120为存储设备为例来描述本申请实施例。下面,结合表1和表2首先对本申请实施例中的索引分区做一简单介绍。如
背景技术
所述,为了提升系统的读写性能,可以将基于一个数据表中的数据生成的索引信息分别存储至多个索引分区,每个索引分区中的索引信息是对应于数据表中的一部分数据的索引信息,任意两个索引分区的索引信息都不同,多个索引分区存储的索引信息的总和即为数据表对应的完整的索引信息。索引信息包括多个分词与多个数据标识的对应关系,一个分词对应至少一个数据标识。其中,分词即为对应的数据标识所标识的对象所具备的标签值。下面,简单介绍数据标识、标签以及标签值。数据标识所标识的对象可以为任何自然物,例如,数据标识所标识的对象可以是人、车、电话号码、虚拟用户账号等等。标签是一种互联网内容组织方式,用于表征对象的某一特征进而帮助人们描述和分类内容。比如,常见的标签有性别、学历、职业、颜色等等。通常情况下,标签是人为规定的内容。对应地,标签值即标签的具体取值。例如,若标签为性别,且性别为男,则标签值为男;若标签为学历,且学历为本科,则标签为学历的标签值为本科。表1所示为用于表示一个小区内的用户数据的一个数据表。数据表中的第1列为数据标识,第2列至第4列为数据标识所标识的对象所具有的不同标签值。这里,数据标识所标识的对象为小区内的用户,同时,将用户的id作为数据标识。以数据标识为a01为例,a01所标识的用户所具有的特性为:性别是男性、学历是本科、职业是学生。表1数据标识性别学历职业a01男本科学生a02女专科个体,网购达人b01男专科企业员工b02女本科学生c01男研究生学生c02女专科企业员工d01男研究生企业员工,网购达人d02男专科企业员工e01男研究生个体e02女专科个体f01男研究生教师f02女研究生企业员工存储设备将表1中的数据的存储完毕后,为了查询方便,可以为表1的数据建立相关索引信息,同时,为了加速查询速度,将索引信息分别存储在多个索引分区中。例如,假设,将表1中的数据的索引信息分别存储在3个索引分区中,即,索引分区#1、索引分区#2和索引分区#3,每个索引分区存储对应于一部分数据的索引信息。其中:索引分区#1是a01、a02、b01、b02所标识的数据的索引信息;索引分区#2是c01、c02、d01、d02所标识的数据的索引信息;索引分区#3是e01、e02、f01、f02所标识的数据的索引信息。表2所示为3个索引分区中每个索引分区中的索引信息。表2现有技术中,以存储设备接收终端设备通过客户端发送的查询请求为例,在一种实现方式中,如图2所示,终端设备的客户端可以直接将查询请求发送至存储设备中对应于查询请求的多个索引分区中,通过每个索引分区的索引信息查询数据,以查找满足查询条件的数据,待将该多个索引分区中查询完毕后,将该多个索引分区中满足该查询条件的数据反馈给终端设备。这种查询方式中,需要等待所有索引分区针对查询请求的查询结果响应后,才会向终端设备反馈最终的查询结果。但是,在实际处理过程中,由于各个索引分区的处理时间并不相同,最慢的一个索引分区的处理时间决定了反馈最终的查询结果的响应时延。当查询涉及的查询结果中的内容较多,并且,用户不需要关注所有能够满足查询条件的数据时,这种查询方式的响应较长,影响用户体验。例如,当查询条件是“地址:深圳”时,满足该查询条件的数据可能会有成千上文条,甚至更多,用户可能仅仅想知道满足该查询条件的数据的数量。因此,本申请提供了一种抽样查询的方法,有助于减少查询结果的响应时延,提高用户体验。图3所示为本申请实施例的抽样查询的方法的示意性流程图。该方法200的执行主体可以为抽样查询的设备中的存储设备,具体可以为存储设备内的处理器。下面,分别对图3中的各个步骤进行详细说明。在步骤s210中,获取查询条件。具体而言,存储设备可以接收终端设备的客户端发送的查询条件,或者,存储设备也可以直接接收该存储设备的客户端的发送给该存储设备的处理器的查询请求。该查询条件包括至少一个分词,当该查询条件包括多个分词时,该查询条件还包括用于连接相邻两个分词之间的逻辑运算符,其中,逻辑运算符包括“与”、“非”和“或”。例如,“与”可以表示为“&&”,“非”可以表示为“!”,“或”可以表示为“||”。例如,查询条件可以为:性别:男&&学历:本科&&职业:学生,即,表示需要查询的对象必须同时满足查询条件中的3个标签值或3个分词。在步骤s220中,根据抽样查询比例,从m个索引分区中确定n个目标索引分区,以使得n与m的比值与该抽样查询比例对应,其中,该m个索引分区为根据该查询条件确定的待查询索引分区,m为大于1的整数,n为大于或等于1的整数,并且,n小于m;在步骤s220中,根据抽样查询比例,从m个索引分区中确定n个目标索引分区,以使得n与m的比值与该抽样查询比例对应,其中,该m个索引分区为根据该查询条件确定的待查询索引分区,m为大于1的整数,n为大于或等于1的整数,并且,n小于m。具体而言,该抽样查询比例为针对该查询条件的一个数值,用于表示预设的进行数据查询的索引分区的数量与多个索引分区的数量的比值。在本申请实施例中,该多个索引分区即为该m个索引分区。这样,该存储设备基于该抽样查询比例,从该m个索引分区中确定进行数据查询的n个目标索引分区。可选地,该查询条件还包括用于指示基于该查询条件查询的目标数据表的元数据的指示信息。其中,该目标数据表的元数据包括用于指示该目标数据表中的数据的属性信息。例如,该目标数据表的元数据包括用于指示存储该目标数据表的索引信息的索引分区的信息。这样,存储设备可以基于该查询条件中的指示信息确定该目标数据表的元数据,进而,基于该目标数据表的元数据确定存储该目标数据表的索引信息的m个索引分区。下面,针对在本申请实施例中基于该抽样查询比例,从该m个索引分区中确定n个目标索引分区的两种方式(即,方式a和方式b)进行详细介绍。方式a根据该抽样查询比例,从该m个索引分区中确定进行数据查询的索引分区的数量n;将该m个索引分区中的n个索引分区作为该n个目标索引分区,其中,该n个目标索引分区可以是该m个索引分区中的任意n个索引分区。也就是说,存储设备基于该抽样查询比例,确定进行数据查询的索引分区的数量n后,可以在该m个索引分区中任意选择n个索引分区,该n个索引分区即为该n个目标索引分区。这里,基于该抽样查询比例确定进行数据查询的索引分区的数量有多种方式,下面,分别对每种方式做简单介绍。同时,为了描述方便,将抽样查询比例记为p。方式1其中,表示对(m*p)的结果向上取整。假设,抽样查询比例p=0.3,m为4,则0.3*4=1.2,则即目标索引分区的数量为2。方式2其中,表示对(m*p)的结果向下取整。假设,抽样查询比例p=0.3,m为4,则0.3*4=1.2,则即目标索引分区的数量为1。方式3对(m*p)的结果进行四舍五入。假设,抽样查询比例p=0.3,m为4,则0.3*4=1.2,对1.2进行四舍五入之后的结果为1,那么,目标索引分区的数量为1。需要说明的是,当(m*p)的结果小于1时,从实现角度来说,采用方式1,当(m*p)的结果大于或等于1时,可以采用上述3种方式中的任一种方式,本申请实施例不做任何限定。应理解,上述基于抽样查询比例确定进行数据查询的索引分区的数量的方式仅为示意性说明,不应对本申请实施例构成限定,任何基于抽样查询比例确定进行数据查询的索引分区的数量都在本申请的保护范围内。方式b在本申请实施例中,每个索引分区都有对应的计算节点,该m个索引分区对应m个索引分区,一个计算节点可以对应一个索引分区,计算节点用于在对应的索引分区中进行数据查询。那么,为了使得各个计算节点的负载比较均衡,也为了加快查询速度,本申请还提供了一种可选的实现方式。获取该m个索引分区所属的m个计算节点的负载信息,该负载信息记录计算节点的负载;根据该m个计算节点的负载信息,从该m个计算节点中选择负载最小的n个目标计算节点,该n个目标计算节点对应的索引分区为该n个目标索引分区。其中,计算节点的负载表示计算节点进行数据查询过程中消耗的计算资源,是实时负载。具体而言,存储设备可以通过上文所述的目标数据表的元数据获取用于指示该m个索引分区所属的计算节点的信息,这样,通过该计算节点的信息确定该m个索引分区属于哪些计算节点,进而,获取计算节点的负载信息;接着,存储设备根据该抽样查询比例确定进行数据查询的索引分区的数量n后,从该m个索引分区所属的计算节点的负载中选择负载最小的n个目标计算节点,从而,该n个目标计算节点对应的索引分区即为该n个目标索引分区。其中,该方式b中根据该抽样查询比例确定进行数据查询的索引分区的数量的具体过程可以参考上述方式a中根据该抽样查询比例确定进行数据查询的索引分区的数量的具体过程,此处不再赘述。作为示例而非限定,存储设备不仅可以选择m个索引分区所属的计算节点中负载最小的n个目标计算节点对应的索引分区作为该n个目标索引分区,也可以将计算节点小于第一负载阈值的计算节点对应的索引分区中的n个索引分区作为目标索引分区。可选地,负载小于或等于第一负载阈值的计算节点中的索引分区的个数大于或等于n。具体而言,存储设备可以基于该抽样查询比例和该m个索引分区所属的计算节点的负载确定该第一负载阈值。即,存储设备基于该抽样查询比例确定进行数据查询的索引分区的个数n,基于该m个索引分区所属的计算节点的负载和n确定该第一负载阈值,其中,负载低于或等于该第一负载阈值的计算节点中的索引分区的个数大于或等于n。这样,能够保证后续选择的目标计算节点中存在n个索引分区。这样,通过抽样查询比例和对应于查询条件的计算节点的负载信息共同确定目标索引分区,并且目标索引分区所属的目标计算节点的负载小于或等于第一负载阈值,可以使得包括目标计算节点在内的计算节点中的负载比较均衡,并且,通过目标索引分区进行数据查询,也能更进一步提高查询速度。在本申请实施例中,该抽样查询比例可以是存储设备中预设的值,也可以是存储设备通过终端设备接收到的用于指示该抽样查询比例的信息获取的值。若抽样查询比例是存储设备通过该用于指示该抽样查询比例的信息获取的,该用于指示该抽样查询比例的信息可以与查询条件同时承载于查询请求中。在步骤s240中,根据该查询条件在该n个目标索引分区中查询数据,并根据查询到的数据生成查询结果,该查询结果包括以下至少一项:该m个索引分区中满足该查询条件的数据的数量、该n个目标索引分区中满足该查询条件的数据。具体而言,如前所述,每个索引分区中存储有索引信息,一个索引分区中的索引信息包括多个分词与多个数据标识之间的对应关系,一个分词对应至少一个数据标识。这样,存储设备在确定该查询条件以及该目标索引分区后,可以根据该目标索引分区中的索引信息查询满足该查询条件的数据,以生成查询结果。下面,以该目标索引分区为一个索引分区为例,针对存储设备根据该查询条件在该目标索引分区中查询数据的具体过程进行说明。首先,将该查询条件解析为数据存储系统能够理解的查询语法树,其中,查询语法树中包括多个查询节点,每个查询节点包括一个分词和用于表示当前查询节点的分词与下一个查询节点的分词之间的逻辑关系的逻辑运算符。这里,将查询条件解析为查询语法树的具体实现过程可以参考现有技术的描述,此处不再赘述。其次,根据多个查询节点中的多个分词,通过目标索引分区中的索引信息查询满足每个分词的数据;再次,针对满足多个分词的数据进行逻辑运算,最终确定满足该查询条件的数据。需要说明的是,实际实现过程中,满足该查询条件的数据的内容可以通过对应的数据标识查找,因此,满足该查询条件的数据,也可以理解为满足该查询条件的数据标识。当然,满足该查询条件的数据也可以是满足该查询条件的数据的内容。继续以表2为例,假设,该目标索引分区为索引分区#1,查询条件为:{性别:男&&学历:本科&&职业:学生},对上述根据该查询条件在该目标索引分区中查询数据的过程做进一步说明。基于该查询条件计算的查询语法树中的查询节点包括3个查询节点:查询节点#1为{性别:男,与},分词为“性别:男”,逻辑运算符为“与”;查询节点#2为{学历:本科,与},分词为“学历:本科”,逻辑运算符为“与”;查询节点#3为{职业:学生,与},分词为“职业:学生”,逻辑运算符为“与”。通过索引分区#1中的索引信息查询满足每个分词的数据,其中,满足分词“性别:男”的数据标识包括:a01、b01,满足分词“学历:本科”的数据包括:a01、b02,满足分词“职业:学生”的数据标识包括:a01、b02。对上述3个分词对应的数据标识之间进行“与”运算,最终确定数据标识为a01的对象的数据满足该查询条件。若查询结果包括满足该查询条件的数据,可以通过上述方式将在目标索引分区中查询的满足该查询条件的数据作为该查询结果。若查询结果包括该m个索引分区中满足该查询条件的数据的数量,可以通过下述方式确定该m个索引分区中满足该查询条件的数据的数量。可选地,该根据查询到的数据生成查询结果,包括:确定从该n个目标索引分区中查询到的数据的数量;根据确定的数据的数量和该抽样查询比例,估算该m个索引分区中满足该查询条件的数据的数量,该查询结果包括该m个索引分区中满足该查询条件的数据的数量。该根据该查询条件在该目标索引分区中查询数据,以生成查询结果,包括:根据该查询条件查询该目标索引分区中满足该查询条件的数据的数量;根据该目标索引分区中满足该查询条件的数据的数量和第一数值l,计算该m个索引分区中满足该查询条件的数据的数量,其中,l=n/m。具体而言,存储设备通过上文中所描述的根据该查询条件在该目标索引分区中查询数据的方式确定满足该查询条件的数据的数量,将该目标索引分区中满足该查询条件的数据的数量与l相除,获得该m个索引分区中满足该查询条件的数据的数量(为了便于区分,记为q)。例如,抽样查询比例为0.3,m=6,通过上文所述的方式1确定的n=2,那么,l=2/6=1/3,该目标索引分区中满足该查询条件的数据的数量为20条,那么该m个索引分区中满足该查询条件的数据的数量q=20/(1/3)=60。作为示例而非限定,上述确定该m个索引分区中满足该查询条件的数据的数量仅为示意性说明,不应对本申请构成限定。例如,存储设备也可以直接将该目标索引分区中满足该查询条件的数据的数量与该抽样查询比例相除,从而估算该m个索引分区中满足该查询条件的数据的数量。进而,在s250中,向该终端设备反馈该查询结果。应理解,该查询结果包括该目标索引分区中满足该查询条件的数据和该m个索引分区中满足该查询条件的数据的数量中的至少一项。因此,本申请实施例提供的一种抽样查询的方法,一方面,通过抽样查询比例从对应于查询条件的m个索引分区中确定部分索引分区(即,目标索引分区),进而可以仅在该目标索引分区中进行数据查询,生成包括该m个索引分区中满足该查询条件的数据的数量和该目标索引分区中满足所述查询条件的数据中的至少一项的查询结果,避免了现有技术中由于必须在该m个索引分区的查询结果响应后才反馈查询结果而导致的响应时延较长的问题,有效的减少了反馈查询结果的响应时延,提高了用户体验;另一方面,通过在该m个索引分区中的部分索引分区中进行数据查询,比于现有技术中必须在该m个索引分区进行数据查询,本申请实施例占用了较少的计算资源,这样,可以使得存储设备在该m个索引分区中的其他索引分区中针对其他查询条件进行数据查询,增加了查询并发度。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。存储设备在该目标索引分区中查询数据之前,为了使得存储设备为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得索引分区所属的计算节点的负载趋于均匀化,有利于减少响应时延,本申请实施例还提供了一种可选的实现方式。在该根据查询到的数据生成查询结果之前,该方法还包括:计算基于该查询条件进行数据查询过程中消耗的计算资源的资源消耗值;在该n个目标计算节点的负载中加上该资源消耗值,得到该n个目标计算节点的更新的负载信息。即,对查询条件将要消耗的计算资源的资源消耗值进行估值计算,在该目标计算节点的负载中加上该资源消耗值,更新该目标计算节点的负载。或者,也可以这么理解,在目标索引分区中查询数据之前,及时更新目标计算节点的负载,为存储设备在该目标索引分区中查询数据预留有效的计算资源。同理,当在目标索引分区中查询完数据后,为了使得存储设备为后续的其他查询条件选择目标索引分区提供真实有效的数据,需要释放之前预留的计算资源,因此,本申请实施例还提供了一种可选的实现方式。在该根据该查询条件在该目标索引分区中查询数据,以生成查询结果之后,该方法还包括:在该n个目标计算节点的更新的负载信息所指示的负载中减去该资源消耗值。下面,针对本申请实施例中计算基于该查询条件进行数据查询过程中消耗的计算资源的资源消耗值的过程做一说明。可选地,该计算基于该查询条件进行数据查询过程中消耗的计算资源的资源消耗值,包括:将该查询条件分解为至少一个分词,该至少一个分词中的每个分词对应一个查询节点;计算每个该查询节点的资源消耗值;对该至少一个分词对应的所有查询节点的资源消耗值进行求和,得到该查询条件的资源消耗值。具体而言,将查询条件解析为查询语法树,查询语法树中包括多个查询节点,每个查询节点包括一个分词和用于表示当前查询节点的分词与下一个查询节点的分词之间的逻辑关系的逻辑运算符,可以通过第一公式计算每个查询节点的资源消耗值以及对该至少一个查询节点的资源消耗值求和,从而获得该查询条件的资源消耗值。其中,第一公式可以为:(tagk)表示一个分词,例如,上文所述的“学历:本科”、“性别:男”以及“职业:学生”等;cost(tagk)表示针对分词(tagk)的资源消耗值,cost(tagk)的值和分词(tagk)对应的数据标识的大小以及分词对应的逻辑运算符有关;表示对n个cost(tagk)求和;t表示针对查询条件的资源消耗值。例如,继续以查询条件{性别:男&&学历:本科&&职业:学生}为例,基于该查询条件分解的查询节点包括:查询节点#1为{性别:男,与},分词为“性别:男”,逻辑运算符为“与”;查询节点#2为{学历:本科,与},分词为“学历:本科”,逻辑运算符为“与”;查询节点#3为{职业:学生,与},分词为“职业:学生”,逻辑运算符为“与”。基于cost(tagk),计算得到的每个查询节点的资源消耗值如下:“学历:本科”在“与”条件下的计算资源消耗值:200;“性别:男”在“and”条件下的计算资源消耗值:1000“职业:学生”在“and”条件下的计算资源消耗值:150。这样,针对该查询条件的资源消耗值为t=200+1000+150=1350。因此,本申请实施例提供的抽样查询的方法,一方面,通过抽样查询比例从对应于查询条件的m个索引分区中确定部分索引分区(即,目标索引分区),进而可以仅在该目标索引分区中进行数据查询,生成包括该m个索引分区中满足该查询条件的数据的数量和该目标索引分区中满足该查询条件的数据中的至少一项的查询结果,避免了现有技术中由于必须在该m个索引分区的查询结果响应后才反馈查询结果而导致的响应时延较长的问题,有效的减少了反馈查询结果的响应时延,提高了用户体验;另一方面,通过在该m个索引分区中的部分索引分区中进行数据查询,相比于现有技术中必须在该m个索引分区进行数据查询,本申请实施例占用了较少的计算资源,这样,可以使得存储设备在该m个索引分区中的其他索引分区中针对其他查询条件进行数据查询,增加了查询并发度;另一方面,通过抽样查询比例和对应于查询条件的计算节点的负载信息共同确定目标索引分区,并且目标索引分区所属的目标计算节点的负载小于或等于第一负载阈值,可以使得包括目标计算节点在内的计算节点的负载比较均衡,并且,通过目标索引分区进行数据查询,也能更进一步提高查询速度;另一方面,存储设备在目标索引分区中查询数据之前,通过在该目标索引分区所属的目标计算节点的负载中加上查询条件的资源消耗值,生成更新的目标计算节点的负载信息,可以使得存储设备为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。再一方面,存储设备在目标索引分区中查询完数据之后,通过在该目标索引分区所属的目标计算节点的负载中减去查询条件的资源消耗值,以释放计算资源,可以使得该存储设备为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。以上,结合图1至图3详细描述了本申请实施例的抽样查询的方法,下面,结合图4和图5描述根据本申请实施例的抽样查询的装置,方法实施例所描述的技术特征同样适用于以下装置实施例。图4所示为根据本申请实施例的抽样查询的示意性框图。如图4所示,该装置包括处理单元310,该处理单元310用于:获取查询条件;根据抽样查询比例,从m个索引分区中确定n个目标索引分区,以使得n与m的比值与该抽样查询比例对应,其中,该m个索引分区为根据该查询条件确定的待查询索引分区,m为大于1的整数,n为大于或等于1的整数,并且,n小于m;根据该查询条件在该n个目标索引分区中查询数据,并根据查询到的数据生成查询结果,该查询结果包括以下至少一项:该m个索引分区中满足该查询条件的数据的数量、该n个目标索引分区中满足该查询条件的数据;反馈该查询结果。因此,本申请实施例提供的抽样查询的装置,一方面,通过抽样查询比例从对应于查询条件的m个索引分区中确定部分索引分区(即,目标索引分区),进而可以仅在该目标索引分区中进行数据查询,生成包括该m个索引分区中满足该查询条件的数据的数量和该目标索引分区中满足该查询条件的数据中的至少一项的查询结果,避免了现有技术中由于必须在该m个索引分区的查询结果响应后才反馈查询结果而导致的响应时延较长的问题,有效的减少了反馈查询结果的响应时延,提高了用户体验;另一方面,通过在该m个索引分区中的部分索引分区中进行数据查询,相比于现有技术中必须在该m个索引分区进行数据查询,本申请实施例占用了较少的计算资源,这样,可以使得该装置在该m个索引分区中的其他索引分区中针对其他查询条件进行数据查询,增加了查询并发度。可选地,该处理单元310具体用于:确定从该n个目标索引分区中查询到的数据的数量;根据确定的数据的数量和该抽样查询比例,估算该m个索引分区中满足该查询条件的数据的数量,该查询结果包括该m个索引分区中满足该查询条件的数据的数量。可选地,该处理单元310还用于:获取该m个索引分区所属的m个计算节点的负载信息,该负载信息记录计算节点的负载;以及,该处理单元310具体用于:根据该m个计算节点的负载信息,从该m个计算节点中选择负载最小的n个目标计算节点,该n个目标计算节点对应的索引分区为该n个目标索引分区。因此,本申请实施例提供的抽样查询的装置,通过抽样查询比例和对应于查询条件的计算节点的负载信息共同确定目标索引分区,并且目标索引分区所属的目标计算节点的负载小于或等于第一负载阈值,可以使得包括目标计算节点在内的计算节点的负载比较均衡,并且,通过目标索引分区进行数据查询,也能更进一步提高查询速度。可选地,该处理器310还用于:计算基于该查询条件进行数据查询过程中消耗的计算资源的资源消耗值;在该n个目标计算节点的负载中加上该资源消耗值,得到该n个目标计算节点的更新的负载信息。因此,本申请实施例提供的抽样查询的装置,该装置在目标索引分区中查询数据之前,通过在该目标索引分区所属的目标计算节点的负载中加上查询条件的资源消耗值,生成更新的目标计算节点的负载信息,可以使得该装置为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。可选地,该处理单元310具体用于:将该查询条件分解为至少一个分词,该至少一个分词中的每个分词对应一个查询节点;计算每个该查询节点的资源消耗值;对该至少一个分词对应的所有查询节点的资源消耗值进行求和,得到该查询条件的资源消耗值。在一种可选的设计中,在该根据该查询条件在该目标索引分区中查询数据,以生成查询结果之后,该方法还包括:在该n个目标计算节点的更新的负载信息所指示的负载中减去该资源消耗值。因此,本申请实施例提供的抽样查询的装置,该装置在目标索引分区中查询完数据之后,通过在该目标索引分区所属的目标计算节点的负载中减去查询条件的资源消耗值,以释放计算资源,可以使得该装置为后续的其他查询条件选择目标索引分区时提供真实有效的数据,从而尽可能使得计算节点的负载趋于均匀化,有利于减少响应时延。该装置300可以对应(例如,可以配置于或本身即为)上述方法200中描述的抽样查询的设备(例如,存储设备),并且,该装置300中各模块或单元分别用于执行上述方法200中抽样查询的设备所执行的各动作或处理过程,这里,为了避免赘述,省略其详细说明。在本申请实施例中,该装置300可以为抽样查询的设备(例如,存储设备),图5示出了根据本申请实施例的抽样查询的设备400的示意性结构图。如图5所示,该抽样查询的设备400可以包括:处理器410和存储器420,处理器410和存储器420通信连接。该存储器420可以用于存储指令,该处理器410用于执行该存储器420存储的指令。此种情况下,图4所示的装置300中的处理单元310可以对应图5所示的抽样查询的设备400中的处理器410。在本申请实施例中,该装置300可以为安装在抽样查询的设备(例如,存储设备)中的芯片(或者说,芯片系统),图6示出了根据本申请实施例的芯片的示意性结构图。该芯片500可以包括:处理器510和存储器520,该处理器510以及存储器520之间通过内部连接通路互相连接。该处理器510用于执行该存储器520中的代码。当该代码被执行时,该处理器510可以实现方法实施例中由抽样查询的设备执行的方法200。为了简洁,这里不再赘述。此情况下,图4所示的装置300中的处理单元310可以对应图6所示的芯片500中的处理器510。应注意,本申请实施例上述方法实施例可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1