主权项 |
基于时间滑动窗口的数据流点连接查询方法,其特征在于,包括如下步骤:步骤1:为数据流A和数据流B分别建立基于时间的滑动窗口,分别为时间滑动窗口A和时间滑动窗口B,进入步骤2;步骤2:为数据流A和数据流B分别设定更新周期为ta和tb;步骤3:处理数据流A则依次执行步骤4至步骤8,处理数据流B则依次执行步骤9至步骤13;所述步骤4至步骤8与步骤9至步骤13并行执行;步骤4:数据流A的更新周期到来时创建一个缓冲区A(n‑1),n=2、3、4……,接收该更新周期内到来的数据流A的元组,并初始化元组的状态为有效,该缓冲区中所有元组具有相同的时间戳,时间戳为该缓冲区创建的时刻;步骤5:数据流A的更新周期再次到来时,缓冲区A(n‑1),n=2、3、4……,不再接收元组,而是开辟新的缓冲区A(n),n=2、3、4……,来接收后续到来的元组,同时对缓冲区A(n‑1)中的元组进行处理;步骤6:缓冲区A(n‑1)中所有的元组依次对时间滑动窗口B进行探测,查找与缓冲区A(n‑1)中元组连接属性值相同的元组;如果找到连接属性值相同的元组则进行连接并表明缓冲区A(n‑1)中该元组连接成功,如果未找到表明连接失败;步骤7:查看缓冲区A(n‑1)中所有元组连接情况,将连接成功的元组批量删除,将连接失败的元组批量插入到时间滑动窗口A中;步骤8:检查在时间滑动窗A口中停留时间超过预定时间TA且时间戳最小的一批元组并清理,检测是否有数据流A的元组到来,如果有则返回步骤5,否则待缓冲区A(n)中和时间滑动窗口A中的元组都处理完后结束;步骤9:数据流B的更新周期开始时创建一个缓冲区B(n‑1),n=2、3、4……,接收该更新周期内到来的数据流B的元组,并初始化元组的状态为有效,该缓冲区中所有元组具有相同的时间戳,该时间戳为缓冲区创建的时刻;步骤10:数据流B的更新周期再次到来时,缓冲区B(n‑1),n=2、3、4……,不再接收元组,而是开辟新的缓冲区B(n),n=2、3、4……,来接收后续到来的元组,同时对缓冲区B(n‑1)中的元组进行处理;步骤11:缓冲区B(n‑1)中的所有元组顺次对时间滑动窗口A进行探测,查找与缓冲区中B(n‑1)元组连接属性值相同的元组;如果找到连接属性值相同的元组则进行连接且表明缓冲区B(n‑1)中该元组连接成功,如果未找到表明连接失败;步骤12:查看缓冲区B(n‑1)中所有元组的连接情况;将连接成功的元组批量删除,将连接失败的元组批量插入到时间滑动窗口B中;步骤13:检查在时间滑动窗口B中停留时间超过预定时间TB且时间戳最小的一批元组并清理,检测是否有数据流B的元组到来,如果有则返回步骤10,否则待缓冲区B(n)中和时间滑动窗口B中的元组都处理完后结束。 |