论文部分内容阅读
流式数据是一个随着时间的不断延伸而不断增长的动态数据的集合,其数据能够实时到达,且到达次序独立,不受各种应用型系统的控制;数据的规模宏大且不能提前知道它的最大值;数据一旦被处理,除了特意保存之外,不允许再次被取出处理,或者再次提取所花费的代价昂贵。传统的数据分析和流式数据分析处理主要在查询和处理方式上有所不同,传统数据分析处理是静态过程,当系统不繁忙时将数据批量导入数据仓库中,而流式数据是不断注入数据仓库中,这是一个流动的过程,动态的来处理数据。通过对流式数据的研究我们可以进行卫星云图的监测,对股市进行分析,判断网络攻击,煤矿灾害预测等。流式数据中事件的查询以及获取是研究流式数据各种操作的基础。现有流式数据应用系统中的事件查询只是针对流中的异常的数据点进行查询,而在实际的情况中,流式数据中的事件大多为一段连续时间下的异常,其中包含着时间、空间位置上的各种各样的信息,因此,传统阈值查询方法无法从不同时间及空间角度对事件进行全方面的分析,查询准确性非常低,导致根本无法获取事件的全部完整信息。针对这些问题,本文将基于多粒度Top-k查询的流式数据事件获取方法展开研究。首先对整个监测区域进行分区,提出了一种基于投影的分区方法,构建监测簇。通过基于投影的分区构建的监测簇,可以解决实际中各监测区域的监测工作面常为不规则或狭长地带;并采用k-means聚类方法在各个监测区域选取监测簇头节点,保证每个区域所选监测簇头节点可以代表这个区域;在此基础上,对各个区域的监测簇头节点进行Top-k异常簇头结点根据发生异常的严重程度进行排序,提出一种改进的Top-k查询方法;并就发生异常的监测簇头节点的排序结果,提出了一种区域交叉定位法,获取发生异常事件的簇头节点的具体位置。其次,由于每个簇头节点在不同时间粒度下均可能发生异常事件,为了获取发生异常事件的完整信息,首先,将发生异常的事件最严重的簇头节点中的不同时间粒度下的事件按严重程度进行Tok-k排序,本文提出一种基于链树的异常事件排序方法;然后基于滑动平均值法双向扩大查询范围,进一步确定异常数据的具体范围,为后续构造异常模板做准备。最后,针对本文提出的基于多粒度Top-k查询的流式数据事件获取方法进行实验的分析,通过对传统通的分区方法与本文提出的基于投影的分区方法进行实验验证,并通过对基于链树的异常事件排序与传统的排序进行比较来验证基于链树的异常事件排序的效率,实验表明,本文提出的基于链树的异常事件排序方法速度更快。