[发明专利]一种估算滑动窗口下的数据流平均值的方法与系统在审
申请号: | 201410315983.8 | 申请日: | 2014-07-02 |
公开(公告)号: | CN104090952A | 公开(公告)日: | 2014-10-08 |
发明(设计)人: | 王非;陈岁迪 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 武汉东喻专利代理事务所(普通合伙) 42224 | 代理人: | 方放 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 估算 滑动 窗口 数据流 平均值 方法 系统 | ||
1.一种估算滑动窗口下数据流平均值的方法,其特征在于,包括以下步骤:
(1)、初始化指数直方图:所述指数直方图把数据元素划分到不同的层次上,每层由若干个桶组成,所述桶用来存储数据流中一段时间内的数据集合信息,所述信息包括数据集合对应的时间戳和容量,所述时间戳表示的是数据集合中距离当前时刻最近的数据的时间戳,容量表示的是数据集合中所有数据元素的和;
(2)、将数据流的信息储存在桶中:所述桶在指数直方图中的位置由时间戳决定:层数越高,所述层上的桶的时间戳越旧,层数越低,所述层上的桶的时间戳越新;所述桶的时间戳越旧,表示桶中数据元素离当前时刻越远;桶的时间戳越新,表示桶中数据元素离当前时刻越近;同一层中的桶按时间戳新旧顺序排列;随着数据的不断流入,当有新的数据添加以及旧的数据删除时,进行桶的合并与分解操作,合并分解规则以桶的容量为参考;
(3)、查询指数直方图,输出近似平均值:首先计算指数直方图中所有桶的容量之和SUM,如果指数直方图只有一层,则输出近似平均值计算公式为其中N是滑动窗口的大小;如果指数直方图不只一层,则查询时间戳最旧的桶的容量C,输出近似平均值其计算公式为其中N是滑动窗口的大小。
2.如权利要求1所述的方法,其特征在于,所述步骤(2)包括以下子步骤:
(2.1)、检查是否存在已经超过当前滑动窗口的范围的桶,如存在则从指数直方图中删除其信息;
(2.2)、从数据流中取出当前到达的数据项,根据用户自定义的精度将数据流中当前到达的数据项转换成整数值;如果转换之后的数据不等于0,则执行步骤(2.3);如果等于0,则不必执行步骤(2.3);
(2.3)、更新指数直方图中的桶存储的信息,按照桶的分解合并规则对指数直方图中的桶进行分解合并。
3.如权利要求2所述的方法,其特征在于,所述步骤(2.1)中检查是否存在桶已经超过当前滑动窗口的时间范围,具体的是通过检查时间戳最旧的桶的时间戳与(t+1)mod(N)是否相等,若两者相等,则表示时间戳最旧的桶超过了当前滑动窗口的时间范围,其中t为当前时刻,N为窗口的大小,其中mod表示取两个整数相除后结果的余数。
4.如权利要求2或3所述的方法,其特征在于,所述步骤(2.3)包括以下子步骤:
(2.3.1)、根据用户自定义的精度将数据流中当前到达的数据项转换成整数值;新建一个桶,时间戳为(t+1)mod(N),容量为当前到达的数据项转换后的值的大小,其中t为当前时刻,N为滑动窗口的大小,将所述桶插入到指数直方图的最低层B0中,用Bi表示指数直方图中的第i层,i从0开始计数;然后从B0层开始逐步检查Bi层中所有桶的容量之和;
(2.3.2)、如果Bi层中所有桶的容量之和sumi超过Bi层预定义的值Maxsumi,则执行步骤(2.3.3),否则不必执行剩下子步骤;Maxsumi表示第i层允许的容量和的最大值,Maxsumi=(k+1)*2i,k为用户自定义的整数参数;
(2.3.3)、计算Bi层多余容量D;计算规则是如果(sumi-Minsumi)mod2i+1等于0,则Bi层多余容量D的计算公式为sumi-Minsumi;如果(sumi-Minsumi)mod2i+1不等于0,则Bi层多余容量D的计算公式为sumi-Maxsumi;
(2.3.4)、从Bi层时间戳最旧的桶开始一一检查进行分解合并;i增加一个单元,继续执行步骤(2.3.2),检查Bi层所有桶的容量之和,直到完成所有层的检查。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410315983.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:查询信息推荐方法和装置
- 下一篇:一种基于云计算的数据库访问方法及系统