CN108959425B - 一种海量数据Top-k选择查询方法 - Google Patents

一种海量数据Top-k选择查询方法 Download PDF

Info

Publication number
CN108959425B
CN108959425B CN201810592946.XA CN201810592946A CN108959425B CN 108959425 B CN108959425 B CN 108959425B CN 201810592946 A CN201810592946 A CN 201810592946A CN 108959425 B CN108959425 B CN 108959425B
Authority
CN
China
Prior art keywords
selection
tuple
tuples
tks
bit
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.)
Active
Application number
CN201810592946.XA
Other languages
English (en)
Other versions
CN108959425A (zh
Inventor
韩希先
宋翠
王佰玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology Weihai
Original Assignee
Harbin Institute of Technology Weihai
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology Weihai filed Critical Harbin Institute of Technology Weihai
Priority to CN201810592946.XA priority Critical patent/CN108959425B/zh
Publication of CN108959425A publication Critical patent/CN108959425A/zh
Application granted granted Critical
Publication of CN108959425B publication Critical patent/CN108959425B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种海量数据Top‑k选择查询方法,有效地处理大数据上的top‑k选择查询,提出了基于表扫描的TKS算法,该算法通过对预排序表PT的顺序扫描来计算top‑k选择查询结果。本发明具有早结束特性;在连续扫描预排序表的过程中,只需要维护k个候选结果;并且选择剪切和分数剪切可以有效的减少I/O的代价,选择剪切是利用位图编码去掉不满足选择条件的元组,而分数剪切是利用评分函数的单调性和预排序列表的有序性跳过那些不满足分数要求的元组。

Description

一种海量数据Top-k选择查询方法
技术领域
本发明涉及大数据查询领域,尤其涉及一种海量数据Top-k选择查询方法。
背景技术
随着移动计算的快速发展,top-k查询及其计算方法得到了众多研究者的关注,主要是因 为top-k查询结果集在很多应用中都有着非常重要的作用,由于其实际意义,top-k查询引起 了广泛的关注,并提出了许多算法。现有的top-k算法可以分为三类:基于索引的方法、基于 视图的方法和基于排序的方法。然而,绝大多数现有算法都没有选择条件,只返回所有元组中 的top-k结果。当然,这些算法的简单扩展,即首先找到满足选择条件的元组,然后在满足条 件的元组上执行top-k查询,将会导致大量的I/O开销。
目前已经有多种算法来处理top-k选择查询。D.Xin和J.Han等人提出评分立方体(Ranking cube)方法,在选择属性和度量属性上构建rank-aware的数据集,可以有效地回答top-k选择查询。然而,该方法总是假设选择维度是范围类型,并且实际应用中,在海量数据上的评分立方体的预计算成本和存储成本是非常昂贵的。另外两项密切相关的研究是N.Bruno和A.Stupar等人提出的,前者将其转化为一个单一的范围查询,以获得与预设的属性值根据距离函数匹配的k个元组。后一种方法处理预设选择条件的查询,由于选择形式的限 制和精确的数值属性,其实用性受到了严重的限制。换言之,现有的算法在处理海量数据的 top-k选择查询时存在一定的问题。
发明内容
为了克服上述现有技术中的不足,本发明提供一种海量数据Top-k选择查询方法,方法包 括:预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT;
根据选择剪切方式和分数剪切方式,按预排序顺序扫描预排序表PT;
在扫描过程中,选择剪切方式为剪掉不满足选择条件P的元组;
分数剪切方式为预设分数的下界,任意元组的分数如果小于分数下界,则所述元组为非查 询结果,剪掉所述元组;
基于选择剪切方式和分数剪切方式的扫描后,保留未被剪掉的元组,输出查询结果。
优选地,步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
T具有n个元组,M个度量属性A1,…,AM和D个选择属性S1,…,SD,top-k选择查询定义在 d个选择属性S1,…,Sd上的选择条件P={(l1≤S1≤u1)∧…(ld≤Sd≤ud)}和定义在m个度量 属性A1,…,Am上的评分函数
Figure BDA0001691164590000021
返回满足选择条件且分数最大的k个元组;
根据数据表T,生成有序列文件ALi(PI,Ai),PI是元组的位置索引,Ai代表第i个属性值, 有序列文件按照Ai的值递减排序;对T的元组根据其在AL1,…,ALM的轮询顺序进行预排序,获 得预排序表PT。
优选地,步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
生成由表T的位置索引和度量属性值对组成的列文件ALi(PI,Ai),在ALi中按照属性值Ai降 序排列,并用PIi表示Ai中的每个属性值在ALi中的位置索引;
用MPI表示预设元组在有序列文件ALi中位置索引PIi的最小值,
Figure BDA0001691164590000022
则t.MPI=min1≤i≤M t.PIi,将表T中的元组按照MPI值非降序排序,得到预排序表PT,PT表的模式为 PT(MPIL,PIT,A1,…,AM,S1,…,SD)。
优选地,设置评分函数
Figure BDA0001691164590000023
评分函数用来计算每个元组的分数,连续扫描PT, 评估每个元组是否满足选择条件P,维护一个优先队列PQ,队列中的元素是到目前为止满足选 择条件且分数最大的k个元组;当满足早结束条件时,返回PQ中的元组,即top-k的选择结果。
优选地,选择剪切方式包括:
给出选择属性Sj,minj和maxj分别是选择属性值的最小值和最大值,把[minj,maxj]区间 分成C个范围(R1,......,RC),并用C个位向量(Bj,1,...,Bj,C)为Sj编码;用Bj,v(a)表示向量 Bj,v的第a位;
Figure BDA0001691164590000024
如果pt.Sj属于Rv,则Bj,1(a),...,Bj,v-1(a)为0,Bj,v(a),...,Bj,C(a)为1,Bj,v代表离散化Sj中落入范围[1,v]内的属性值;
预设在选择属性Sj上的选择条件lj≤Sj≤uj,两个位向量需要执行选择剪切,[v1,v2]是区 间[lj,uj]所涉及到的相关范围,则有
Figure BDA0001691164590000025
代表相关范围的属性值;当v1=1时,只有
Figure BDA0001691164590000026
用于选择剪切;
令bfj,1和bfj,2分别表示具有BS个字节缓冲区,并分别维护从
Figure RE-GDA00017588907600000311
Figure RE-GDA0001758890760000034
读取 的数据;在对PT执行扫描之前,TKS先从
Figure RE-GDA0001758890760000035
Figure RE-GDA0001758890760000036
中读取数据,获得
Figure RE-GDA0001758890760000037
类似地,可以获得
Figure RE-GDA0001758890760000038
该位向量对应PT(1,…,8×BS) 的元组,如果bf中的第a位为0,PT(a)可以直接跳过;否则读取PT(a),并且 通过选择条件进行评估;当缓冲区bf用完后,TKS重新获取
Figure RE-GDA0001758890760000039
Figure RE-GDA00017588907600000310
的数据,
优选地,分数剪切方式包括:
令tscore是top-k选择结果分数的下界,任意元组的分数如果小于tscore,那么该元组 肯定不是查询结果,并且可以直接跳过该元组;TKS预先构建一个数据结构APTS(Attribute Pair Terminating-tuple Set),对于每一个top-k选择查询,利用该结构初始化tscore;指 定其上界Kmax;度量属性的维度为M,则APTS需要维护
Figure BDA0001691164590000033
个文件,每个文件中具有Kmax个T 中的元组;
Figure BDA0001691164590000034
Figure BDA0001691164590000035
代表APTS中的一个文件,所述文件保存以round-robin的 方式在
Figure BDA0001691164590000036
Figure BDA0001691164590000037
上轮询得到的前Kmax个终结元组;
再预构造另一个结构MCR,根据元组的位置索引来确定其对应度量属性值的范围;MCRi文 件是由log2 n个元组组成,MCRi(b)是一个n位的位向量,代表通过EGBFTi(b)检查PT中的元 组结果,如果PT(a)的检测结果为真,则MCRi(b)中的第a个位置为1,否则,该位被设置为0; EGBFTi(b)是一个bloom filter表,是在AL(1,…,2b).PI上构造出来的。
优选地,分数剪切方式还包括:配置分数剪切规则;
在连续扫描PT之前,预设评分函数,TKS算法通过读
Figure RE-GDA0001758890760000046
个相关文件APTS, 初始化tscore;tscore被设置成在相关文件APTS中满足选择条件P的元组中 的第k大的分数;如果选择度STV的值较低,则可能小于k个元组满足选择条 件P,此时tscore设置成∑1≤i≤mmini;得到tscore的值之后,为度量属性Ai计 算
Figure RE-GDA0001758890760000047
Figure BDA00016911645900000310
如果pt.Ai<pvi,有pt.A1+…+pt.Ai+…+pt.Am<max1+…+pvi+…+ maxm=tscore,因此pt不是top-k选择结果;
TKS利用EGBIi(1≤i≤m)结构确定当前用于分数剪切的MCR元组的位置索引;TKS返 回EGBIi满足条件EGBIi(bi).eval<pvi≤EGBIi(bi-1).eval的第一个位置索引
Figure BDA00016911645900000313
Figure BDA00016911645900000314
用EGBIi(0).eval表示maxi
Figure BDA00016911645900000311
是-∞,然后bi是MCR元组的 位置索引;
已知MCRi(bi)是PT的PIT成员属性检测结果值的位向量;如果
Figure BDA00016911645900000312
当前不 能执行分数剪切;
令mfi为一个具有BS个字节的缓冲区,用来维护读取MCRi(bi)的数据;在对PT执行顺序 扫描之前,TKS通过mfi从MCRi(bi)中获取数据,并且获得
Figure BDA0001691164590000041
该位向量对应 PT(1,…,8×BS)的元组,如果mf中的第a位为0,PT(a)直接跳过;否则读取PT(a),并 且通过选择条件进行评估;
当位向量mf用完后,TKS重新获取数据MCRi(bi),重新计算mf,当前mf位向量对应PT(8 ×BS+1,…,16×BS)的元组,并继续扫描。
从以上技术方案可以看出,本发明具有以下优点:
本发明有效地处理大数据上的top-k选择查询,提出了基于表扫描的TKS算法,该算法通 过对预排序表PT的顺序扫描来计算top-k选择查询结果。本发明具有早结束特性;在连续扫 描预排序表的过程中,只需要维护k个候选结果;并且选择剪切和分数剪切可以有效的减少 I/O的代价,选择剪切是利用位图编码去掉不满足选择条件的元组,而分数剪切是利用评分函 数的单调性和预排序列表的有序性跳过那些不满足分数要求的元组。
本发明从执行时间、维护元组的数量、I/O代价以及扫描深度效果上都有明显的提升;可 以从剪切率上面看出,实际的剪切率曲线与估计的剪切率曲线几乎吻合,说明理论上需要剪切 的元组,在实际执行的过程中基本剪切掉,明显提高执行效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍, 显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为海量数据Top-k选择查询方法流程图;
图2为有序列文件示意图;
图3为预排序表PT示意图;
图4为选择剪切方式示意图;
图5为分数剪切方式示意图。
具体实施方式
本发明提供一种海量数据Top-k选择查询方法,如图1所示,方法包括:
S1,预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT;
S2,根据选择剪切方式和分数剪切方式,按预排序顺序扫描预排序表PT;
在扫描过程中,选择剪切方式为剪掉不满足选择条件P的元组;
分数剪切方式为预设分数的下界,任意元组的分数如果小于分数下界,则所述元组为非查 询结果,剪掉所述元组;
S3,基于选择剪切方式和分数剪切方式的扫描后,保留未被剪掉的元组,输出查询结果。
本发明预设选择条件和评分函数,top-k选择查询返回满足选择条件且分数最大的k个元 组。
本发明中,步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
T具有n个元组,M个度量属性A1,…,AM和D个选择属性S1,…,SD,top-k选择查询定义在 d个选择属性S1,…,Sd上的选择条件P={(l1≤S1≤u1)∧…(ld≤Sd≤ud)}和定义在m个度量 属性A1,…,Am上的评分函数
Figure BDA0001691164590000051
返回满足选择条件且分数最大的k个元组;
根据数据表T,生成有序列文件ALi(PI,Ai),PI是元组的位置索引,Ai代表第i个属性值, 有序列文件按照Ai的值递减排序;对T的元组根据其在AL1,…,ALM的轮询顺序进行预排序,获 得预排序表PT。
其中,步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
生成由表T的位置索引和度量属性值对组成的列文件ALi(PI,Ai),在ALi中按照属性值Ai降 序排列,并用PIi表示Ai中的每个属性值在ALi中的位置索引;
用MPI表示预设元组在有序列文件ALi中位置索引PIi的最小值,
Figure BDA0001691164590000052
则t.MPI=min1≤i≤M t.PIi,将表T中的元组按照MPI值非降序排序,得到预排序表PT,PT表的模式为 PT(MPIL,PIT,A1,…,AM,S1,…,SD)。
本发明中,对查询表T预排序,产生预排序表PT;生成有序列文件ALi操作,如图2所示
首先生成由表T的位置索引和度量属性值对组成的列文件ALi(PI,Ai),在ALi中按照属性值 Ai降序排列,并用PIi表示Ai中的每个属性值在ALi中的位置索引,如图2所示;
生成PT表,图3所示,用MPI表示预设元组在有序列文件ALi中位置索引PIi的最小值,
Figure BDA0001691164590000061
则t.MPI=min1≤i≤M t.PIi,将表T中的元组按照MPI值非降序排序,得到预排序表PT,如图3所示,PT表的模式为PT(MPIL,PIT,A1,…,AM,S1,…,SD)。
本发明中,TKS的基本过程是,假定评分函数
Figure BDA0001691164590000062
评分函数用来计算每个元 组的分数,连续扫描PT,评估每个元组是否满足选择条件P,维护一个优先队列PQ,队列中的 元素是到目前为止满足选择条件且分数最大的k个元组;当满足早结束条件时,返回PQ中的元 组,即top-k的选择结果。
由PT的构造过程可知TKS具有提前终止的特性。本发明提出了一种简洁的数据结构 GTS(Gap Threshold Score),该结构用来维护在有序列文件上元组的具有预设位置索引间隔的 属性值。预设间隔参数OG,在结构GTS中的第
Figure BDA0001691164590000063
个记录维护属性值AL1(b× OG).A1,...,ALM(b×OG).AM
假设pt是PT中当前读取的元组,可以证明,如果满足早结束条件
Figure BDA0001691164590000064
Figure BDA0001691164590000065
则当前PQ中维护的元组是top-k选择结果。
在其执行过程中,TKS算法具有早结束和只需维护k个候选元组特性,此外,本发明还提 出两种剪切进一步加快算法的效率。
本发明中,图4所示,选择剪切是跳过不满足选择条件P的元组,如果一个元组不满足选 择条件,那么该元组肯定不是top-k选择的结果。TKS利用位图索引来处理选择条件,不同于 以前的方法在选择属性上构建立方体结构,之前的方法显然受到了选择属性维数的影响,在实 际应用中会受到严重的限制。由于选择属性是数值型的,如果为每个不同的值生成一个位向量 将使得位图索引的空间成本将会非常昂贵。利用范围划分去离散化连续区域,离散化过程如下:
选择剪切方式包括:给出选择属性Sj,minj和maxj分别是选择属性值的最小值和最大值, 把[minj,maxj]区间分成C个范围(R1,......,RC),并用C个位向量(Bj,1,...,Bj,C)为Sj编码; 用Bj,v(a)表示向量Bj,v的第a位;
Figure BDA0001691164590000068
如果pt.Sj属于Rv,则Bj,1(a),...,Bj,v-1(a) 为0,Bj,v(a),...,Bj,C(a)为1,Bj,v代表离散化Sj中落入范围[1,v]内的属性值;
预设在选择属性Sj上的选择条件lj≤Sj≤uj,两个位向量需要执行选择剪切,[v1,v2]是区 间[lj,uj]所涉及到的相关范围,则有
Figure BDA0001691164590000066
代表相关范围的属性值;当v1=1时,只有
Figure BDA0001691164590000067
用于选择剪切;
令bfj,1和bfj,2分别表示具有BS个字节缓冲区,并分别维护从
Figure RE-GDA0001758890760000093
Figure RE-GDA0001758890760000094
读取 的数据;在对PT执行扫描之前,TKS先从
Figure RE-GDA0001758890760000095
Figure RE-GDA0001758890760000096
中读取数据,获得
Figure RE-GDA0001758890760000097
类似地,可以获得
Figure RE-GDA0001758890760000098
该位向量对应PT(1,…,8×BS) 的元组,如果bf中的第a位为0,PT(a)可以直接跳过;否则读取PT(a),并且 通过选择条件进行评估;当缓冲区bf用完后,TKS重新获取
Figure RE-GDA0001758890760000099
Figure RE-GDA00017588907600000910
的数据, 重新计算bf,此时当前bf位向量对应PT(8×BS+1,…,16×BS),并继续 顺序扫描。
本发明中,如图5所示,分数剪切方式包括:令tscore是top-k选择结果分数的下界, 任意元组的分数如果小于tscore,那么该元组肯定不是查询结果,并且可以直接跳过该元组; TKS预先构建一个数据结构APTS(Attribute Pair Terminating-tuple Set),对于每一个top-k 选择查询,利用该结构初始化tscore;指定其上界Kmax;度量属性的维度为M,则APTS需要维 护
Figure BDA0001691164590000079
个文件,每个文件中具有Kmax个T中的元组;
Figure BDA00016911645900000710
Figure BDA00016911645900000711
代表APTS中的一 个文件,所述文件保存以round-robin的方式在
Figure BDA00016911645900000712
Figure BDA00016911645900000713
上轮询得到的前Kmax个终结元组;
再预构造另一个结构MCR,根据元组的位置索引来确定其对应度量属性值的范围;MCRi文 件是由log2 n个元组组成,MCRi(b)是一个n位的位向量,代表通过EGBFTi(b)检查PT中的元 组结果,如果PT(a)的检测结果为真,则MCRi(b)中的第a个位置为1,否则,该位被设置为0; EGBFTi(b)是一个bloom filter表,是在AL(1,…,2b).PI上构造出来的。
分数剪切方式还包括:配置分数剪切规则;在连续扫描PT之前,预设评分函数,TKS算 法通过读
Figure BDA00016911645900000714
个相关文件APTS,初始化tscore;tscore被设置成在相关文件APTS中满足选 择条件P的元组中的第k大的分数;如果选择度STV的值较低,则可能小于k个元组满足选择 条件P,此时tscore设置成∑1≤i≤m mini;得到tscore的值之后,为度量属性Ai计算
Figure BDA00016911645900000715
Figure BDA00016911645900000716
如果pt.Ai<pvi,有pt.A1+…+pt.Ai+…+pt.Am<max1+…+pvi+…+ maxm=tscore,因此pt不是top-k选择结果;
TKS利用EGBIi(1≤i≤m)结构确定当前用于分数剪切的MCR元组的位置索引;TKS返 回EGBIi满足条件EGBIi(bi).eval<pvi≤EGBIi(bi-1).eval的第一个位置索引
Figure BDA00016911645900000718
Figure BDA00016911645900000719
用EGBIi(0).eval表示maxi
Figure BDA00016911645900000717
是-∞,然后bi是MCR元组的 位置索引;
已知MCRi(bi)是PT的PIT成员属性检测结果值的位向量;如果
Figure BDA0001691164590000082
当前不 能执行分数剪切;
令mfi为一个具有BS个字节的缓冲区,用来维护读取MCRi(bi)的数据;在对PT执行顺序 扫描之前,TKS通过mfi从MCRi(bi)中获取数据,并且获得
Figure BDA0001691164590000081
该位向量对应 PT(1,…,8×BS)的元组,如果mf中的第a位为0,PT(a)直接跳过;否则读取PT(a),并 且通过选择条件进行评估;
当位向量mf用完后,TKS重新获取数据MCRi(bi),重新计算mf,当前mf位向量对应PT(8 ×BS+1,…,16×BS)的元组,并继续扫描。
两种剪切方法的结合,选择剪切考虑选择条件,分数剪切考虑分数要求,因此可以合并两 种剪切以达到更好的剪切效果;与选择剪切、分数剪切类似,合并剪切方法中保留的元组,只 有在选择剪切和分数剪切都没被剪掉的时候才保留此元组。
本发明是研究在大数据上的top-k查询问题,提出基于表扫描的TKS算法;该算法通过对 预排序表PT的顺序扫描来计算top-k选择查询结果。本发明具有早结束特性;在连续扫描预 排序表的过程中,只需要维护k个候选结果;并且选择剪切和分数剪切可以有效的减少I/O 的代价,选择剪切是利用位图编码去掉不满足选择条件的元组,而分数剪切是利用评分函数的 单调性和预排序列表的有序性跳过那些不满足分数要求的元组。
大量实验结果表明本发明从执行时间、维护元组的数量、I/O代价以及扫描深度效果上都 有明显的提升;可以从剪切率上面看出,实际的剪切率曲线与估计的剪切率曲线几乎吻合,说 明理论上需要剪切的元组,在实际执行的过程中基本剪切掉,明显提高执行效率。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实 施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以 在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于 本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (6)

1.一种海量数据Top-k选择查询方法,其特征在于,方法包括:
预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT;
根据选择剪切方式和分数剪切方式,按预排序顺序扫描预排序表PT;
选择剪切方式包括:
给出选择属性Sj,minj和maxj分别是选择属性值的最小值和最大值,把[minj,maxj]区间分成C个范围(R1,......,RC),并用C个位向量(Bj,1,...,Bj,C)为Sj编码;用Bj,v(a)表示向量Bj,v的第a位;
Figure FDA0003072576740000011
如果pt.Sj属于Rv,则Bj,1(a),...,Bj,v-1(a)为0,Bj,v(a),...,Bj,C(a)为1,Bj,v代表离散化Sj中落入范围[1,v]内的属性值;
预设在选择属性Sj上的选择条件lj≤Sj≤uj,两个位向量需要执行选择剪切,[v1,v2]是区间[lj,uj]所涉及到的相关范围,则有
Figure FDA0003072576740000012
代表相关范围的属性值;当v1=1时,只有
Figure FDA0003072576740000013
用于选择剪切;
令bfj,1和bfj,2分别表示具有BS个字节缓冲区,并分别维护从
Figure FDA0003072576740000014
Figure FDA0003072576740000015
读取的数据;在对PT执行扫描之前,TKS先从
Figure FDA0003072576740000016
Figure FDA0003072576740000017
中读取数据,获得
Figure FDA0003072576740000018
类似地,可以获得
Figure FDA0003072576740000019
该位向量对应PT(1,…,8×BS)的元组,如果bf中的第a位为0,PT(a)可以直接跳过;否则读取PT(a),并且通过选择条件进行评估;当缓冲区bf用完后,TKS重新获取
Figure FDA00030725767400000110
Figure FDA00030725767400000111
的数据,重新计算bf,此时当前bf位向量对应PT(8×BS+1,…,16×BS),并继续顺序扫描;
在扫描过程中,选择剪切方式为剪掉不满足选择条件P的元组;
分数剪切方式为预设分数的下界,任意元组的分数如果小于分数下界,则所述元组为非查询结果,剪掉所述元组;
基于选择剪切方式和分数剪切方式的扫描后,保留未被剪掉的元组,输出查询结果。
2.根据权利要求1所述的海量数据Top-k选择查询方法,其特征在于,
步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
T具有n个元组,M个度量属性A1,...,AM和D个选择属性S1,...,SD,top-k选择查询定义在d个选择属性S1,...,Sd上的选择条件P={(l1≤S1≤u1)∧...(ld≤Sd≤ud)}和定义在m个度量属性A1,...,Am上的评分函数
Figure FDA00030725767400000112
返回满足选择条件且分数最大的k个元组;
根据数据表T,生成有序列文件ALi(PI,Ai),PI是元组的位置索引,Ai代表第i个属性值,有序列文件按照Ai的值递减排序;对T的元组根据其在AL1,...,ALM的轮询顺序进行预排序,获得预排序表PT。
3.根据权利要求2所述的海量数据Top-k选择查询方法,其特征在于,
步骤预设查询表T,基于TKS算法,对查询表T预排序,形成预排序表PT还包括:
生成由表T的位置索引和度量属性值对组成的列文件ALi(PI,Ai),在ALi中按照属性值Ai降序排列,并用PIi表示Ai中的每个属性值在ALi中的位置索引;
用MPI表示预设元组在有序列文件ALi中位置索引PIi的最小值,
Figure FDA0003072576740000021
则t.MPI=min1≤i≤M t.PIi,将表T中的元组按照MPI值非降序排序,得到预排序表PT,PT表的模式为PT(MPIL,PIT,A1,…,AM,S1,…,SD)。
4.根据权利要求1所述的海量数据Top-k选择查询方法,其特征在于,扫描过程还包括:
设置评分函数
Figure FDA0003072576740000022
评分函数用来计算每个元组的分数,连续扫描PT,评估每个元组是否满足选择条件P,维护一个优先队列PQ,队列中的元素是到目前为止满足选择条件且分数最大的k个元组;当满足早结束条件时,返回PQ中的元组,即top-k的选择结果。
5.根据权利要求1所述的海量数据Top-k选择查询方法,其特征在于,
分数剪切方式包括:
令tscore是top-k选择结果分数的下界,任意元组的分数如果小于tscore,那么该元组肯定不是查询结果,并且可以直接跳过该元组;TKS预先构建一个数据结构APTS(AttributePair Terminating-tuple Set),对于每一个top-k选择查询,利用该结构初始化tscore;指定其上界Kmax;度量属性的维度为M,则APTS需要维护
Figure FDA0003072576740000023
个文件,每个文件中具有Kmax个T中的元组;
Figure FDA0003072576740000024
Figure FDA0003072576740000025
代表APTS中的一个文件,所述文件保存以round-robin的方式在
Figure FDA0003072576740000026
Figure FDA0003072576740000027
上轮询得到的前Kmax个终结元组;
再预构造另一个结构MCR,根据元组的位置索引来确定其对应度量属性值的范围;MCRi文件是由log2n个元组组成,MCRi(b)是一个n位的位向量,代表通过EGBFTi(b)检查PT中的元组结果,如果PT(a)的检测结果为真,则MCRi(b)中的第a个位置为1,否则,该位被设置为0;EGBFTi(b)是一个bloom filter表,是在AL(1,…,2b).PI上构造出来的。
6.根据权利要求5所述的海量数据Top-k选择查询方法,其特征在于,
分数剪切方式还包括:配置分数剪切规则;
在连续扫描PT之前,预设评分函数,TKS算法通过读
Figure FDA0003072576740000028
个相关文件APTS,初始化tscore;tscore被设置成在相关文件APTS中满足选择条件P的元组中的第k大的分数;如果选择度STV的值较低,则可能小于k个元组满足选择条件P,此时tscore设置成∑1≤i≤mmini;得到tscore的值之后,为度量属性Ai计算
Figure FDA0003072576740000031
Figure FDA0003072576740000032
如果pt.Ai<pvi,有pt.A1+…+pt.Ai+…+pt.Am<max1+…+pvi+…+maxm=tscore,因此pt不是top-k选择结果;
TKS利用EGBIi(1≤i≤m)结构确定当前用于分数剪切的MCR元组的位置索引;TKS返回EGBIi满足条件EGBIi(bi).eval<pvi≤EGBIi(bi-1).eval的第一个位置索引
Figure FDA0003072576740000033
Figure FDA0003072576740000034
用EGBIi(0).eval表示maxi
Figure FDA0003072576740000035
是-∞,然后bi是MCR元组的位置索引;
已知MCRi(bi)是PT的PIT成员属性检测结果值的位向量;如果
Figure FDA0003072576740000036
当前不能执行分数剪切;
令mfi为一个具有BS个字节的缓冲区,用来维护读取MCRi(bi)的数据;在对PT执行顺序扫描之前,TKS通过mfi从MCRi(bi)中获取数据,并且获得
Figure FDA0003072576740000037
该位向量对应PT(1,…,8×BS)的元组,如果mf中的第a位为0,PT(a)直接跳过;否则读取PT(a),并且通过选择条件进行评估;
当位向量mf用完后,TKS重新获取数据MCRi(bi),重新计算mf,当前mf位向量对应PT(8×BS+1,…,16×BS)的元组,并继续扫描。
CN201810592946.XA 2018-06-11 2018-06-11 一种海量数据Top-k选择查询方法 Active CN108959425B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810592946.XA CN108959425B (zh) 2018-06-11 2018-06-11 一种海量数据Top-k选择查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810592946.XA CN108959425B (zh) 2018-06-11 2018-06-11 一种海量数据Top-k选择查询方法

Publications (2)

Publication Number Publication Date
CN108959425A CN108959425A (zh) 2018-12-07
CN108959425B true CN108959425B (zh) 2021-08-06

Family

ID=64488267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810592946.XA Active CN108959425B (zh) 2018-06-11 2018-06-11 一种海量数据Top-k选择查询方法

Country Status (1)

Country Link
CN (1) CN108959425B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118013086B (zh) * 2024-04-10 2024-06-25 哈尔滨工业大学(威海) 一种k代表G-Skyline查询方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020319A (zh) * 2013-01-11 2013-04-03 江苏大学 一种实时移动空间关键字近似Top-k查询方法
CN103226608A (zh) * 2013-04-28 2013-07-31 北京航空航天大学 一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459959B2 (en) * 2016-11-07 2019-10-29 Oath Inc. Top-k query processing with conditional skips

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020319A (zh) * 2013-01-11 2013-04-03 江苏大学 一种实时移动空间关键字近似Top-k查询方法
CN103226608A (zh) * 2013-04-28 2013-07-31 北京航空航天大学 一种基于目录级可伸缩的Bloom Filter位图表的并行文件搜索方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Efficient Top-k Aggregation of Ranked Inputs";NIKOS MAMOULIS 等;《ACM Transactions on Database Systems》;20070831;第1-47页 *
"Efficient Top-k Dominating Computation on Massive Data (Extended Abstract)";Xixian Han 等;《 2018 IEEE 34th International Conference on Data Engineering (ICDE)》;20180419;第1771-1772页 *
"TMS:一种新的海量数据多维选择Top-k查询算法";韩希先 等;《计算机研究与发展》;20170315;第570-585页 *

Also Published As

Publication number Publication date
CN108959425A (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
Yang et al. Experimental study on the five sort algorithms
Abualigah et al. Applying genetic algorithms to information retrieval using vector space model
US10331712B2 (en) Efficient spatial queries in large data tables
US20090182734A1 (en) Determining relevance of a document to a query based on spans of query terms
US7072902B2 (en) Method and system for organizing objects according to information categories
CN108804566B (zh) 一种基于Hadoop的海量小文件读取方法
CN106503223B (zh) 一种结合位置和关键词信息的在线房源搜索方法及装置
CN112732883A (zh) 基于知识图谱的模糊匹配方法、装置和计算机设备
US20060085399A1 (en) Prediction of query difficulty for a generic search engine
KR101656750B1 (ko) 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
Wang et al. Durable queries over historical time series
CN108959425B (zh) 一种海量数据Top-k选择查询方法
CN108241692B (zh) 数据的查询方法及装置
CN108932287A (zh) 一种基于Hadoop的海量小文件写入方法
JPH10240716A (ja) 時系列データ解析装置及びプログラムを記録した機械読み取り可能な記録媒体
CN112287094A (zh) 相似病例文本检索系统
CN109390032B (zh) 一种基于进化算法在全基因组关联分析的数据中探索与疾病相关的snp组合的方法
CN108509610B (zh) 一种活动与同伴的检索方法及系统
Gkorgkas et al. Discovering influential data objects over time
CN114911826A (zh) 一种关联数据检索方法和系统
Kraus et al. Fishing in the stream: similarity search over endless data
CN111737567A (zh) 一种网络文学新书推荐的方法
Han et al. Efficient top-k retrieval on massive data
Tian et al. A Context-Aware Method for Indexing Large-Scale SpatioTemporal Data
Rodriguez Optimizing Search Engine Efficiency with Static Index Pruning and Tiering

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