CN108255871A - 一种数据查询方法及数据查询节点 - Google Patents
一种数据查询方法及数据查询节点 Download PDFInfo
- Publication number
- CN108255871A CN108255871A CN201611249521.6A CN201611249521A CN108255871A CN 108255871 A CN108255871 A CN 108255871A CN 201611249521 A CN201611249521 A CN 201611249521A CN 108255871 A CN108255871 A CN 108255871A
- Authority
- CN
- China
- Prior art keywords
- data
- objects
- value
- data slices
- aggregation
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000002776 aggregation Effects 0.000 claims description 180
- 238000004220 aggregation Methods 0.000 claims description 180
- 238000001914 filtration Methods 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 10
- 238000000638 solvent extraction Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 abstract description 32
- 238000003860 storage Methods 0.000 abstract description 18
- 238000006116 polymerization reaction Methods 0.000 abstract description 9
- 230000000379 polymerizing effect Effects 0.000 abstract 2
- 230000006870 function Effects 0.000 description 49
- 238000010586 diagram Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 229910010888 LiIn Inorganic materials 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据查询方法及数据查询节点,其方法包括:按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片;将多个数据切片中包含的对象划分为第一对象和第二对象;若第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;向多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取目标数量的第一对象确定为目标对象。采用本申请,能够降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据查询方法及数据查询节点。
背景技术
伴随着计算机技术、通信技术、互联网技术的发展,数据积累的越来越多。面对激增的数据,人们希望能够挖掘出有价值的信息,从而可以更好地利用这些数据为人们服务,其中,Top-K查询在搜索引擎、电子商务等领域有着广泛的应用,而Top-K查询是从海量数据中返回最符合需求的前K个结果。
由于数据量的急剧增长,实际应用中多采用分布式存储系统,包括多个数据缓存节点和一个数据查询节点,在进行分布式Top-K查询的过程中,将各个数据缓存节点的数据传输至数据查询节点,以便于数据查询节点从中选出最符合需求的前K个结果。最简单的方案是将各个数据缓存节点的数据全部发送至数据查询节点,然而这样使得传输的数据达到百万级别,而数据缓存节点和数据查询节点之间的传输带宽是有一定限制的,在数据传输总量较大的情况下,数据传输效率较低,影响了数据查询效率,而在另一种方案中,数据查询节点以逐个数据的获取方式从各个数据缓存节点获取数据,通过渐进的方案构建最终的K个结果,然而采用这种方式获得的K个结果会有大量的数据传输次数,也影响了数据查询效率。
发明内容
本申请实施例提供一种数据查询方法及数据查询节点,能够通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
本申请实施例第一方面提供了一种数据查询方法,包括:
按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片,其中,所述获取规则包括过滤门限和获取数量,每个数据切片所包含对象的特征值大于所述过滤门限且所包含对象的数量不大于所述获取数量;
将所述多个数据切片中包含的对象划分为第一对象和第二对象,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象;
若所述第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;
向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
其中,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
在本申请实施例的第一方面中,数据查询节点能够通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
在一个可选的实施例中,所述将所述多个数据切片中包含的对象划分为第一对象和第二对象,包括:
按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象。
可选的,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象。通过第一候选条件,能够从获取到的多个对象中筛选出更加符合需求的候选对象,可以将这里的第一对象视作候选对象,进而再从多个第一对象中挑选出目标对象。
在一个可选的实施例中,所述按照轮次访问规则,将所述多个数据切片中包含的对象划分为第一对象和第二对象,包括:
若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),一个数据切片确定一个取值对象,所述数据切片i为所述多个数据切片中的每一个数据切片;
将数据切片i中排列在取值对象COi(p-1)后面的第一个对象标记为已访问,其中,设数据切片i中排列在取值对象COi(p-1)后面的第一个对象为Oi(p-1);
检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1);
若存在,则将所述多个数据切片除数据切片i之外的数据切片中的对象Oi(p-1)标记为已访问;
在标记为已访问的对象中,按照第四候选条件确定出第p次查询所述多个数据切片的取值对象COi(p);
根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限;
在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值;
将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象;
将所述当前获取到的全部数据切片中除所述第一对象之外的对象确定为第二对象;
其中,所述第四候选条件为:所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问。
在一个可选的实施例中,若第p次查询为第1次查询,则将数据切片i中的第一个对象标记为已访问,并触发执行检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)的步骤。
在一个可选的实施例中,所述在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值,包括:
从当前获取到的全部数据切片中,获取所述多个数据切片中每个被标记为已访问的对象的全部特征值;
根据所述每个被标记为已访问的对象的全部特征值,按照预设聚合函数计算获得所述每个对象的聚合下限值。
在一个可选的实施例中,还包括:
若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象;
若存在未被标记为已访问的对象,则采用对查询次数p加1获得的数值更新查询次数p,并触发执行若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),所述多个数据切片进行(p+1)查询的步骤;
若不存在未被标记为已访问的对象,则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片;
若不存在,则将满足第三候选条件的第二对象确定为第一对象,并触发执行根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象步骤。
在一个可选的实施例中,所述将满足第三候选条件的第二对象确定为第一对象,包括:
根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
将聚合上限值大于第二选择门限的第二对象确定为第一对象。
在一个可选的实施例中,所述第二选择门限是由所述多个数据缓存节点的数量和过滤门限的乘积确定的。
在一个可选的实施例中,所述判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片之后,还包括:
若存在,则根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发执行按照获取规则向多个数据缓存节点获取多个数据切片的步骤。
在一个可选的实施例中,所述第二对象按照聚合下限值降序排列组成候选队列;
所述根据每个所述第一对象和每个所述第二对象更新所述过滤门限,包括:
确定所述第一对象的数量;
将所述目标数量减去所述第一对象的数量得到的数值确定为缺少数量;
获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值;
将排列在所述缺少数量位置的对象的聚合下限值除以数据缓存节点的数量得到的数值,确定为更新后的过滤门限。
在一个可选的实施例中,所述将满足第二候选条件的第二对象确定为第一对象,包括:
根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
将聚合上限值大于第一选择门限的第二对象确定为第一对象。
在一个可选的实施例中,所述根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,包括:
在从目标数据缓存节点获得到的全部数据切片所包含的对象中,查找是否存在所述第二对象,其中,所述目标数据缓存节点为所述多个数据缓存节点中的任意一个;
若不存在,则在从目标数据缓存节点获得到的全部数据切片中选择最小的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
若存在,则将所述第二对象在所述目标缓存节点中的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
根据所述第二对象针对每个数据缓存节点的特征值,按照所述预设聚合函数计算获得所述第二对象的聚合上限值。
本申请实施例第二方面提供了一种数据查询节点,包括:
获取模块,用于按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片,其中,所述获取规则包括过滤门限和获取数量,每个数据切片所包含对象的特征值大于所述过滤门限且所包含对象的数量不大于所述获取数量;
划分模块,用于将所述多个数据切片中包含的对象划分为第一对象和第二对象,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象;
确定模块,用于若所述第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;
选取模块,用于向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
其中,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
在一个可能的设计中,数据查询节点的结构中包括处理器和收发器,所述处理器用于执行本申请第一方面提供的数据查询方法。可选的,还可以包括存储器,所述存储器用于存储支持数据查询节点执行上述方法的应用程序代码,所述处理器被配置为用于执行所述存储器中存储的应用程序。
在本申请实施例的第二方面中,数据查询节点能够通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
第三方面,本申请实施例提供了一种计算机存储介质,用于储存为上述数据查询节点所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
本申请实施例中,数据查询节点和数据缓存节点的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
在本申请实施例中,通过按照获取规则向多个数据缓存节点获取多个数据切片,并将多个数据切片中包含的对象划分为第一对象和第二对象,其中,第一对象为满足第一候选条件的对象,第二对象为多个数据切片包含的对象中除第一对象之外的对象;若第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,接着向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取目标数量的第一对象确定为目标对象。通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
附图说明
图1是本申请实施例提供的一种可能的分布式数据管理系统示意图;
图2是本申请实施例提供的一种数据查询方法的流程示意图;
图3是本申请实施例提供的另一种数据查询方法的流程示意图;
图4是本申请实施例提供的一种数据查询方法的示例图;
图5是本申请实施例提供的一种数据查询节点的模块化示意图;
图6是本申请实施例提供的一种划分模块的模块化示意图;
图7是本申请实施例提供的一种数据查询节点的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
请参见图1,为本申请实施例提供的一种可能的分布式数据管理系统示意图,如图1所示,包含m个数据缓存节点和1个数据查询节点,每个数据缓存节点定义为i,i=1,2,…,m,每个数据缓存节点对应一个有序队列Li,Li中包含不同对象对同一个特征的特征值,其结构如下:
(d,si(d));
d∈D,D为某类对象的全集;si(d)表示d在Li中的特征值。在同一个Li中,d互异,且各个d按si(d)降序排列。
Top-K查询是数据查询节点从m个数据缓存节点中选出最符合需求的前K个对象,这里的需求是根据si(d)来确定。例如,需求是通过定义在数据查询节点上的聚合函数F来确定的,如常见的聚合函数包括Sum(求和),Max(求最大值),Min(求最小值),AVG(求均值)等,则F(s1(d),s2(d),s3(d)...sm(d))表示对象d在整个有序列表(包括L1,L2,L3...Lm)中的一个聚合值。
在图1所示的网络结构图中,现有的技术方案存在由于数据传输效率较低或数据传输次数较多而影响数据查询效率的问题,在本申请实施例中,数据查询节点按照获取规则向m个数据缓存节点获取m个数据切片,向每个数据缓存节点获取一个数据切片,其中,获取规则包括过滤门限T和获取数量H,每个数据切片所包含对象的特征值大于过滤门限且所包含对象的数量不大于H;将多个数据切片中包含的对象划分为第一对象和第二对象,其中,第一对象为满足第一候选条件的对象,第二对象为多个数据切片包含的对象中除第一对象之外的对象;若第一对象的数量大于或等于目标数量K,则将满足第二候选条件的第二对象确定为第一对象;向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取K个第一对象确定为目标对象。通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
在本申请实施例中,数据缓存节点或数据查询节点可以为具备存储和通信功能的后台数据服务设备,本申请实施例对数据缓存节点和数据查询节点不做限定。
请参见图2,为本申请实施例提供了一种数据查询方法的流程示意图,如图2所示,本申请实施例的所述数据查询方法包括步骤101至步骤104。其中,
101,按照获取规则向多个数据缓存节点获取多个数据切片。
具体的,所述数据查询节点向多个数据缓存节点中每个数据缓存节点获取一个数据切片,所述获取规则包括过滤门限T和获取数量H,每个数据切片所包含对象的特征值大于过滤门限T且所包含对象的数量不大于获取数量H。
进一步的,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
可行的方案中,所述数据查询节点向每个数据缓存节点发送过滤门限T和获取数量H;每个数据缓存节点向筛选出特征值大于过滤门限T的对象,若特征值大于过滤门限T的对象的数量大于或等于获取数量H,且由于每个数据缓存节点的多个对象是按照特征值降序排列的,因此确定该数据缓存节点的数据切片的对象为排列最面前的H个对象;若特征值大于过滤门限T的对象的数量小于获取数量H,则确定该数据缓存节点的数据切片的对象为大于过滤门限T的对象。
可选的,在确定出目标数量K个目标对象的过程中,过滤门限T可以为一个固定值,或者,可以为实时更新的值。所述目标数量K为所述数据查询节点最终所要获取的目标对象的数量。
102,将所述多个数据切片中包含的对象划分为第一对象和第二对象。
具体的,所述数据查询节点将所述多个数据切片中包含的对象划分为第一对象和第二对象。其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象。通过第一候选条件,能够从获取到的多个对象中筛选出更加符合需求的候选对象,可以将这里的第一对象视作候选对象,进而再从多个第一对象中挑选出目标对象。
可选的,所述数据查询节点在当前获取到的全部数据切片中,可以计算所述多个数据切片中每个对象的聚合下限值;将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象;将所述当前获取到的全部数据切片中出所述第一对象之外的对象确定为第二对象。其中,聚合下限值的具体及计算方式可以参见图3所示实施例中的详细介绍。
103,若所述第一对象的数量大于或等于所述目标数量,则将满足第二候选条件的第二对象确定为第一对象。
具体的,由于所述数据查询节点是为了获取目标数量的对象,因此,所述数据查询节点在将获取到的多个数据切片所包含的全部对象划分为第一对象或第二对象之后,对第一对象的数量进行检测,若所述第一对象的数量大于或等于所述目标数量,则所述数据查询节点从当前确定的第二对象中筛选出满足第二候选条件的第二对象,确定为第一对象,以增加候选对象的数量,能够增强所确定的目标对象的准确性。
104,向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
具体的,所述数据查询节点将当前确定的全部第一对象发送至每个数据缓存节点,以获取每个第一对象在每个数据缓存节点中的特征值;每个数据缓存节点在接收到所述数据查询节点发送的全部第一对象之后,查询每个第一对象在该数据缓存节点中的特征值,并将查询到的每个第一对象的特征值一并发送至所述数据查询节点。
所述数据查询节点根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值。
进一步,所述数据查询节点按照真实聚合值对全部的第一对象进行排列,并选取队列中前目标数量K个作为目标对象。
需要说明的是,本申请实施例的预设聚合函数可以包括但不限定于Sum(求和),Max(求最大值),Min(求最小值),AVG(求均值)等。
在本申请实施例中,通过按照获取规则向多个数据缓存节点获取多个数据切片,并将多个数据切片中包含的对象划分为第一对象和第二对象,其中,第一对象为满足第一候选条件的对象,第二对象为多个数据切片包含的对象中除第一对象之外的对象;若第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,接着向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取目标数量的第一对象确定为目标对象。通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
请参见图3,为本申请实施例提供了另一种数据查询方法的流程示意图,如图3所示,本申请实施例的所述数据查询方法包括步骤201至步骤210。
201,按照获取规则向多个数据缓存节点获取多个数据切片。
具体的,所述数据查询节点向多个数据缓存节点中每个数据缓存节点获取一个数据切片,所述获取规则包括过滤门限T和获取数量H,每个数据切片所包含对象的特征值大于过滤门限T且所包含对象的数量不大于获取数量H。
进一步的,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
可行的方案中,所述数据查询节点向每个数据缓存节点发送过滤门限T和获取数量H;每个数据缓存节点向筛选出特征值大于过滤门限T的对象,若特征值大于过滤门限T的对象的数量大于或等于获取数量H,且由于每个数据缓存节点的多个对象是按照特征值降序排列的,因此确定该数据缓存节点的数据切片的对象为排列最面前的H个对象;若特征值大于过滤门限T的对象的数量小于获取数量H,则确定该数据缓存节点的数据切片的对象为大于过滤门限T的对象。
202,按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象。
其中,所述数据查询节点可以对所述多个数据切片执行一次或者多次查询。对于每次查询均可以对所述多个数据切片中包含的对象进行划分。具体可以按照以下步骤G1至G9实现。
G1、若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1)。
其中,对多个数据切片中的每一个数据切片确定一个取值对象,这里的所述数据切片i为所述多个数据切片中的每一个数据切片。
进一步的,若第p次查询为第1次查询,则将数据切片i中的第一个对象标记为已访问,并触发执行G3检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)的步骤。
G2、将数据切片i中排列在取值对象COi(p-1)后面的第一个对象标记为已访问,其中,设数据切片i中排列在取值对象COi(p-1)后面的第一个对象为Oi(p-1)。
G3、检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)。
G4、若存在,则将多个数据切片除数据切片i之外的数据切片中的对象Oi(p-1)标记为已访问。
G5、在标记为已访问的对象中,按照第四候选条件确定出第p次查询所述多个数据切片的取值对象COi(p)。
其中,所述第四候选条件为:所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问。
G6、根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限。
G7、在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值。
可选的,所述数据查询节点可以从当前获取到的全部数据切片中,获取所述多个数据切片中每个被标记为已访问的对象的全部特征值;根据所述每个被标记为已访问的对象的全部特征值,按照预设聚合函数计算获得所述每个对象的聚合下限值。
举例来说,以图1描述为基础,对于被标记为已访问的对象d,定义聚合下限值为lb,预设聚合函数以SUM为例,则被标记为已访问的对象d的聚合下限值为:
其中,si(d)表示d在从数据缓存节点i获取到的全部数据切片中的特征值,如果从数据缓存节点i获取到全部数据切片中不包含d,则Si(d)为0。
可选的,若在前P-1次已经计算到对象d的一个聚合下限值,且在第P次获取的多个数据切片中有对象d的特征值,则在第P次计算对象d的聚合下限值时,可以将前P-1次所计算到的对象d的聚合下限值按照预设聚合函数结合第P次的对象d的特征值,计算得到新的聚合下限值。
例如,对于预设聚合函数以SUM的情况:
lbP(d)=lbP-1(d)+SPi(d)
其中,lbP(d)为第P次计算的对象d的聚合下限值,lbP-1(d)为前P-1次所计算到的对象d的聚合下限值,SPi(d)为第N次对象d在数据切片i中的特征值,若在第P次的多个数据切片中有对象d的多个特征值,则在SUM中增加每个对象d的多个特征值。
可选的,设所述多个数据切片中被标记为已访问的对象为X,则所述数据查询节点从各个数据缓存节点获取到的数据切片中查找是否存在对象X;若存在,则获取X对应的特征值,若某个数据缓存节点中不存在对象X,则确定对象X在该个数据缓存节点中特征值为默认值。最后,在根据确定的对象X的全部特征值,计算对象X的聚合下限值。在本申请实施例中,默认值被设置为0,但默认值还可以设置为其他非0的数值,对于默认值还可以设置为其他非0的数值的情况,在计算该对象X的聚合下限值的过程中,需要将默认值一并考虑。
G8、将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象。
G9、将所述当前获取到的全部数据切片中除所述第一对象之外的对象确定为第二对象。
需要说明的是,在对所述多个数据切片每执行一次查询之后,执行步骤203,并根据步骤203的判断结果而继续执行后续的步骤。
203,判断第一对象的数量是否大于或等于所述目标数量。
具体的,由于所述数据查询节点是为了获取目标数量的对象,因此,所述数据查询节点在对所述多个数据切片每执行一次查询之后,对第一对象的数量进行检测,判断第一对象的数量是否大于或等于所述目标数量。
若第一对象的数量大于或等于所述目标数量,则执行步骤204。
若第一对象的数量小于所述目标数量,则所述数据查询节点仍有可能还需要再获取数据切片,并执行步骤207。
204,若是,则将满足第二候选条件的第二对象确定为第一对象。
具体的,若第一对象的数量大于或等于所述目标数量,从当前确定的第二对象中筛选出满足第二候选条件的第二对象,确定为第一对象。
可行的方案中,将满足第二候选条件的第二对象确定为第一对象具体可以按照以下步骤C1和C2实现。
C1、根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值。
C2、将聚合上限值大于第一选择门限的第二对象确定为第一对象。
其中,所述聚合上限值为按照所述预设聚合函数确定的最大可能值,聚合上限值的计算方式可以参考后续介绍,这里的第一选择门限与步骤202中当前计算到的第一选择门限相同。在第一对象的数量大于或者等于目标数量的情况下,能够将第二对象中有可能成为目标对象的也从中筛选出来。
205,向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值。
具体的,所述数据查询节点将当前确定的全部第一对象发送至每个数据缓存节点,以获取每个第一对象在每个数据缓存节点中的特征值;每个数据缓存节点在接收到所述数据查询节点发送的全部第一对象之后,查询每个第一对象在该数据缓存节点中的特征值,并将查询到的每个第一对象的特征值一并发送至所述数据查询节点。
所述数据查询节点根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值。
206,按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
具体的,所述数据查询节点按照真实聚合值对全部的第一对象进行排列,并选取队列中前目标数量K个第一对象作为目标对象。
207,若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象。
具体的,若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象。
若存在未被标记为已访问的对象,则执行步骤202按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象的步骤,以对多个数据切片执行下一次查询。
若不存在未被标记为已访问的对象,即所述多个数据切片中的每个对象均被标记为已访问,则执行步骤208。
针对步骤202至步骤207所涉及的方案举例来说,假设数据缓存节点的数量为3,从3个数据缓存节点获取3个数据切片,且各个数据切片所包含的对象是根据获取规则而确定的,3个数据切片分别为:
首先,对3个数据切片进行第一次查询,将数据切片1、数据切片2和数据切片3中第一个对象标记为已访问,即将O1、O2、O3标记为已访问;在数据切片2和数据切片3中查找是否存在O1,由于切片3中有O1,因此将数据切片3中的O1标记为已访问;同理,在数据切片1和数据切片3中查找是否存在O2,可以看出数据切片1和数据切片3中不存在O2;同理,在数据切片1和数据切片2中查找是否存在O3,可以看出数据切片1中存在O3,并将数据切片1中的O3标记为已访问。
在遍历查询之后,确定当前被标记为已访问的对象和在各个数据切片中的位置,根据第四候选条件确定各个数据切片中的取值对象,由于第四候选条件所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问,因此数据切片1中的取值对象为O3;数据切片2中的取值对象为O2,数据切片3中的取值对象为O1。根据确定的取值对象的特征值,计算第一选择门限。第一选择门限ST为:
当前被标记为已访问的对象有O1、O2、O3,假设在上一次按照获取规则获取的数据切片中,计算得到O2的聚合下限值为11,以及上一次获取的数据切片中不存在O1和O3,预设聚合函数以SUM为例。因此当前计算到的:
可以看出,O1、O2、O3中并没有大于或等于第一选择门限的对象,因此将O1、O2、O3均确定为第二对象。
由于第一对象的数量并没有增加,且若判断出第一对象的数量小于目标数量,则对所述多个数据切片执行第2次查询。若判断出第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,并执行205和206步骤。
在对多个数据切片执行第2次查询的过程中,将数据切片1中O5的标记为已访问、将数据切片2中的O4标记为已访问、将数据切片3中的O7标记为已访问,按照执行流程,可以将数据切片2中的O7标记为已访问;第2次查询确定的取值对象为O5、O4、O7;第2次查询确定的第一选择门限为:
当前被标记为已访问的对象有O1、O2、O3、O4、O5、O7,假设在上一次按照获取规则获取的数据切片中,计算得到O2的聚合下限值为11,计算得到O5的聚合下限值为20,计算得到O7的聚合下限值为12,以及上一次获取的数据切片中不存在O1、O3和O4,预设聚合函数以SUM为例。因此当前计算到的:
并获取上一次查询计算到的O1、O2、O3聚合下限值,可以看出,O5、O7大于或等于最新计算到的第一选择门限(ST=25),因此将O5、O7确定为第一对象,O1、O2、O3和O4均确定为第二对象。
若判断出第一对象的数量小于目标数量,由于多个数据切片中还存在未标记为已访问的对象,则对所述多个数据切片执行第3次查询。若判断出第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,并执行205和206步骤。
在对多个数据切片执行第3次查询的过程中,将数据切片1中O6的标记为已访问、将数据切片2中的O6标记为已访问,由于数据切片3中的对象全部被标记为已访问,则将数据切片3中取值对象设为O7,按照执行流程,无需对其他对象进行标记;第3次查询确定的取值对象为O6、O6、O7;第3次查询确定的第一选择门限为:
当前被标记为已访问的对象有O1、O2、O3、O4、O5、O6、O7,假设在上一次按照获取规则获取的数据切片中,计算得到O2的聚合下限值为11,计算得到O5的聚合下限值为20,计算得到O7的聚合下限值为12,以及上一次获取的数据切片中不存在O1、O3、O6和O4,预设聚合函数以SUM为例。因此当前计算到的:
由于O5、O7已被划分为第一对象,因此获取上两次查询计算到的O1、O2、O3、O4的聚合下限值,并从O1、O2、O3、O4、和O6中判断是否存在聚合下限值大于或等于最新计算到的第一选择门限的对象,可以看出,并没有大于或等于最新计算到的第一选择门限(ST=23)的对象,因此将O6确定为第二对象。
若判断出第一对象的数量小于目标数量,由于多个数据切片中还存在未标记为已访问的对象,则对所述多个数据切片执行第4次查询。若判断出第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,并执行205和206步骤。
在对多个数据切片执行第4次查询的过程中,由于数据切片1中的对象全部被标记为已访问,则将数据切片1中取值对象为O6,将数据切片2中的O8标记为已访问,由于数据切片3中的对象全部被标记为已访问,则将数据切片3中取值对象为O7,按照执行流程,无需对其他对象进行标记;第4次查询确定的取值对象为O6、O7、O7;第4次查询确定的第一选择门限为:
当前被标记为已访问的对象有O1、O2、O3、O4、O5、O6、O7、O8,假设在上一次按照获取规则获取的数据切片中,计算得到O2的聚合下限值为11,计算得到O5的聚合下限值为20,计算得到O7的聚合下限值为12,以及上一次获取的数据切片中不存在O1、O3、O4、O6和O8,预设聚合函数以SUM为例。因此当前计算到的:
由于O5、O7已被划分为第一对象,因此获取上两次查询计算到的O1、O2、O3、O4、O6的聚合下限值,并可以从O1、O2、O3、O4、O6和O8中判断是否存在聚合下限值大于或等于最新计算到的第一选择门限的对象,可以看出,O2的聚合下限值大于最新计算到的第一选择门限(ST=20),因此将O2确定为第一对象,将O1、O3、O4、O6和O8确定为第二对象。
若判断出第一对象的数量小于目标数量,且多个数据切片中不存在未标记为已访问的对象,则执行步骤208。若判断出第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,并执行205和206步骤。
需要说明的是,在本申请实施例中通过多次轮询的方式能够在获取数量较大的情况下,通过第一次轮询或者前几次轮询就可以获取到目标数量的第一对象,进而执行后续选择目标对象的步骤,减少了对多个数据切片中其他轮次所包含的其他对象的计算过程,能够减少数据查询节点的计算量。
208,若不存在未被标记为已访问的对象,则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片。
具体的,若不存在未被标记为已访问的对象,则表示多个数据切片中的每个对象均被标记为已访问,进而则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片。由于在获取规则中获取数量为每个数据切片所获取的对象的最大数量,因此通过判断多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片,则说明在每个数据缓存节点中满足获取规则的对象的数量状况。
若所述多个数据切片中存在所包含的对象的数量等于所述获取数量的数据切片,则表示某些数据缓存节点上可能还存在满足获取规则的对象没有发送到数据查询节点上,仍需要继续获取数据切片,因此执行步骤210。
若所述多个数据切片中不存在所包含的对象的数量等于所述获取数量的数据切片,则表示每个数据缓存节点都已经把满足获取规则的对象发送到了数据查询节点,这种情况下执行步骤209。
需要说明的是,由于在所述数据查询节点在获取多个数据切片的步骤中,获取规则包含获取数量,因此可以理解的是,所获取的每个数据切片所包含的对象将小于或者等于获取数量,因此在本步骤中仅仅判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片的情况。进而步骤208中,所述数据查询节点还可以按照判断所述多个数据切片中是否存在所包含的对象的数量大于或等于所述获取数量的数据切片的步骤的进行执行,本申请实施例对此不做限定。
209,若不存在,则将满足第三候选条件的第二对象确定为第一对象。
具体的,若所述多个数据切片中不存在所包含的对象的数量等于所述获取数量的数据切片,则所述数据查询节点将满足第三候选条件的第二对象确定为第一对象。
可行的方案中,将满足第三候选条件的第二对象确定为第一对象具体可以按照以下步骤D1和D2实现。
D1、根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值。
D2、将聚合上限值大于第二选择门限的第二对象确定为第一对象。
其中,所述聚合上限值为按照所述预设聚合函数确定的最大可能值,聚合上限值的计算方式可以参考后续介绍。
可行的方案中,所述第二选择门限是由所述多个数据缓存节点的数量和过滤门限的乘积确定的。例如,在本申请实施例中第二选择门限为T*m。其中,过滤门限T是步骤201中获取多个数据切片时所采用的过滤门限。
进一步的,在将满足第三候选条件的第二对象确定为第一对象之后,执行步骤205和步骤206,进而筛选出满足需求的目标数量的目标对象。
210,若存在,则根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发执行按照获取规则向多个数据缓存节点获取多个数据切片的步骤。
具体的,若所述多个数据切片中存在所包含的对象的数量等于所述获取数量的数据切片,则所述数据查询节点根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发执行步骤201按照获取规则向多个数据缓存节点获取多个数据切片的步骤,以获取更多个数据切片来筛选满足条件的对象。
可选的,所述数据缓存节点根据每个所述第一对象和每个所述第二对象更新所述过滤门限具体过程可以按照以下步骤E1至E4实现。
E1、确定所述第一对象的数量。
E2、将所述目标数量减去所述第一对象的数量得到的数值确定为缺少数量。
其中,设第一对象的数量为N1,缺少数量为N2,目标数量为K,则缺少数量为N2=K-N1。
E3、获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值。
其中,所述候选队列是由所述第二对象按照聚合下限值降序排列组成的。所述数据查询节点获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值。
E4、将排列在所述缺少数量位置的对象的聚合下限值除以数据缓存节点的数量得到的数值,确定为更新后的过滤门限。
举例来说,过滤门限为T,数据缓存节点的数量m为3,若缺少数量N2为5,候选队列如下:
其中,候选队列包括第二对象和第二对象对应的聚合下限值,则排列在位置5的对象为O15,O15的聚合下限值为18。
接着计算,更新后的过滤门限T为18÷3=6。
在步骤204和步骤209中均涉及到根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,这里通过F1至F4进行具体介绍。
F1、在从目标数据缓存节点获得到的全部数据切片所包含的对象中,查找是否存在所述第二对象。
其中,所述目标数据缓存节点为所述多个数据缓存节点中的任意一个。
F2、若不存在,则在从目标数据缓存节点获得到的全部数据切片中选择最小特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值。
F3、若存在,则将所述第二对象在所述目标缓存节点中的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值。
F4、根据所述第二对象针对每个数据缓存节点的特征值,按照所述预设聚合函数计算获得所述第二对象的聚合上限值。
举例来说,以图1描述为基础,对于对象d,定义聚合上限值为ub,预设聚合函数以SUM为例,则聚合上限值为:
其中,si(d)表示d在从数据缓存节点i获取到的全部数据切片中的特征值,如果从数据缓存节点i获取到全部数据切片中不包含d,则Si(d)为0。可以看出即为所述第二对象的聚合下限值,则聚合上限值为:
如果从数据缓存节点i获取到全部数据切片中不包含d,则bi表示在从数据缓存节点i获取到全部数据切片中最小的特征值;如果从数据缓存节点i获取到全部数据切片中包含d,则bi为0。
需要说明的是,本申请实施例的预设聚合函数可以包括但不限定于Sum(求和),Max(求最大值),Min(求最小值),AVG(求均值)等。
在本申请实施例中,通过按照获取规则向多个数据缓存节点获取多个数据切片,并将多个数据切片中包含的对象划分为第一对象和第二对象,其中,第一对象为满足第一候选条件的对象,第二对象为多个数据切片包含的对象中除第一对象之外的对象;若第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象,接着向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取目标数量的第一对象确定为目标对象。通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
进一步,请参见图4,为本申请实施例提供的一种数据查询方法的示例图,如图4所示,数据缓存节点的数量为3,数据查询节点以数据切片的方式向各个数据缓存节点获取数据。具体为:数据查询节点第一次向每个数据缓存节点获取数据切片slice-0,获取规则中过滤门限为过滤门限T0,第二次向每个数据缓存节点获取数据切片slice-1,获取规则中过滤门限为过滤门限T1,以此类推。在数据查询节点每次获取到数据切片之后,将多个数据切片中包含的对象划分为第一对象和第二对象,其中,第一对象为满足第一候选条件的对象,第二对象为多个数据切片包含的对象中除第一对象之外的对象;若第一对象的数量大于或等于K,则将满足第二候选条件的第二对象确定为第一对象;向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个第一对象在每个数据缓存节点中的特征值,按照预设聚合函数计算每个第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取K个第一对象确定为目标对象。通过传输包含一定量数据的数据切片的方式,降低在一次网络传输中数据的传输量,并减少网络传输轮次,进而提高了数据查询效率。
图5为本申请实施例提供了一种数据查询节点的模块化示意图。本申请实施例中的数据查询节点可以是图2-图4所示任一实施例提供的数据查询节点。
如图5所示,本申请实施例的数据查询节点1可以包括:获取模块11、划分模块12、确定模块13和选取模块14。
获取模块11,用于按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片,其中,所述获取规则包括过滤门限和获取数量,每个数据切片所包含对象的特征值大于所述过滤门限且所包含对象的数量不大于所述获取数量;
划分模块12,用于将所述多个数据切片中包含的对象划分为第一对象和第二对象,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象;
确定模块13,用于若所述第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;
选取模块14,用于向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
其中,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
在一个可选的实施例中,所述划分模块12具体用于按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象。
在一个可选的实施例中,请一并参见图6,为本申请实施例提供了一种划分模块的模块化示意图。如图6所示,所述划分模块12包括对象获取单元121、对象标记单元122、对象检测单元123、对象确定单元124和数值计算单元125。可选的,所述划分模块12还包括第一判断单元126、对象查询单元127和第二判断单元128。进一步可选的,所述划分模块12还包括更新单元129。
对象获取单元121,用于若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),一个数据切片确定一个取值对象,所述数据切片i为所述多个数据切片中的每一个数据切片;
对象标记单元122,用于将数据切片i中排列在取值对象COi(p-1)后面的第一个对象标记为已访问,其中,设数据切片i中排列在取值对象COi(p-1)后面的第一个对象为Oi(p-1);
对象检测单元123,用于检测所述多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1);
所述对象标记单元122,还用于若所述对象检测单元123检测到多个数据切片除数据切片i之外的数据切片中存在对象Oi(p-1),则将多个数据切片除数据切片i之外的数据切片中的对象Oi(p-1)标记为已访问;
对象确定单元124,用于在标记为已访问的对象中,按照第四候选条件确定出第p次查询所述多个数据切片的取值对象COi(p);
数值计算单元125,用于根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限;
所述数值计算单元125,还用于在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值;
所述对象确定单元124,还用于将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象;
所述对象确定单元124,还用于将所述当前获取到的全部数据切片中除所述第一对象之外的对象确定为第二对象;
其中,所述第四候选条件为:所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问。
在一个可选的实施例中,所述对象标记单元122,还用于若第p次查询为第1次查询,则将数据切片i中的第一个对象标记为已访问,并触发所述对象检测单元执行检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)。
在一个可选的实施例中,所述数值计算单元125在根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限方面,具体用于:
从当前获取到的全部数据切片中,获取所述多个数据切片中每个被标记为已访问的对象的全部特征值;
根据所述每个被标记为已访问的对象的全部特征值,按照预设聚合函数计算获得所述每个对象的聚合下限值。
在一个可选的实施例中,所述划分模块12还包括第一判断单元126、对象查询单元127和第二判断单元128。其中:
第一判断单元126,用于若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象;
对象查询单元127,用于若所述第一判断单元126判断存在未被标记为已访问的对象,则采用对查询次数p加1获得的数值更新查询次数p,并触发所述对象获取单元121执行若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),所述多个数据切片进行(p+1)查询;
第二判断单元128,用于若所述第一判断单元126判断不存在未被标记为已访问的对象,则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片;
所述确定模块13,还用于若所述第二判断单元128判断不存在等于所述获取数量的数据切片,则将满足第三候选条件的第二对象确定为第一对象,并触发所述选取模块14执行向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
在一个可选的实施例中,所述确定模块13在将满足第三候选条件的第二对象确定为第一对象方面,包括:
第一计算单元131,用于根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
第一对象确定单元132,用于将聚合上限值大于第二选择门限的第二对象确定为第一对象。
在一个可选的实施例中,所述第二选择门限是由所述多个数据缓存节点的数量和过滤门限的乘积确定的。
在一个可选的实施例中,所述划分模块12还包括:
更新单元129,用于若所述第二判断单元128判断存在等于所述获取数量的数据切片,则根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发所述获取模块11执行按照获取规则向多个数据缓存节点获取多个数据切片。
在一个可选的实施例中,所述第二对象按照聚合下限值降序排列组成候选队列;
所述更新单元129具体用于:
确定所述第一对象的数量;
将所述目标数量减去所述第一对象的数量得到的数值确定为缺少数量;
获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值;
将排列在所述缺少数量位置的对象的聚合下限值除以数据缓存节点的数量得到的数值,确定为更新后的过滤门限。
在一个可选的实施例中,所述确定模块13在将满足第二候选条件的第二对象确定为第一对象方面,包括:
第一计算单元131,用于根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
第二对象确定单元133,用于将聚合上限值大于第一选择门限的第二对象确定为第一对象。
在一个可选的实施例中,所述第一计算单元131具体用于
在从目标数据缓存节点获得到的全部数据切片所包含的对象中,查找是否存在所述第二对象,其中,所述目标数据缓存节点为所述多个数据缓存节点中的任意一个;
若不存在,则在从目标数据缓存节点获得到的全部数据切片中选择最小的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
若存在,则将所述第二对象在所述目标缓存节点中的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
根据所述第二对象针对每个数据缓存节点的特征值,按照所述预设聚合函数计算获得所述第二对象的聚合上限值。
需要说明的是,本申请实施例中所示的数据查询节点可以用于执行图2至图4所示任一实施例中数据查询节点的动作或步骤,该数据查询节点中各功能单元的具体实现方式以及带来的技术效果参见相应方法实施例的具体描述,在此不再赘述。
图5所示实施例中的数据查询节点可以以图7所示的数据查询节点实现。如图7所示,为本申请实施例提供了一种数据查询节点的结构示意图,图7所示的数据查询节点1000包括:处理器1001和收发器1004。其中,处理器1001和收发器1004相连,如通过总线1002相连。可选的,所述数据查询节点1000还可以包括存储器1003。需要说明的是,实际应用中收发器1004不限于两个,该数据查询节点1000的结构并不构成对本申请实施例的限定。
其中,处理器1001应用于本申请实施例中,用于实现图5所示的划分模块12、确定模块13以及选取模块14中根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象的功能。收发器1004包括接收机和发射机,收发器1004应用于本申请实施例中,用于实现图5所示的获取模块11和选取模块14中所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值的功能。
处理器1001可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理(Digital Signal Processing,DSP),集成电路(Application SpecificIntegrated Circuit,ASIC),现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器1001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
总线1002可包括一通路,在上述组件之间传送信息。总线1002可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线1002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1003可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器1003用于存储执行本申请方案的应用程序代码,并由处理器1001来控制执行。处理器1001用于执行存储器1003中存储的应用程序代码,以实现图2-图4所示任一实施例提供的数据查询节点的动作。
在本申请实施例中还提供了一种计算机存储介质,用于储存为上述数据查询节点所用的计算机软件指令,其包含用于执行上述方面为数据查询节点所设计的程序。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (24)
1.一种数据查询方法,其特征在于,包括:
按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片,其中,所述获取规则包括过滤门限和获取数量,每个数据切片所包含对象的特征值大于所述过滤门限且所包含对象的数量不大于所述获取数量;
将所述多个数据切片中包含的对象划分为第一对象和第二对象,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象;
若所述第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;
向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象;
其中,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
2.根据权利要求1所述的方法,其特征在于,所述将所述多个数据切片中包含的对象划分为第一对象和第二对象,包括:
按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象。
3.根据权利要求2所述的方法,其特征在于,所述按照轮次访问规则,将所述多个数据切片中包含的对象划分为第一对象和第二对象,包括:
若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),一个数据切片确定一个取值对象,所述数据切片i为所述多个数据切片中的每一个数据切片;
将数据切片i中排列在取值对象COi(p-1)后面的第一个对象标记为已访问,其中,设数据切片i中排列在取值对象COi(p-1)后面的第一个对象为Oi(p-1);
检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1);
若存在,则将所述多个数据切片除数据切片i之外的数据切片中的对象Oi(p-1)标记为已访问;
在标记为已访问的对象中,按照第四候选条件确定出第p次查询所述多个数据切片的取值对象COi(p);
根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限;
在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值;
将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象;
将所述当前获取到的全部数据切片中除所述第一对象之外的对象确定为第二对象;
其中,所述第四候选条件为:所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问。
4.根据权利要求3所述的方法,其特征在于,若第p次查询为第1次查询,则将数据切片i中的第一个对象标记为已访问,并触发执行检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)的步骤。
5.根据权利要求3或4所述的方法,其特征在于,所述在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值,包括:
从当前获取到的全部数据切片中,获取所述多个数据切片中每个被标记为已访问的对象的全部特征值;
根据所述每个被标记为已访问的对象的全部特征值,按照预设聚合函数计算获得所述每个对象的聚合下限值。
6.根据权利要求3-5任一项所述的方法,其特征在于,还包括:
若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象;
若存在未被标记为已访问的对象,则采用对查询次数p加1获得的数值更新查询次数p,并触发执行若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),所述多个数据切片进行(p+1)查询的步骤;
若不存在未被标记为已访问的对象,则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片;
若不存在,则将满足第三候选条件的第二对象确定为第一对象,并触发执行根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象步骤。
7.根据权利要求6所述的方法,其特征在于,所述将满足第三候选条件的第二对象确定为第一对象,包括:
根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
将聚合上限值大于第二选择门限的第二对象确定为第一对象。
8.根据权利要求7所述的方法,其特征在于,所述第二选择门限是由所述多个数据缓存节点的数量和过滤门限的乘积确定的。
9.根据权利要求6所述的方法,其特征在于,所述判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片之后,还包括:
若存在,则根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发执行按照获取规则向多个数据缓存节点获取多个数据切片的步骤。
10.根据权利要求9所述的方法,其特征在于,所述第二对象按照聚合下限值降序排列组成候选队列;
所述根据每个所述第一对象和每个所述第二对象更新所述过滤门限,包括:
确定所述第一对象的数量;
将所述目标数量减去所述第一对象的数量得到的数值确定为缺少数量;
获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值;
将排列在所述缺少数量位置的对象的聚合下限值除以数据缓存节点的数量得到的数值,确定为更新后的过滤门限。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述将满足第二候选条件的第二对象确定为第一对象,包括:
根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
将聚合上限值大于第一选择门限的第二对象确定为第一对象。
12.根据权利要求7或11所述的方法,其特征在于,所述根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,包括:
在从目标数据缓存节点获得到的全部数据切片所包含的对象中,查找是否存在所述第二对象,其中,所述目标数据缓存节点为所述多个数据缓存节点中的任意一个;
若不存在,则在从目标数据缓存节点获得到的全部数据切片中选择最小的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
若存在,则将所述第二对象在所述目标缓存节点中的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
根据所述第二对象针对每个数据缓存节点的特征值,按照所述预设聚合函数计算获得所述第二对象的聚合上限值。
13.一种数据查询节点,其特征在于,包括:
获取模块,用于按照获取规则向多个数据缓存节点获取多个数据切片,向每个数据缓存节点获取一个数据切片,其中,所述获取规则包括过滤门限和获取数量,每个数据切片所包含对象的特征值大于所述过滤门限且所包含对象的数量不大于所述获取数量;
划分模块,用于将所述多个数据切片中包含的对象划分为第一对象和第二对象,其中,所述第一对象为满足第一候选条件的对象,所述第二对象为所述多个数据切片包含的对象中除所述第一对象之外的对象;
确定模块,用于若所述第一对象的数量大于或等于目标数量,则将满足第二候选条件的第二对象确定为第一对象;
选取模块,用于向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象;
其中,一个数据缓存节点包含多个对象针对同一个特征的特征值,每个数据缓存节点的多个对象按照特征值降序排列,不同数据缓存节点之间存在相同的对象。
14.根据权利要求13所述的数据查询节点,其特征在于,所述划分模块具体用于按照轮次访问规则,将所述多个数据切片进行轮次查询,并将所述多个数据切片中包含的对象划分为第一对象和第二对象。
15.根据权利要求14所述的数据查询节点,其特征在于,所述划分模块包括:
对象获取单元,用于若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),一个数据切片确定一个取值对象,所述数据切片i为所述多个数据切片中的每一个数据切片;
对象标记单元,用于将数据切片i中排列在取值对象COi(p-1)后面的第一个对象标记为已访问,其中,设数据切片i中排列在取值对象COi(p-1)后面的第一个对象为Oi(p-1);
对象检测单元,用于检测所述多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1);
所述对象标记单元,还用于若所述对象检测单元检测到多个数据切片除数据切片i之外的数据切片中存在对象Oi(p-1),则将多个数据切片除数据切片i之外的数据切片中的对象Oi(p-1)标记为已访问;
对象确定单元,用于在标记为已访问的对象中,按照第四候选条件确定出第p次查询所述多个数据切片的取值对象COi(p);
数值计算单元,用于根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限;
所述数值计算单元,还用于在当前获取到的全部数据切片中,计算所述多个数据切片中每个被标记为已访问的对象的聚合下限值;
所述对象确定单元,还用于将所述多个数据切片中聚合下限值大于第一选择门限的对象确定为第一对象;
所述对象确定单元,还用于将所述当前获取到的全部数据切片中除所述第一对象之外的对象确定为第二对象;
其中,所述第四候选条件为:所述取值对象COi(p)之后的第一个对象未被标记为已访问,所述取值对象COi(p)之前的全部对象均被标记为已访问。
16.根据权利要求15所述的数据查询节点,其特征在于,
所述对象标记单元,还用于若第p次查询为第1次查询,则将数据切片i中的第一个对象标记为已访问,并触发所述对象检测单元执行检测多个数据切片除数据切片i之外的数据切片中是否存在对象Oi(p-1)。
17.根据权利要求15或16所述的数据查询节点,其特征在于,所述数值计算单元在根据第p次查询确定的所述取值对象COi(p)的特征值,计算第p次查询的第一选择门限方面,具体用于:
从当前获取到的全部数据切片中,获取所述多个数据切片中每个被标记为已访问的对象的全部特征值;
根据所述每个被标记为已访问的对象的全部特征值,按照预设聚合函数计算获得所述每个对象的聚合下限值。
18.根据权利要求15-17任一项所述的数据查询节点,其特征在于,还包括:
第一判断单元,用于若所述第一对象的数量小于所述目标数量,则判断所述多个数据切片中是否存在未被标记为已访问的对象;
对象查询单元,用于若所述第一判断单元判断存在未被标记为已访问的对象,则采用对查询次数p加1获得的数值更新查询次数p,并触发所述对象获取单元执行若为第p次查询所述多个数据切片,则获取第(p-1)次查询数据切片i中确定的第(p-1)次的取值对象COi(p-1),所述多个数据切片进行(p+1)查询;
第二判断单元,用于若所述第一判断单元判断不存在未被标记为已访问的对象,则判断所述多个数据切片中是否存在所包含的对象的数量等于所述获取数量的数据切片;
所述确定模块,还用于若所述第二判断单元判断不存在等于所述获取数量的数据切片,则将满足第三候选条件的第二对象确定为第一对象,并触发所述选取模块执行向所述多个数据缓存节点获取每个第一对象在每个数据缓存节点中的特征值,根据每个所述第一对象在所述每个数据缓存节点中的特征值,按照预设聚合函数计算每个所述第一对象的真实聚合值,并按照真实聚合值由大到小的顺序,选取所述目标数量的第一对象确定为目标对象。
19.根据权利要求18所述的数据查询节点,其特征在于,所述确定模块在将满足第三候选条件的第二对象确定为第一对象方面,包括:
第一计算单元,用于根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
第一对象确定单元,用于将聚合上限值大于第二选择门限的第二对象确定为第一对象。
20.根据权利要求19所述的数据查询节点,其特征在于,所述第二选择门限是由所述多个数据缓存节点的数量和过滤门限的乘积确定的。
21.根据权利要求18所述的数据查询节点,其特征在于,还包括:
更新单元,用于若所述第二判断单元判断存在等于所述获取数量的数据切片,则根据每个所述第一对象和每个所述第二对象更新所述过滤门限,并触发所述获取模块执行按照获取规则向多个数据缓存节点获取多个数据切片。
22.根据权利要求21所述的数据查询节点,其特征在于,所述第二对象按照聚合下限值降序排列组成候选队列;
所述更新单元具体用于:
确定所述第一对象的数量;
将所述目标数量减去所述第一对象的数量得到的数值确定为缺少数量;
获取所述候选队列中排列在所述缺少数量位置的对象的聚合下限值;
将排列在所述缺少数量位置的对象的聚合下限值除以数据缓存节点的数量得到的数值,确定为更新后的过滤门限。
23.根据权利要求1-22任一项所述的数据查询节点,其特征在于,所述确定模块在将满足第二候选条件的第二对象确定为第一对象方面,包括:
第一计算单元,用于根据当前获取到的全部数据切片,计算每个第二对象的聚合上限值,所述聚合上限值为按照所述预设聚合函数确定的最大可能值;
第二对象确定单元,用于将聚合上限值大于第一选择门限的第二对象确定为第一对象。
24.根据权利要求19或23所述的数据查询节点,其特征在于,所述第一计算单元具体用于:
在从目标数据缓存节点获得到的全部数据切片所包含的对象中,查找是否存在所述第二对象,其中,所述目标数据缓存节点为所述多个数据缓存节点中的任意一个;
若不存在,则在从目标数据缓存节点获得到的全部数据切片中选择最小的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
若存在,则将所述第二对象在所述目标缓存节点中的特征值,确定为所述第二对象针对所述目标数据缓存节点的特征值;
根据所述第二对象针对每个数据缓存节点的特征值,按照所述预设聚合函数计算获得所述第二对象的聚合上限值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249521.6A CN108255871B (zh) | 2016-12-29 | 2016-12-29 | 一种数据查询方法及数据查询节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611249521.6A CN108255871B (zh) | 2016-12-29 | 2016-12-29 | 一种数据查询方法及数据查询节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255871A true CN108255871A (zh) | 2018-07-06 |
CN108255871B CN108255871B (zh) | 2022-01-28 |
Family
ID=62721713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611249521.6A Active CN108255871B (zh) | 2016-12-29 | 2016-12-29 | 一种数据查询方法及数据查询节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255871B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377831A (zh) * | 2021-05-31 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 资源数据查询方法、装置、电子设备以及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165400A1 (en) * | 2007-01-10 | 2008-07-10 | Advanced Communication Concepts | Holographic Optical Interleave System and Method |
CN101500012A (zh) * | 2009-02-27 | 2009-08-05 | 中国人民解放军信息工程大学 | 一种报文分类方法和系统 |
CN102521307A (zh) * | 2011-12-01 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种云计算环境下的无共享数据库集群并行查询处理方法 |
CN102867040A (zh) * | 2012-08-31 | 2013-01-09 | 中国科学院计算技术研究所 | 一种面向中文搜索引擎混杂语言的查询纠错方法及系统 |
CN103605655A (zh) * | 2013-09-29 | 2014-02-26 | 柳州市宏亿科技有限公司 | 一种基于互联网的共享数据查询方法 |
CN104378665A (zh) * | 2014-11-24 | 2015-02-25 | 深圳市天威视讯股份有限公司 | 一种基于数字电视的分布式转码系统及方法 |
US20150355863A1 (en) * | 2012-01-06 | 2015-12-10 | Netapp, Inc. | Distributing capacity slices across storage system nodes |
CN105682089A (zh) * | 2015-12-29 | 2016-06-15 | 北京交通大学 | 基于分片的数据保护方法和装置 |
CN106202145A (zh) * | 2016-06-17 | 2016-12-07 | 北京四维新世纪信息技术有限公司 | 一种数据密集型计算的遥感图像预处理系统 |
-
2016
- 2016-12-29 CN CN201611249521.6A patent/CN108255871B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165400A1 (en) * | 2007-01-10 | 2008-07-10 | Advanced Communication Concepts | Holographic Optical Interleave System and Method |
CN101500012A (zh) * | 2009-02-27 | 2009-08-05 | 中国人民解放军信息工程大学 | 一种报文分类方法和系统 |
CN102521307A (zh) * | 2011-12-01 | 2012-06-27 | 北京人大金仓信息技术股份有限公司 | 一种云计算环境下的无共享数据库集群并行查询处理方法 |
US20150355863A1 (en) * | 2012-01-06 | 2015-12-10 | Netapp, Inc. | Distributing capacity slices across storage system nodes |
CN102867040A (zh) * | 2012-08-31 | 2013-01-09 | 中国科学院计算技术研究所 | 一种面向中文搜索引擎混杂语言的查询纠错方法及系统 |
CN103605655A (zh) * | 2013-09-29 | 2014-02-26 | 柳州市宏亿科技有限公司 | 一种基于互联网的共享数据查询方法 |
CN104378665A (zh) * | 2014-11-24 | 2015-02-25 | 深圳市天威视讯股份有限公司 | 一种基于数字电视的分布式转码系统及方法 |
CN105682089A (zh) * | 2015-12-29 | 2016-06-15 | 北京交通大学 | 基于分片的数据保护方法和装置 |
CN106202145A (zh) * | 2016-06-17 | 2016-12-07 | 北京四维新世纪信息技术有限公司 | 一种数据密集型计算的遥感图像预处理系统 |
Non-Patent Citations (1)
Title |
---|
刘江等: "SDN试验床网络虚拟化切片机制综述", 《通信学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377831A (zh) * | 2021-05-31 | 2021-09-10 | 北京达佳互联信息技术有限公司 | 资源数据查询方法、装置、电子设备以及存储介质 |
CN113377831B (zh) * | 2021-05-31 | 2023-02-21 | 北京达佳互联信息技术有限公司 | 资源数据查询方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108255871B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110909015B (zh) | 微服务的拆分方法、装置、设备及存储介质 | |
US8812492B2 (en) | Automatic and dynamic design of cache groups | |
CN108932257A (zh) | 多维度数据的查询方法及装置 | |
CN102821113A (zh) | 缓存方法及系统 | |
CN105657064B (zh) | 基于虚拟节点存储优化的Swift负载均衡方法 | |
US9760836B2 (en) | Data typing with probabilistic maps having imbalanced error costs | |
CN109413694B (zh) | 一种基于内容流行度预测的小小区缓存方法及装置 | |
CN110532774A (zh) | 钩子检查方法、装置、服务器及可读存储介质 | |
CN108763536A (zh) | 数据库访问方法及装置 | |
CN110334104B (zh) | 一种榜单更新方法、装置、电子设备及存储介质 | |
CN112351088A (zh) | 一种cdn缓存方法、装置、计算机设备及存储介质 | |
CN108255871B (zh) | 一种数据查询方法及数据查询节点 | |
CN107256130B (zh) | 基于Cuckoo哈希计算的数据存储优化方法及系统 | |
CN108197498A (zh) | 获取数据的方法及装置 | |
CN107659982B (zh) | 一种无线网络接入点的分类方法及装置 | |
CN110099061B (zh) | 一种云平台视频流服务选择方法及装置 | |
CN109992708B (zh) | 一种元数据查询的方法、装置、设备以及存储介质 | |
CN104077361A (zh) | 一种用于大数据的排序方法及系统 | |
CN106934015A (zh) | 地址数据处理方法和装置 | |
CN107870925B (zh) | 一种字符串过滤方法和相关装置 | |
CN113392130B (zh) | 数据处理方法、装置及设备 | |
CN108173689B (zh) | 负载均衡数据的输出系统 | |
CN112269947A (zh) | 空间文本数据的缓存方法、装置、电子设备及存储介质 | |
CN107066247B (zh) | 补丁查询方法以及装置 | |
CN111104528A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |