[发明专利]一种基于高频键值计数的分布式倾斜流处理方法和系统有效
| 申请号: | 202011629933.9 | 申请日: | 2020-12-31 |
| 公开(公告)号: | CN112783644B | 公开(公告)日: | 2023-06-23 |
| 发明(设计)人: | 李肯立;郭耀莲;唐卓;刘园春;罗文明;宋莹洁;阳王东;曹嵘晖;肖国庆;刘楚波;周旭 | 申请(专利权)人: | 湖南大学 |
| 主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/2455 |
| 代理公司: | 武汉臻诚专利代理事务所(普通合伙) 42233 | 代理人: | 宋业斌 |
| 地址: | 410082 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 高频 键值 计数 分布式 倾斜 处理 方法 系统 | ||
1.一种基于高频键值计数的分布式倾斜流处理方法,其特征在于,包括如下步骤:
(1)获取数据流中待处理的数据项ei,和数据流中在数据项ei之前已处理的数据项总数M;
(2)判断数据项ei是否位于高频键集S中,如果是,则将高频键集S中与该数据项相同的键所对应的值加1,然后进入步骤(10),否则进入步骤(3);
(3)使用计数式布隆过滤器对数据项ei进行处理,以得到该数据项ei的频数fi;
(4)判断数据项ei的频数fi大小是否大于等于高频键阈值ε,如果是,则进入步骤(5),否则转入步骤(6);
(5)判断高频键集S中已有键数是否等于高频键集最大键数C,如果是,则将数据项ei替换高频键集S中值最小的键,并将该键的值设置为fi+fmin,其中fmin是高频键集S中键的最小值,然后转入步骤(10);否则,将数据项ei及频数fi作为新的键值插入高频键集S中,然后转入步骤(10);
(6)判断数据项ei的频数fi大小是否大于等于低频键阈值θ,如果是,则转入步骤(9),否则进入步骤(7);
(7)判断低频键队列Q是否已满,如果是,则先删除低频键队列Q中头节点的数据项eh,再将数据项ei插入低频键队列Q中,然后进入步骤(8),否则,直接将数据项ei插入低频键队列Q中,然后转入步骤(9);
(8)判断低频键队列Q中头节点的数据项eh的衰减概率是否大于随机数r,如果是,则使用计数式布隆过滤器对低频键队列Q中头节点的数据项eh进行更新,以得到该数据项eh更新后的频数,然后进入步骤(9),其中b为预设的指数底数,b>1且b≈1,fh为低频键队列Q中头节点的数据项eh的频数,r为随机数产生器生成的范围为[0,1)的随机数;否则进入步骤(9);
(9)采用键值分组算法为数据项ei分配下游实例,并将数据流中已处理的数据项总数M加1,过程结束;
(10)根据高频键集S中与数据项ei相同的键所对应的值大小,确定该键可以被分配的下游实例数,并根据确定的下游实例数从下游实例中选择一个下游实例,将选择的下游实例分配给数据项ei,并将数据流中已处理的数据项总数M加1,过程结束。
2.如权利要求1所述的基于高频键值计数的分布式倾斜流处理方法,其特征在于,步骤(2)中的高频键集S是通过空间节省算法中基于流摘要的数据结构实现,高频键集S中相同计数值的键链接在同一个链表中,并指向同一个父桶,高频键集S中的不同父桶间使用双向链表链接。
3.如权利要求1所述的基于高频键值计数的分布式倾斜流处理方法,其特征在于,步骤(3)中的计数式布隆过滤器是一个包含w个计数器的数组B={B[0],B[1],...,B[w-1]},首先,计数式布隆过滤器利用t个不同的哈希函数h1(),h2(),...,ht()计算数据项ei所分别对应的哈希值h1(ei),h2(ei),...,ht(ei),然后,计算得到每个哈希值模w以后的处理结果h1(ei)%w,h2(ei)%w,…,ht(ei)%w,其后,将数组B中等于各个处理结果的元素分别加1,并将得到的所有元素中的最小值作为数据项ei的频数fi。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011629933.9/1.html,转载请声明来源钻瓜专利网。





