一种数据流相似性的连接方法转让专利

申请号 : CN201610564307.3

文献号 : CN106250395B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许嘉宋超吕品李陶深张佳振

申请人 : 广西大学

摘要 :

本发明涉及一种数据流相似性的连接方法,通过根据预设时间跨度值P在数据流R上构建B+树森林集合索引;当所述数据流R和所述数据流S上的数据元组的时间戳在当前滑动窗口的时间范围内时,基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接,能够基于B+树森林集合索引设计数据流上基于滑动窗口语义和EMD距离的相似性连接方法,为滑动窗口语义下基于EMD距离的数据流相似性连接查询提出了解决方案,显著提高了相似性连接的处理效率和性能。

权利要求 :

1.一种数据流相似性的连接方法,其特征在于,包括:

根据预设时间跨度值P在数据流R上构建B+树森林集合索引;

当所述数据流R和数据流S上的数据元组的时间戳在当前滑动窗口的时间范围内时,基于所述B+树森林集合索引,进行滑动窗口语义下基于地球移动距离EMD距离的所述数据流R和所述数据流S之间的相似性连接;

所述根据预设时间跨度值P在数据流R上构建B+树森林集合索引包括:

根据预设时间跨度值P把时间域划分为T个互相不重叠的时间区间,T大于等于1;

为所述R数据流上每个所述时间区间内达到的所述数据元组构建一个R数据流B+树森林索引,得到所述R数据流所述时间域上T个B+树森林索引,所述T个B+树森林索引构成所述R数据流的B+树森林集合索引;

在根据预设时间跨度值P在数据流R上构建B+树森林集合索引之后,还包括:

当所述B+树森林集合索引中所包含的数据元组的个数大于等于c*P的值且

Factive.maxTime-Factive.minTime>=P时,新建一个B+树森林索引Fnew,并将所述B+树森林索引Fnew设定为当前的活跃索引Factive;

其中,Factive.maxTime为当前活跃索引所维护的数据元组的最大时间戳,Factive.minTime为当前活跃索引所维护的数据元组的最小时间戳,c为预设的B+树森林索引的容量系数;

在基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接之前,还包括:当接收到所述数据流S上的数据元组s之后,计算所述B+树森林集合索引中的每个所述时间区间上构建的B+树森林索引Fi中数据元组的最小时间戳和所述元祖s的时间戳之间的差值;

当所述差值大于所述滑动窗口大小和最大网络延迟之和时,删除所述B+树森林索引Fi;

还包括:设置所述预设时间跨度值

其中,|W|为所述滑动窗口大小。

2.根据权利要求1所述的数据流相似性的连接方法,其特征在于,所述基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接,包括:基于所述数据流S中的数据元组si的时间戳,从B+树森林集合F中找到时间跨度区间和所述数据元组si要查询的时间滑动窗口有交集的所述B+树森林集合F';

当所述B+树森林集合F中的B+树森林Fj∈F'满足si.timestamp-Fj.maxTime≤|W|时,返回Fj中和si间的EMD距离不大于θ且时间戳落在si的滑动窗口范围内的所述R数据流上的数据元组R'{rj}和元组si构成的相似性连接结果元组对,将所述元组对存入结果集RSi。

3.根据权利要求2所述的数据流相似性的连接方法,其特征在于,所述返回Fj中和si间的EMD距离不大于θ且时间戳落在si的滑动窗口范围内的所述R数据流上的数据元组R'{rj}包括:满足公式1规定的区间范围的数据元组R'{rj},所述公式1规定的区间范围为[min(Фl)+key(s,Фl)-θ,θ-ckey(s,Фl)],min(Фl)是和EMD距离对偶线性规划问题的可行解Фl相关的实数,key(s,Фl)是s基于可行解Фl计算得到的键值,ckey(s,Фl)是s基于可行解Фl计算得到的反键值。

4.根据权利要求2所述的数据流相似性的连接方法,其特征在于,在返回Fj中和si间的EMD距离不大于θ且时间戳落在si的滑动窗口范围内的所述R数据流上的数据元组R'{rj}和元组si构成的相似性连接结果元组对之前,还包括:如果数据元组rj和数据元组si之间EMD距离的上界值小于或等于相似性阈值θ,则将所述元组对存入结果集RSupperbound。

5.根据权利要求2所述的数据流相似性的连接方法,其特征在于,在返回Fj中和si间的EMD距离不大于θ的所述R数据流上的数据元组R’{rj}和元组对之前,还包括:如果数据元组rj和数据元组si之间EMD距离的下界值大于相似性阈值θ,则将删除数据元组rj。

6.根据权利要求2所述的数据流相似性的连接方法,其特征在于,所述进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接包括:将所述结果集RSi和所述结果集RSupperbound的并集作为所述相似性连接的结果。

说明书 :

一种数据流相似性的连接方法

技术领域

[0001] 本发明涉及数据管理技术领域,尤其涉及一种数据流相似性的连接方法。

背景技术

[0002] Melody-Join策略为基于地球移动距离(英文:Earth Mover’s Distance,简称EMD)距离的相似性查询设计了高效的索引构建策略。先通过特征向量将高维数据元组映射到为一维直方图,然后对映射得到的一维的直方图构建累积分布函数(CDF),再通过近似估计把CDF转化为正态分布,之后把得到的正态分布通过霍夫变换转化得到二维空间的数据点。以上过程将高维数据元组转换为二维空间的数据点。Melody-Join之后便可在二维空间上构建网格索引并推导出各个网格中的数据元组和查询对象之间的EMD距离的下界值,基于该下界值过滤无关数据元组。
[0003] 此外,TBI策略(Tree-Based Indexing策略)也为基于EMD距离的相似性查询设计了高效的索引结构。基于EMD距离对偶线性规划问题的一组可行解可以将高维数据元组映射为一维实数值,然后基于该一维映射空间构建一个B+树索引。给定L组可行解因此可以同时构建L棵B+树索引,构成一个B+树森林。已证明和查询对象q之间EMD距离接近的数据元组在B+树索引上的键值必然落于一个键值区间(参见本文公式(1))。因此基于该键值区间对每棵B+树进行范围查询都可得到该q的一个查询候选集,多棵B+树索引返回的查询候选集的并集即是q的约简的查询候选集。之后再基于一系列EMD距离的上界或下界函数对该查询候选集中的数据对象进行过滤,之后便可得到查询对象q最终的相似性查询的查询结果。
[0004] Melody-Join方案在将高维数据元组转换为二维空间中数据点的过程中需要多次映射和变换,需要基于采样数据进行聚类等复杂操作才能得到较好的映射所用的向量,因此该转化过程给系统带来了不可小视的开销。数据流上数据快速到达,数据分布多变,不可能基于一部分数据聚类便可得到适用于所有数据的较好的映射向量,因而Melody-Join方案不适用于应用于为数据流上的数据构建索引。
[0005] TBI方案不是针对于动态的数据流环境而是相对静态的数据库环境所构建的,因此在建立索引时给数据库中的所有数据统一构建了一个大的B+树森林索引。这种方案不适用于数据流环境,因为:首先,数据流上的数据是源源不断到达系统的,不可能在系统中构建一个大索引组织所有的数据,因此要定期根据滑动窗口的语义删除掉一些过期的数据索引,然而如果频繁的在大索引结构上进行过期数据的删除,会带来巨大的索引维护开销(例如要频繁调整B+树的平衡性),降低系统的处理效率,因此亟待需要设计针对数据流环境下的轻量级的索引;其次,数据流上的数据可能存在乱序到达系统的现象,需要在设计轻量级索引结构的同时慎重考虑过期数据的删除策略,确保未来查询结果的正确性和完整性。
[0006] 公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

[0007] 技术问题
[0008] 有鉴于此,本发明要解决的技术问题是,如何提供一种高效的数据流相似性的连接方法。
[0009] 解决方案
[0010] 为解决以上技术问题,本发明在第一方面提供一种数据流相似性的连接方法,包括:
[0011] 根据预设时间跨度值P在数据流R上构建B+树森林集合索引;
[0012] 当所述数据流R和所述数据流S上的数据元组的时间戳在当前滑动窗口的时间范围内时,基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接。
[0013] 在一种可能的实现方式中,所述根据预设时间跨度值P在数据流R上构建B+树森林集合索引包括:
[0014] 根据预设时间跨度值P把时间域划分为T个互相不重叠的时间区间,T大于等于1;
[0015] 为所述R数据流上每个所述时间区间内达到的所述数据元组构建一个R数据流B+树森林索引,得到所述R数据流所述时间域上T个B+树森林索引,所述T个B+树森林索引构成所述R数据流的B+树森林集合索引。
[0016] 在一种可能的实现方式中,在根据预设时间跨度值P在数据流R上构建B+树森林集合索引之后,还包括:
[0017] 当所述B+树森林集合索引中所包含的数据元组的个数大于等于c*P的值且Factive.maxTime-Factive.minTime>=P时,新建一个B+树森林索引Fnew,并将所述B+树森林索引Fnew设定为当前的活跃索引Factive;
[0018] 其中,Factive.maxTime为当前活跃索引所维护的数据元组的最大时间戳,Factive.minTime为当前活跃索引所维护的数据元组的最小时间戳,c为预设的B+树森林索引的容量系数。
[0019] 在一种可能的实现方式中,在基于所述数据流R上的B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接之前,还包括:
[0020] 当接收到所述数据流S上的数据元组s之后,计算所述B+树森林集合索引中的每个所述时间区间上构建的B+树森林索引Fi中数据元组的最小时间戳和所述元祖s的时间戳之间的差值;
[0021] 当所述差值大于所述滑动窗口大小和最大网络延迟D之和时,则可安全删除所述B+树森林索引Fi,因为由于滑动窗口的限制Fi中的数据元组不会和未来S上新到达的数据元组进行比较连接。
[0022] 在一种可能的实现方式中,还包括:设置所述预设时间跨度值
[0023] 其中,|W|为所述滑动窗口大小。
[0024] 在一种可能的实现方式中,所述基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接,包括:
[0025] 基于所述数据流S中的数据元组si的时间戳,从B+树森林集合F中找到时间跨度区间和所述数据元组si要查询的时间滑动窗口有交集的所述B+树森林集合F’;
[0026] 当所述B+树森林集合F中的B+树森林Fj∈F’满足si.timestamp-Fj.maxTime≤|W|时,返回Fj中和si间的EMD距离不大于θ的且时间戳落在si的滑动窗口范围内的所述R数据流上的数据元组R’{rj}和元组si构成的相似性连接结果元组对,将所述元组对存入结果集RSi。
[0027] 在一种可能的实现方式中,所述Fj中和si间的EMD距离不大于θ的所述R数据流上的数据元组R’{rj}包括:满足公式1规定的区间范围的数据元组R'{rj},所述公式1规定的区间范围为[min(Фl)+key(s,Фl)-θ,θ-ckey(s,Фl)],
[0028] min(Фl)是和EMD距离对偶线性规划问题的可行解Фl相关的实数,key(s,Фl)是s基于可行解Фl计算得到的键值,ckey(s,Фl)是s基于可行解Фl计算得到的反键值。
[0029] 在一种可能的实现方式中,在返回Fj中和si间的EMD距离不大于θ的所述R数据流上的数据元组R’{rj}和结果元组对之前,还包括:
[0030] 如果数据元组rj和数据元组si之间EMD距离的上界值小于或等于相似性阈值θ,则将所述元组对存入结果集RSupperbound。
[0031] 在一种可能的实现方式中,在返回Fj中和si间的EMD距离不大于θ的所述R数据流上的数据元组R’{rj}和元组对之前,还包括:
[0032] 如果数据元组rj和数据元组si之间EMD距离的下界值大于相似性阈值θ,则将删除数据元组rj,rj不再和si进行后续的相似性比较。
[0033] 在一种可能的实现方式中,所述进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接包括:将所述结果集RSi和所述结果集RSupperbound的并集作为所述相似性连接的结果。
[0034] 有益效果
[0035] 本发明提供的一种数据流相似性的连接方法,通过根据预设时间跨度值P在数据流R上构建B+树森林集合索引;当所述数据流R和所述数据流S上的数据元组的时间戳在当前滑动窗口的时间范围内时,基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接,能够基于B+树森林集合索引设计数据流上基于滑动窗口语义和EMD距离的相似性连接方法,为滑动窗口语义下基于EMD距离的数据流相似性连接查询提出了解决方案,显著提高了相似性连接的处理效率和性能。
[0036] 本发明实施例提供的一种数据流相似性的连接方法,针对数据流环境,为数据流上基于EMD距离的相似性分析设计了高效的索引结构,即B+树森林集合索引,以及该索引结构的维护方法。
[0037] 本发明实施例提供的一种数据流相似性的连接方法,结合了数据流达到速率快,数据连续无止境到达的特点,将大索引分解成不同时间区间上的小索引,因此过期数据可以以索引为基本粒度进行一次删除,这样避免了由于数据过期而对单一B+树索引结构进行反复删除数据元组带来B+树平衡性不断进行调整而带来的索引维护开销。
[0038] 本发明实施例提供的一种数据流相似性的连接方法,给出了如何确定每个B+树森林的时间区间跨度P的最优值的方法。
[0039] 根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

[0040] 包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0041] 图1示出本发明实施例提供的一种数据流相似性的连接方法的流程图;
[0042] 图2示出数据流R上的B+树森林集合索引维护B+树森林索引的示意图;
[0043] 图3示出B+树索引构成B+树森林索引的示意图;
[0044] 图4示出本发明另一实施例提供的一种数据流相似性的连接方法的流程图。

具体实施方式

[0045] 下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
[0046] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
[0047] 在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
[0048] 另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。
[0049] 实施例1
[0050] 本发明实施例给定两个数据流R和S,每个数据流均由基本形式为ri=(r,time)、sj=(s,time)的数据元组(Tuple)构成,其中r=(r1,...rn)是包含n个数据桶的直方图记录,time为该产生该直方图记录的时间戳。给定相似性阈值θ和滑动窗口大小|W|,本发明实施例返回一系列元组对的集合,即{},其中ri∈R,sj∈S,且满足滑动窗口时间限制|ri.timestamp-sj.timestamp|≦|W|和基于EMD距离的相似度限制EMD(ri,sj)≦θ。相关符号的含义详见表1。
[0051]
[0052]
[0053] 表1
[0054] 图1示出本发明实施例提供的一种数据流相似性的连接方法的流程图,如图1所示,该方法可以包括:
[0055] 步骤S1、根据预设时间跨度值P在数据流R上构建B+树森林集合索引。
[0056] 基于L组EMD距离对偶线性规划问题的可行解,记为{Φ1,...,ΦL},将数据流R上的每一个元组分别映射至L个一维实数键值映射空间,记为{Ω1,...,ΩL}(映射函数f:给定任意一组EMD距离对偶线性规划问题的可行解,记为Φ={φ1,...,φn}和Π={π1,...,πn},通过计算数据流上数据元组r={r1,…,rn}的键值,即 即可将该数据元组映射至一维实数键值空间Ω中)。
[0057] 在一种可能的实现方式中,本步骤可以包括根据预设时间跨度值P把时间域划分为T个互相不重叠的时间区间,T大于等于1。为所述R数据流上每个所述时间区间内达到的数据元组构建一个R数据流B+树森林索引,得到所述R数据流所述时间域上T个B+树森林索引,所述T个B+树森林索引构成所述R数据流的B+树森林集合索引。
[0058] 在一种可能的实现方式中,可以设置所述预设时间跨度值 其中,|W|为所述滑动窗口大小。为了有效降低滑动窗口检查时所访问的B+树森林的个数和所访问的B+树森林中的数据元组个数之和,从而提高查询处理的效率,可证明当B+树森林的时间跨度值 时,可以使得滑动窗口合法性检查时所访问的B+树森林的个数和所
访问的B+树森林中的数据元组的个数之和达到最优,从而有效降低系统查询处理在进行数据元组滑动窗口检查时的索引访问的开销。
[0059] 此外,本发明实施例还可以包括隔一段时间统计一下各个B+树森林所包含的数据元组的平均个数n,基于n可以得到B+树森林索引的容量系数为c,即c=n/Pactual,其中Pactual为B+树森林的实际时间跨度值。基于更新后的c值和公式 即可以计算并更新P值,以便构建和维护新的B+树森林时使用。
[0060] 图2示出数据流R上的B+树森林集合索引维护B+树森林索引的示意图,如图2所示,数据流R上的B+树森林集合索引维护了T=6个B+树森林索引,该T=6个B+树森林索引即{F1,…,F6},每个B+树森林负责组织一个时间区间内的数据元组。拥有最新时间戳元组的B+树森林索引被称为活跃索引(Active Index),记为Factive,如图2中Factive=F6,F6就是当前的活跃索引。
[0061] 每个时间区间的B+树森林索引由L棵B+树索引构成。每个B+树索引基于一个一维实数键值映射空间,即Ωl,来组织R数据流上所有在该时间区间内达到的数据元组。
[0062] 图3示出B+树索引构成的B+树森林索引的示意图,如图3所示,以L=2为例,展示了一个由两棵B+树索引(即T1和T2)构成的B+树森林索引。假设有2组EMD距离对偶问题的可行解Ф1和Ф2和16个数据流R上的数据元组{r1,r2,…,r16}。基于可行解Ф1和Ф2可以将每个元组分别映射到两个一维实数空间Ω1和Ω2,在每个实数空间都可以构建一棵B+树索引,即得到T1和T2,这两棵B+树用自己的方式来组织这16个数据元组。注意:每个B+树索引的叶子节点中仅存放每个数据元组在内存中的地址。
[0063] 步骤S2、当所述数据流R和所述数据流S上的数据元组的时间戳在当前滑动窗口的时间范围内时,基于所述B+树森林集合索引,进行滑动窗口语义下基于EMD距离的所述数据流R和所述数据流S之间的相似性连接。
[0064] 本步骤具体可以包括:首先基于si的时间戳对B+树森林集合F进行滑动窗口合法性检查,即从F中找到时间跨度区间和si要查询的时间滑动窗口有交集的所有B+树森林集合,记为F’。该集合中的每个B+树森林Fj∈F’需满足si.timestamp-Fj.maxTime≤|W|的条件限制(参见算法2:行7-8)。然后以si为查询、θ为相似性阈值在F’中每个B+树森林Fj上执行基于EMD距离的相似性搜索(参见算法2:行9),返回Fj中和si间的EMD距离不大于θ且时间戳落在si的滑动窗口范围内的所有R数据流上的元组,设为R’{rj},并将每个元组对,rj∈R’作为相似性连接的结果对返回(算法2:行10)。
[0065]
[0066]
[0067] 表2
[0068] 其中,以si为查询、θ为相似性阈值在F’中每个B+树森林Fj上执行基于过滤链的相似性搜索(算法2:行9)的具体执行过程详见算法3,具体步骤如下:
[0069] 对于Fj∈F’,检查其中的每个数据元组rk是否满足查询si的滑动窗口条件限制,即检查|rk.timestamp-si.timestamp|≤|W|是否成立,若成立则进一步检验rk是否满足B+树森林索引过滤条件,即看rk是否同时存在于Fj中各个B+树索引返回的查询候选集中,即满足rk∈rangeQuery(si,θ,Fj)。如果以上两个条件均满足,即可将rk放入查询候选集candidate中(参见算法3:行2-3)。
[0070] 根据数据流上相邻数据间往往相似程度比较大的特点,基于每一次真实EMD计算过程中新产生的可行解Фnew和公式1对si的查询候选集candidate中的无关数据进行进一步过滤(算法3:行4-5)。
[0071] 所述公式1规定的区间范围为
[0072] [min(Фl)+key(s,Фl)-θ,θ-ckey(s,Фl)]  (1)
[0073] min(Фl)是和EMD距离对偶线性规划问题的可行解Фl相关的实数,key(s,Фl)是s基于可行解Фl计算得到的键值,ckey(s,Фl)是s基于可行解Фl计算得到的反键值。
[0074] 具言之,B+树森林索引可以过滤掉对无关数据的访问和连接条件的判断,大大提高查询处理的执行效率。给定基于可行解Фl构建的B+树索引,已证明对于给定的数据流S上的任意一个数据元组s和用户给定的相似性阈值θ,则和s之间的EMD距离不大于θ的R上的元组r(即能和s连接上的元组r),其在B+树上的一维键值key(r,Фl)的取值必落在以下公式1规定的键值区间。因此基于公式1所示的区间在B+树上进行一次范围查询即可以返回一个约简过的s的查询候选集。因为B+树森林中的每棵B+树都可以返回一个约简的查询候选集,这些查询候选集的交集是进一步约简的s的查询候选集。例如图3中的B+树T1返回的查询候选集(已用虚线框标明)为{r6,r7,r11,r12},B+树T2返回的查询候选集为{r5,r6,r7,r8,r12,r13},因而查询s的约简后的查询候选集在此例为{r6,r7,r12}。
[0075] 基于EMD距离的下界函数LBIM对上一步骤得到的si的约简后的查询候选集candidate中的每个元组进行判断和过滤,得到进一步约简的查询候选集candidate(详见算法3:行6-8)。
[0076] 基于EMD距离的上界函数UBp上一步骤得到的si的约简后的查询候选集candidate中的每个数据进行判定,若candidate中的元组rj和si之间EMD距离的上界值已经小于或等于相似性阈值θ,则将作为相似性连接的结果对插入结果集RSupperbound,同时将rj从candidate中删除(详见算法3:行9-12)。
[0077] 对于candidate中经过上一步骤还未能过滤掉的数据元组rj,计算其到si之间的EMD距离,若该EMD距离值小于等于相似性阈值θ,则将作为相似性连接的结果对插入结果集RS中,同时将EMD距离计算过程中新产生的一组EMD距离对偶线性规划问题的可行解保存下来以供算法3第4-5行新可行解过滤所用(详见算法3:行13-16)。
[0078] 将数据元组si从缓存ca中删除(详见算法3:行17)。
[0079] 将结果集RS和RSupperbound取并集,该并集就是数据元组si∈S和数据流R上相应滑动窗口内的数据元组的进行基于EMD距离的相似性连接的操作结果(详见算法3:行18)。
[0080]
[0081] 表2
[0082] 本发明实施例提供的一种数据流相似性的连接方法,基于所提出的B+树森林集合索引设计了数据流上基于滑动窗口语义和EMD距离的相似性连接方法,显著提高了相似性连接的处理效率和性能。
[0083] 本发明实施例提供的一种数据流相似性的连接方法,给出了如何确定每个B+树森林的时间区间跨度P的最优值的方法。
[0084] 实施例2
[0085] 图4示出本发明另一实施例提供的一种数据流相似性的连接方法的流程图,在图4中与图1采用相同附图标记的步骤,均与图1适用于相同的文字说明,在此不再赘述。
[0086] 如图4所示,在步骤S1之后还包括步骤S3、当所述B+树森林集合索引中所包含的数据元组的个数大于等于c*P的值且Factive.maxTime-Factive.minTime>=P时,新建一个B+树森林索引Fnew,并将所述B+树森林索引Fnew设定为当前的活跃索引Factive;其中,Factive.maxTime为当前活跃索引所维护的数据元组的最大时间戳,Factive.minTime为当前活跃索引所维护的数据元组的最小时间戳,c为预设的B+树森林索引的容量系数。
[0087] 具言之,每个B+树森林Fi都维护其所包含的数据元组中的最小的时间戳(即最旧的时间戳),记为Fi.minTime;和其所包含的数据元组中的最大的时间戳(即最新的时间戳),记为Fi.maxTime。如果不存在数据流的乱序到达问题(即时间戳新的元组反而在时间戳旧的元组之后到达查询系统的现象),数据流R上每个新到达的数据r被插入到当前的活跃索引中(例如图2中的F6),同时更新当前活跃索引所维护的Factive.maxTime值和Factive.minTime值。设B+树森林索引的容量系数为c,B+树森林的时间跨度值为P,则仅当活动索引中所包含的数据元组的个数大于等于c*P值且Factive.maxTime-Factive.minTime>=P时,系统会新建一个B+树森林索引Fnew,并将其设定为当前的活跃索引Factive。(参见算法1:行1-2、行6-9。)
[0088] 此外,步骤S1之后还可以包括步骤S4、当接收到所述数据流S上的数据元组s之后,计算所述B+树森林集合索引中的每个所述时间区间上构建的B+树森林索引Fi中数据元组的最小时间戳和所述元祖s的时间戳之间的差值;当所述差值大于所述滑动窗口大小和最大网络延迟D之和时,则可安全删除所述B+树森林索引Fi,因为由于滑动窗口的限制Fi中的数据元组不会和未来S上新到达的数据元组进行比较连接。
[0089] 具言之,当一个数据流S上的元组s到达查询处理系统(算法1:行11),元组s被插入至内存中的缓存队列ca中(算法1:行12)。系统之后会检查B+树森林集合索引中的每个时间区间上构建的B+树森林索引Fi中元组的最小时间戳(即最早到达的元组的时间戳)和s的时间戳之间的差值,即s.timestamp-Fi.minTime,如果该差值大于窗口大小和最大网络延迟D之和,即大于|W|+D,则表示Fi中的数据元组的时间太旧,在滑动窗口语义限制下不会和未来到达系统的S数据流上的元组进行连接,故此时可以安全地从内存中删除该B+树森林索引Fi(参见算法1:行14-15)。
[0090]
[0091]
[0092] 表3
[0093] 如果存在数据流的乱序到达问题,设乱序到达的数据元组的r的时间戳为r.timestamp,则可以证明目前系统中肯定维护有一个B+树森林索引Fi,该索引的时间跨度包含r的时间戳r.timestamp,则将r插入到该B+树森林索引Fi中,(参见算法1:行3-5)。
[0094] 本发明实施例提供的一种数据流相似性的连接方法,为滑动窗口语义下基于EMD距离的数据流相似性连接查询提出了解决方案。
[0095] 本发明实施例提供的一种数据流相似性的连接方法,针对数据流环境,为数据流上基于EMD距离的相似性分析设计了高效的索引结构,即B+树森林集合索引,以及该索引结构的维护方法。
[0096] 本发明实施例提供的一种数据流相似性的连接方法,结合了数据流达到速率快,数据连续无止境到达的特点,将大索引分解成不同时间区间上的小索引,因此过期数据可以以索引为基本粒度进行一次删除,这样避免了由于数据过期而对单一B+树索引结构进行反复删除带来B+树平衡性不断进行调整而带来的索引维护开销。
[0097] 本发明实施例提供的一种数据流相似性的连接方法,针对数据流上的数据乱序到达的现象设计了合理高效的内存数据过期删除策略,能保证相似性连接操作结果的完整性。
[0098] 与现有的Melody-Join和TBI方案相比,本发明实施例具有以下优点:
[0099] 本发明实施例和Melody-Join虽然都需要将高维数据降维映射至低维空间然后构建索引。然而,本方案的降维映射只需要获得一组EMD距离对偶线性规划问题的可行解,该可行解可以在计算任意两个数据对象之间的EMD距离的过程中顺带产生,因此更快捷方便。Melody-Join在获得降维映射向量时则需要基于数据集进行复杂度较高的聚类操作,因而不适用于数据动态变化快速到达的流式计算环境。
[0100] Melody-Join和TBI只是针对相对静态的数据库环境构建一个大索引。如本文第四节所指出,该方案用于数据流上过于笨重,当有数据频繁需要从索引删除时增大了索引的维护代价,影响了系统性能。而本文提出的方案结合数据流的动态变化的特点设计了轻量级高效的基于不同时间区间的子索引结构,在滑动窗口语义下可以以子索引为粒度删除过期数据,避免了从索引结构中删除数据元组,因而提高了索引的维护性能和开销。
[0101] 本发明实施例结合数据流上数据可能乱序到达的特点,在设计轻量级索引结构的同时结合最大网络延迟D慎重考虑过期数据的删除策略,确保未来查询结果的正确性和完整性。
[0102] Melody-Join和TBI因为针对的是数据库中的数据设计的,因此没有利用数据流上数据的时间关联性来进一步过滤查询后选集。本方案结合数据流上时间相邻的数据元组往往取值相似的特点(即数据流上的时间关联性),使用在系统最近进行EMD计算过程中新产生的可行解来进一步过滤查询候选集。系统中最近进行的EMD计算都是针对两个数据流上最新到达的数据进行的。根据数据流上数据间的时间关联性,接下来要计算比较的两个数据对象和之前EMD距离计算比较的两个对象可能极为相似,因此基于之前EMD计算过程中产生的新可行解来计算当前两个数据对象之间的EMD距离的下界值,该下界值会更紧(离真实EMD距离值更接近),能够大大缩减查询候选集的大小,从而提高整个系统的查询处理效率。
[0103] 前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
[0104] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。