CN109783520A - 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 - Google Patents
基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 Download PDFInfo
- Publication number
- CN109783520A CN109783520A CN201811597780.7A CN201811597780A CN109783520A CN 109783520 A CN109783520 A CN 109783520A CN 201811597780 A CN201811597780 A CN 201811597780A CN 109783520 A CN109783520 A CN 109783520A
- Authority
- CN
- China
- Prior art keywords
- sketch
- sliding window
- flow data
- layer
- current layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000007906 compression Methods 0.000 claims description 11
- 230000006835 compression Effects 0.000 claims description 11
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 6
- 238000013144 data compression Methods 0.000 claims description 3
- 238000006116 polymerization reaction Methods 0.000 abstract description 3
- 238000011160 research Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000009975 flexible effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法主要有以下四部分内容:流数据在线处理系统。该处理系统主要由流数据在线处理引擎和摘要查找模块两部分组成。基于固定长度的滑动窗口的流数据摘要方法。基于时间戳的滑动窗口的流数据摘要方法。窗口聚合方法。本发明可以用于在线实时计算数据的顺序特征,在不需要精确查询的时候,能够在极短的时间内回答关于Rank值和分位数的查询。
Description
技术领域
本发明涉及一种流数据的摘要存储与在线计算方法。
背景技术
数据摘要可以使用较小的空间存储规模很大的数据,同时能在极短的时间内响应相关查询。针对数据的顺序特征的摘要也已经涌现了大量的研究成果。Wang,Ldeng等和Greenwald等在他们的文章中针对该问题介绍了目前的一些研究现状。1978年,Munro等提出了一种空间复杂度为的数据摘要的方法。2001年,Greenwald,M.等提出了一种确定性算法(GK算法),该算法使用的空间复杂度为同时该算法的出现提升了由Manku等提出的确定性算法(MRL算法)的空间复杂度。GK算法的空间复杂度被认为是最低的,但Agarwal等在他们的文章中证明了GK算法是不可合并的,即该算法不具有伸缩性和可扩展性。2016年,Karnin,Lang和Liberty三人提出了一种最佳的该问题的解决算法—KLL算法,实现了的空间复杂度。
滑动窗口被认为是解决实时性问题的一个重要工具。基于滑动窗口的数据摘要也有着相关的研究。2014年,Lin等是一个将Quantile问题的解决方法应用于滑动窗口模型上的人。他的算法达到了空间复杂度,其中W为滑动窗口的大小。Arasu和Manku在他们的研究中又将存储空间提升至2016年,Chun-Nam等提出了一种将指数直方图和前面提到的GK算法结合在一起的方法,该方法不论在存储空间上,还是说在摘要更新时间以及查询时间上,都是目前已知最好的。关于窗口聚合,Tangwongsan等总结了现有的关于窗口合并的研究,Papapetrou等提出了解决分布式流的数据摘要的方法。
传统的数据管理与计算都是建立在永久性数据集的基础上,这些数据集可以可靠地存储在稳定的存储器上,并在其整个生命周期内进行多次查询与更新。但是随着云计算、物联网、移动互连、社交媒体等新兴信息技术和应用模式的快速发展,促使全球数据量急剧增加,对于这些新型领域,对于数据的要求,往往可能要求数据到达就要做出相应的反馈,从而连续不断地进行实时计算。如大型电信与互联网服务提供商的网络安装中产生的连续数据流,银行中的交易操作,web服务器日志记录等等。对于这些源源不断产生的实时数据流,通常的数据处理和计算往往不在适用,所以针对流数据的处理以及计算的技术,也逐渐引起人们的关注。
在新兴的应用的日常运营过程中,往往会产生大量数据,这些数据以流的形式到达,且数据的时效性往往较短。这些流数据持续到达,速度快,容量近乎无限,传统的数据库技术已经不能很好地处理。每时每刻都有大量的往往是结构化的数据在各个系统间流动,并需要实时计算。在线数据实时监控,相当于对数据的一种实时查询。主要挑战在于,流失量的大小N通常是巨大的,这使得整个流中存储或者进行多次传递都是不切实际的。对于这样的流处理算法的要求是他们可以在小空间(算法的工作空间)小时间(算法处理每次更新的时间)内运行。这些约束可能意味着流计算产生基于存储器中的数据流的概要或“草图”产生近似的答案。金融银行系统与其他系统也有着大量的数据流动,这些数据不仅有结构化数据,也会有半结构化和非结构化数据。
发明内容
本发明的目的是:通过对金融银行系统与其他系的大数据的流式计算,发现隐含于其中的内在特征,帮助金融银行系统进行实时决策。
为了达到上述目的,本发明的技术方案是提供了一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,包括以下步骤:
步骤1、流数据在线处理
针对每条数据,根据基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法进行处理,进而更新Sketch中存储的数据,包括以下步骤:
步骤S101、一条数据到达后,将该数据加入存储Sketch的数据结构体中;
步骤S102、选择基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法对数据进行处理;
步骤S103、更新多层存储Sketch:
Sketch的每一层有一个特殊的存储结构Compactor,若当前层的存储结构Compactor满之后,则进行一次压缩操作,一半的数据丢弃,另一半的数据压缩进下一层,根据步骤102选择的结果,利用基于固定长度的滑动窗口的流数据摘要方法更新多层存储Sketch,或利用基于时间戳的滑动窗口的流数据摘要方法更新多层存储Sketch;
步骤2、摘要查找
根据想要查找Rank值的数字x,通过存储在Sketch中的元素来计算该数字x的Rank值,包括以下步骤:
步骤S201、获得想要查找Rank值的数字x;
步骤S202、初始化,令当前层数h=0,当前Rank值为0;
步骤S203、判断当前层数h是否小于等于Sketch中的总层数H,如果小于,则进入步骤S204,如果当前层数h大于总层数H,进入步骤S207;
步骤S204、查找Sketch中当前层数h中所有小于数字x的个数num;
步骤S205、根据Sketch中h层中的权值w,更新Rank值R,R=R+num*w;
步骤S206、更新当前层数h=h+1,返回步骤S203;
步骤S207、返回查询结果,即返回数字x对应的Rank值R。
优选地,所述基于固定长度的滑动窗口的流数据摘要方法包括以下步骤:
步骤S301、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S302、如果当前层h小于Sketch中的总层数H,进入步骤S303,否则,进入步骤S306;
步骤S303、如果Sketch中当前层h的触发器触发,进入步骤304,否则进入步骤S306;
步骤S304、当前层h执行一次压缩操作,从当前层h所有的数据中找到最老的数,然后将其与它的邻居进行一次压缩,即以50%的概率选择其中的一个插入下一层,另一个则丢弃,插入下一层的时候,按照顺序进行插入;
步骤S305、更新当前层h触发器,同时更新h的值,h=h+1,返回步骤S302;
步骤S306、更新h的值,h=h+1,返回步骤S302;
步骤S307、判断Sketch中H层的触发器是否触发了,如果是,则进入步骤S308,否则,进入步骤S309;
步骤S308、从Sketch的H层中选取最老的两个元素丢弃,并更新H层触发器,进入步骤S309;
步骤S309、输出新的Sketch。
优选地,所述基于时间戳的滑动窗口的流数据摘要方法包括以下步骤:
步骤S401、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S402、如果Sketch的当前层h满了,则进入步骤S403,否则进入步骤S407;
步骤S403、如果h小于等于Sketch中的总层数H,进入步骤S405,否则,进入步骤S404;
步骤S404、创建新的一层,更新H,H=H+1,进入步骤S405;
步骤S405、Sketch的当前层h执行整体压缩操作,即以50%的概率将Index为奇数的数丢弃,以50%的概率将Index为偶数的数丢弃,未被丢弃的数据插入到下一层,同时该插入过程保证下一层元素的有序性;
步骤S406、更新当前层h,h=h+1,返回步骤S402;。
步骤S407、获得更新后的Sketch;
步骤S408、删除步骤S407获得的Sketch中元素的时间戳在滑动窗口外的元素;
步骤S409、输出步骤S408得到的更新后的Sketch。
优选地,在所述步骤1之后,并所述步骤2之前,还包括:
将通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch与通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch合并。
优选地,所述合并包括以下步骤:
步骤S501、输入通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch及通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch,分别为定义为S1及S2;
步骤S502、如果S1的层数大于S2的层数,进入步骤S503,否则,进入步骤S504;
步骤S503、将S2的层数扩展至和S1一样,进入步骤S505;
步骤S504、将S1的层数扩展至和S2一样,进入步骤S505;
步骤S505、对于每一层,将S2的元素加入到S1中;
步骤S506、对于每一层,如果该层的元素大于该层的容器,进行一次整体的压缩操作;
步骤S507、令当前层h=0;
步骤S508、如果h小于等于S1中的总层数H,进入步骤S509,否则,进入步骤S514;
步骤S509、如果S1中的当前层h满了,进入步骤S510,否则,进入步骤S513;
步骤S510、如果当前层h=H,进入步骤S511,否则进入步骤S512;
步骤S511、创建新的一层,更新H,H=H+1;
步骤S512、当前层h执行整体压缩操作,一半元素压入下一层;
步骤S513、更新当前层h,h=h+1,返回步骤S508;
步骤S514、将更新后的S1作为合并后的Sketch输出。
以流的形式到达,时效性往往较短的这些流数据,其近期数据的重要性要远远大于很久之前的数据,本发明使用滑动窗口摘要来统计近期一段时间的数据顺序的特征,这样可以用很小的空间来获取近期流数据的一个顺序特征或是分布情况,也可以在很短的时间内回答关于Rank值或是Quantile的查询。
本发明提出的基于滑动窗口的在线获取流数据顺序特征摘要的方法,可以用于在线实时计算数据的顺序特征,在不需要精确查询的时候,能够在极短的时间内回答关于Rank值和分位数的查询。相比于传统的精确查询的方法,1亿数值计算一般情况花费2.5分钟,本方法则可以在几秒的时间内给出结果。同时,该方法的所用的存储空间相比于原有数据,节省了极大的空间,特别适合大数据流的实时在线的存储。同时,窗口聚合的方法的提出也给该方法提供了进行分布式扩展的可能,即该方法是可以用于分布式流的环境中,不能能够提升算法的性能,还能够为该算法带了可伸缩性的扩展。
附图说明
图1展示的是本发明的整体框架,主要由流数据在线处理和摘要存储两部分组成;
图2展示的是流数据在线处理的流程;
图3展示的通过当前滑动窗口中的Sketch来快速获取Rank值得查询过程;
图4展示的是基于固定长度的滑动窗口的流数据摘要方法随着新数据的到来的更新过程;
图5展示的基于时间戳的滑动窗口的流数据摘要方法随着新数据的到来的更新过程;
图6展示的是两个滑动窗口的Sketch的合并过程。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明提供的一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法主要有以下四部分内容:
(1)流数据在线处理系统。该处理系统主要由流数据在线处理引擎和摘要查找模块两部分组成。
(2)基于固定长度的滑动窗口的流数据摘要方法。
(3)基于时间戳的滑动窗口的流数据摘要方法。
(4)窗口聚合方法。
本发明的技术核心在于第(2)部分,第(3)部分和第(4)部分,在此基础上提出流数据在线处理方法。同时第(2)部分和第(3)部分提出的方法是流数据在线处理引擎中的处理核心。第(2)部分的基于固定长度的滑动窗口的流数据摘要方法,能够将最近的W个元素的摘要存储在Sketch中,该方法所用的空间复杂度为插入时间和查询时间分别为同时与现有算法不同的地方在于,该算法能够在窗口滑动的过程中保持正确性,即算法的误差不会随着窗口的滑动而增加。还有一点是可合并性,即两个滑动窗口的Sketch是可以合并在一起的,而这一点,现有的算法都是基于GK算法来做的,而该算法是已被证明是不能进行合并的,所以,该方法具有别的算法不具有的可伸缩性的特征。第三部分的基于时间戳的滑动窗口的流数据摘要方法,能够将最近T时间内的元素的摘要存储在Sketch中。而对于该方法,更新的时间复杂度和查询的时间复杂度分别为和根据这两种处理引擎,可以动态的生成该种滑动窗口中数据的摘要Sketch,而该Sketch具有了整个滑动窗口的顺序特征,也可以这么说,这个Sketch能够保存整个滑动窗口中数据的一种分布状态,通过查询Sketch能够在极短的时间内回答关于Rank值和Quantile的查询。第四部分主要利用了存储的数据结构的可合并的特性,提出了将两个窗口的Sketch进行合并的算法,这使得该方法具有了可扩展性,即能够扩展到分布式的环境。
根据以上思想,建立本发明的流数据在线处理方法包括以下步骤:
步骤1、流数据在线处理
针对每条数据,根据基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法进行处理,进而更新Sketch中存储的数据,包括以下步骤:
步骤S101、一条数据到达后,将该数据加入存储Sketch的数据结构体中;
步骤S102、选择基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法对数据进行处理;
步骤S103、更新多层存储Sketch:
Sketch的每一层有一个特殊的存储结构Compactor,若当前层的存储结构Compactor满之后,则进行一次压缩操作,一半的数据丢弃,另一半的数据压缩进下一层,根据步骤102选择的结果,利用基于固定长度的滑动窗口的流数据摘要方法更新多层存储Sketch,或利用基于时间戳的滑动窗口的流数据摘要方法更新多层存储Sketch;
步骤2、摘要查找
根据想要查找Rank值的数字x,通过存储在Sketch中的元素来计算该数字x的Rank值,包括以下步骤:
步骤S201、获得想要查找Rank值的数字x;
步骤S202、初始化,令当前层数h=0,当前Rank值为0;
步骤S203、判断当前层数h是否小于等于Sketch中的总层数H,如果小于,则进入步骤S204,如果当前层数h大于总层数H,进入步骤S207;
步骤S204、查找Sketch中当前层数h中所有小于数字x的个数num;
步骤S205、根据Sketch中h层中的权值w,更新Rank值R,R=R+num*w;
步骤S206、更新当前层数h=h+1,返回步骤S203;
步骤S207、返回查询结果,即返回数字x对应的Rank值R。
基于固定长度的滑动窗口的流数据摘要方法包括以下步骤:
步骤S301、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S302、如果当前层h小于Sketch中的总层数H,进入步骤S303,否则,进入步骤S306;
步骤S303、如果Sketch中当前层h的触发器触发,进入步骤304,否则进入步骤S306;
步骤S304、当前层h执行一次压缩操作,从当前层h所有的数据中找到最老的数,然后将其与它的邻居进行一次压缩,即以50%的概率选择其中的一个插入下一层,另一个则丢弃,插入下一层的时候,按照顺序进行插入;
步骤S305、更新当前层h触发器,同时更新h的值,h=h+1,返回步骤S302;
步骤S306、更新h的值,h=h+1,返回步骤S302;
步骤S307、判断Sketch中H层的触发器是否触发了,如果是,则进入步骤S308,否则,进入步骤S309;
步骤S308、从Sketch的H层中选取最老的两个元素丢弃,并更新H层触发器,进入步骤S309;
步骤S309、输出新的Sketch。
基于时间戳的滑动窗口的流数据摘要方法包括以下步骤:
步骤S401、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S402、如果Sketch的当前层h满了,则进入步骤S403,否则进入步骤S407;
步骤S403、如果h小于等于Sketch中的总层数H,进入步骤S405,否则,进入步骤S404;
步骤S404、创建新的一层,更新H,H=H+1,进入步骤S405;
步骤S405、Sketch的当前层h执行整体压缩操作,即以50%的概率将Index为奇数的数丢弃,以50%的概率将Index为偶数的数丢弃,未被丢弃的数据插入到下一层,同时该插入过程保证下一层元素的有序性;
步骤S406、更新当前层h,h=h+1,返回步骤S402;。
步骤S407、获得更新后的Sketch;
步骤S408、删除步骤S407获得的Sketch中元素的时间戳在滑动窗口外的元素;
步骤S409、输出步骤S408得到的更新后的Sketch。
同时,为了提高算法的可伸缩性,本发明也提出了窗口聚合算法,具体而言:
将通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch与通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch合并。合并包括以下步骤:
步骤S501、输入通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch及通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch,分别为定义为S1及S2;
步骤S502、如果S1的层数大于S2的层数,进入步骤S503,否则,进入步骤S504;
步骤S503、将S2的层数扩展至和S1一样,进入步骤S505;
步骤S504、将S1的层数扩展至和S2一样,进入步骤S505;
步骤S505、对于每一层,将S2的元素加入到S1中;
步骤S506、对于每一层,如果该层的元素大于该层的容器,进行一次整体的压缩操作;
步骤S507、令当前层h=0;
步骤S508、如果h小于等于S1中的总层数H,进入步骤S509,否则,进入步骤S514;
步骤S509、如果S1中的当前层h满了,进入步骤S510,否则,进入步骤S513;
步骤S510、如果当前层h=H,进入步骤S511,否则进入步骤S512;
步骤S511、创建新的一层,更新H,H=H+1;
步骤S512、当前层h执行整体压缩操作,一半元素压入下一层;
步骤S513、更新当前层h,h=h+1,返回步骤S508;
步骤S514、将更新后的S1作为合并后的Sketch输出。
Claims (5)
1.一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,包括以下步骤:
步骤1、流数据在线处理
针对每条数据,根据基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法进行处理,进而更新Sketch中存储的数据,包括以下步骤:
步骤S101、一条数据到达后,将该数据加入存储Sketch的数据结构体中;
步骤S102、选择基于固定长度的滑动窗口的流数据摘要方法或基于时间戳的滑动窗口的流数据摘要方法对数据进行处理;
步骤S103、更新多层存储Sketch:
Sketch的每一层有一个特殊的存储结构Compactor,若当前层的存储结构Compactor满之后,则进行一次压缩操作,一半的数据丢弃,另一半的数据压缩进下一层,根据步骤102选择的结果,利用基于固定长度的滑动窗口的流数据摘要方法更新多层存储Sketch,或利用基于时间戳的滑动窗口的流数据摘要方法更新多层存储Sketch;
步骤2、摘要查找
根据想要查找Rank值的数字x,通过存储在Sketch中的元素来计算该数字x的Rank值,包括以下步骤:
步骤S201、获得想要查找Rank值的数字x;
步骤S202、初始化,令当前层数h=0,当前Rank值为0;
步骤S203、判断当前层数h是否小于等于Sketch中的总层数H,如果小于,则进入步骤S204,如果当前层数h大于总层数H,进入步骤S207;
步骤S204、查找Sketch中当前层数h中所有小于数字x的个数num;
步骤S205、根据Sketch中h层中的权值w,更新Rank值R,R=R+num*w;
步骤S206、更新当前层数h=h+1,返回步骤S203;
步骤S207、返回查询结果,即返回数字x对应的Rank值R。
2.如权利要求1所述一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,所述基于固定长度的滑动窗口的流数据摘要方法包括以下步骤:
步骤S301、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S302、如果当前层h小于Sketch中的总层数H,进入步骤S303,否则,进入步骤S306;
步骤S303、如果Sketch中当前层h的触发器触发,进入步骤304,否则进入步骤S306;
步骤S304、当前层h执行一次压缩操作,从当前层h所有的数据中找到最老的数,然后将其与它的邻居进行一次压缩,即以50%的概率选择其中的一个插入下一层,另一个则丢弃,插入下一层的时候,按照顺序进行插入;
步骤S305、更新当前层h触发器,同时更新h的值,h=h+1,返回步骤S302;
步骤S306、更新h的值,h=h+1,返回步骤S302;
步骤S307、判断Sketch中H层的触发器是否触发了,如果是,则进入步骤S308,否则,进入步骤S309;
步骤S308、从Sketch的H层中选取最老的两个元素丢弃,并更新H层触发器,进入步骤S309;
步骤S309、输出新的Sketch。
3.如权利要求1所述一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,所述基于时间戳的滑动窗口的流数据摘要方法包括以下步骤:
步骤S401、将新到达的数据插入Sketch中的第一层,令当前层h=0;
步骤S402、如果Sketch的当前层h满了,则进入步骤S403,否则进入步骤S407;
步骤S403、如果h小于等于Sketch中的总层数H,进入步骤S405,否则,进入步骤S404;
步骤S404、创建新的一层,更新H,H=H+1,进入步骤S405;
步骤S405、Sketch的当前层h执行整体压缩操作,即以50%的概率将Index为奇数的数丢弃,以50%的概率将Index为偶数的数丢弃,未被丢弃的数据插入到下一层,同时该插入过程保证下一层元素的有序性;
步骤S406、更新当前层h,h=h+1,返回步骤S402;。
步骤S407、获得更新后的Sketch;
步骤S408、删除步骤S407获得的Sketch中元素的时间戳在滑动窗口外的元素;
步骤S409、输出步骤S408得到的更新后的Sketch。
4.如权利要求1所述一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,在所述步骤1之后,并所述步骤2之前,还包括:
将通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch与通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch合并。
5.如权利要求4所述一种基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法,其特征在于,所述合并包括以下步骤:
步骤S501、输入通过所述基于固定长度的滑动窗口的流数据摘要方法获得的多层存储Sketch及通过所述基于时间戳的滑动窗口的流数据摘要方法获得的多层存储Sketch,分别为定义为S1及S2;
步骤S502、如果S1的层数大于S2的层数,进入步骤S503,否则,进入步骤S504;
步骤S503、将S2的层数扩展至和S1一样,进入步骤S505;
步骤S504、将S1的层数扩展至和S2一样,进入步骤S505;
步骤S505、对于每一层,将S2的元素加入到S1中;
步骤S506、对于每一层,如果该层的元素大于该层的容器,进行一次整体的压缩操作;
步骤S507、令当前层h=0;
步骤S508、如果h小于等于S1中的总层数H,进入步骤S509,否则,进入步骤S514;
步骤S509、如果S1中的当前层h满了,进入步骤S510,否则,进入步骤S513;
步骤S510、如果当前层h=H,进入步骤S511,否则进入步骤S512;
步骤S511、创建新的一层,更新H,H=H+1;
步骤S512、当前层h执行整体压缩操作,一半元素压入下一层;
步骤S513、更新当前层h,h=h+1,返回步骤S508;
步骤S514、将更新后的S1作为合并后的Sketch输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811597780.7A CN109783520A (zh) | 2018-12-26 | 2018-12-26 | 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811597780.7A CN109783520A (zh) | 2018-12-26 | 2018-12-26 | 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783520A true CN109783520A (zh) | 2019-05-21 |
Family
ID=66498259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811597780.7A Pending CN109783520A (zh) | 2018-12-26 | 2018-12-26 | 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783520A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750565A (zh) * | 2019-08-16 | 2020-02-04 | 安徽工业大学 | 基于物联网数据流滑动窗口模型的实时区间查询方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400152A (zh) * | 2013-08-20 | 2013-11-20 | 哈尔滨工业大学 | 基于分层聚类的滑动窗口多数据流异常检测方法 |
CN104090952A (zh) * | 2014-07-02 | 2014-10-08 | 华中科技大学 | 一种估算滑动窗口下的数据流平均值的方法与系统 |
CN104391679A (zh) * | 2014-11-18 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种非规则流中高维数据流的gpu处理方法 |
US20160188705A1 (en) * | 2014-08-29 | 2016-06-30 | Software Ag | System and method for precise quantile determination |
CN107451302A (zh) * | 2017-09-22 | 2017-12-08 | 深圳大学 | 滑动窗口下基于位置top‑k关键词查询的建模方法及系统 |
US20180088813A1 (en) * | 2016-09-23 | 2018-03-29 | Samsung Electronics Co., Ltd. | Summarized data storage management system for streaming data |
CN108388603A (zh) * | 2018-02-05 | 2018-08-10 | 中国科学院信息工程研究所 | 基于Spark框架的分布式概要数据结构的构建方法及查询方法 |
-
2018
- 2018-12-26 CN CN201811597780.7A patent/CN109783520A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103400152A (zh) * | 2013-08-20 | 2013-11-20 | 哈尔滨工业大学 | 基于分层聚类的滑动窗口多数据流异常检测方法 |
CN104090952A (zh) * | 2014-07-02 | 2014-10-08 | 华中科技大学 | 一种估算滑动窗口下的数据流平均值的方法与系统 |
US20160188705A1 (en) * | 2014-08-29 | 2016-06-30 | Software Ag | System and method for precise quantile determination |
CN104391679A (zh) * | 2014-11-18 | 2015-03-04 | 浪潮电子信息产业股份有限公司 | 一种非规则流中高维数据流的gpu处理方法 |
US20180088813A1 (en) * | 2016-09-23 | 2018-03-29 | Samsung Electronics Co., Ltd. | Summarized data storage management system for streaming data |
CN107451302A (zh) * | 2017-09-22 | 2017-12-08 | 深圳大学 | 滑动窗口下基于位置top‑k关键词查询的建模方法及系统 |
CN108388603A (zh) * | 2018-02-05 | 2018-08-10 | 中国科学院信息工程研究所 | 基于Spark框架的分布式概要数据结构的构建方法及查询方法 |
Non-Patent Citations (2)
Title |
---|
CHEN JIAN: "Maintaining Stream Data Distribution Over Sliding Window", 《DIGITALA VETENSKAPLIGA ARKIVET》 * |
曲阜平等: "一种基于滑动窗口的数据流摘要构造算法", 《计算机与现代化》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750565A (zh) * | 2019-08-16 | 2020-02-04 | 安徽工业大学 | 基于物联网数据流滑动窗口模型的实时区间查询方法 |
CN110750565B (zh) * | 2019-08-16 | 2022-02-22 | 安徽工业大学 | 基于物联网数据流滑动窗口模型的实时区间查询方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739849B (zh) | 一种数据驱动的网络敏感信息挖掘与预警平台 | |
CN103488673B (zh) | 用于执行调和处理的方法、控制器及数据存储系统 | |
Bao et al. | Managing massive trajectories on the cloud | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
CN108509543B (zh) | 一种基于Spark Streaming的流式RDF数据多关键词并行搜索方法 | |
CN107145526B (zh) | 一种路网下地理社交关键字反最近邻查询处理方法 | |
CN110275920A (zh) | 数据查询方法、装置、电子设备及计算机可读存储介质 | |
CN108737492A (zh) | 一种基于大数据系统的导航与位置服务的方法 | |
CN111586091A (zh) | 一种实现算力组配的边缘计算网关系统 | |
Anwar et al. | Capturing the spatiotemporal evolution in road traffic networks | |
CN103793493A (zh) | 一种处理车载终端海量数据的方法和系统 | |
CN110069500B (zh) | 一种非关系型数据库动态混合索引方法 | |
CN102662986A (zh) | 微博消息检索系统与方法 | |
Gandhi et al. | Space-efficient online approximation of time series data: Streams, amnesia, and out-of-order | |
CN107679097B (zh) | 一种分布式数据处理方法、系统和存储介质 | |
CN109783520A (zh) | 基于滑动窗口的可伸缩的大规模流数据顺序特征维持方法 | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN111522918A (zh) | 数据汇聚方法、装置、电子设备及计算机可读存储介质 | |
US20230306282A1 (en) | Construction method of human-object-space interaction model based on knowledge graph | |
CN110377757A (zh) | 一种实时知识图谱构建系统 | |
CN110275885A (zh) | 基于Hadoop的多层次轨迹数据存储装置 | |
CN106528849B (zh) | 面向完整历史记录的图查询开销方法 | |
CN102521360B (zh) | 栅格数据传输方法及系统 | |
Azevedo et al. | A reduced network traffic method for IoT data clustering | |
Zhu et al. | Computing the Split Points for Learning Decision Tree in MapReduce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |