CN111414577A - 一种实时寻找流数据自身重复规律的方法 - Google Patents

一种实时寻找流数据自身重复规律的方法 Download PDF

Info

Publication number
CN111414577A
CN111414577A CN201910011400.5A CN201910011400A CN111414577A CN 111414577 A CN111414577 A CN 111414577A CN 201910011400 A CN201910011400 A CN 201910011400A CN 111414577 A CN111414577 A CN 111414577A
Authority
CN
China
Prior art keywords
computing
window
components
autocorrelation function
data
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
Application number
CN201910011400.5A
Other languages
English (en)
Inventor
吕纪竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201910011400.5A priority Critical patent/CN111414577A/zh
Publication of CN111414577A publication Critical patent/CN111414577A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

自相关函数可用于寻找流数据自身重复规律。本发明公开了一种通过迭代计算指定规模的计算窗口的指定延迟范围的自相关函数从而可以实时地寻找流数据自身重复规律的方法,系统和计算设备程序产品。本发明的实施方案包括基于调整前计算窗口的指定延迟范围的自相关函数的多个组件迭代计算调整后计算窗口的指定延迟范围的自相关函数的多个组件,然后根据需要基于迭代计算的组件生成调整后计算窗口的指定延迟范围的自相关函数。迭代计算自相关函数避免访问调整后计算窗口中的所有数据元素和执行重复计算从而可以提高计算效率,节省计算资源和降低计算系统能耗,使得实时寻找流数据自身重复规律高效低耗及一些实时寻找流数据自身重复规律从不可能变为可能。

Description

一种实时寻找流数据自身重复规律的方法
技术领域
大数据或流数据分析。
背景技术
互联网,移动通讯,导航,网游,感应技术和大规模计算基础设施每天产生海量数据。大数据就是由于其巨大规模,快速变化及增长速度而超出了传统数据库系统的处理能力及传统分析方法的分析能力的数据。
流数据是从数据源不断传出并连续地被接收器接收的数据。流数据可以是传感器采集并连续传送到计算设备或电子设备上的实时数据。通常这包括连续接收有时间间隔,具有相似格式的数据元素。流数据也可以是从存储器连续读出的数据,例如存储在多个计算设备存储器上的大数据集。因此,流数据处理算法可以延伸到大数据处理上,因为大数据集随着时间积累而可以被认为是具有不规律时间间隔的数据流。
计算自相关函数是一种寻找时间序列或流数据自身重复规律的有效方法。自相关,也被称为延迟相关或序列相关,是一个特定的时间序列与延迟了l个时间点的该时间序列本身的相关程度的一个度量。它可以通过一个时间序列的相隔了l个时间点的观察值的协相关除以其标准方差来得到。如果计算了一个时间序列的所有不同延迟值的自相关就得到该时间序列的自相关函数。某个延迟的自相关值为1或接近1可认为时间序列或流数据在该延迟后出现自身重复规律,因此计算自相关函数后寻找流数据自身重复规律显而易见,而困难和挑战在于如何实时地在流数据上计算自相关函数。
为了能够实时得到利用了最新数据的自身重复规律,自相关函数可能会在流数据有变化后需要重新计算。因此,一些(可能很多)数据元素会被重复访问和使用。例如,有可能自相关函数在含有n个数据元素的计算窗口上被计算。当一个数据元素从计算窗口里被去除和一个数据元素被加入计算窗口后,计算窗口里所有的n个数据元素被访问来重新计算自相关函数。
取决于需要,计算窗口的规模可能非常大,例如计算窗口中的数据元素可能分布在云平台的成千上万台计算设备上。在一些数据变化后的流数据上用传统方法重新计算自相关函数无法做到实时处理并且占用和浪费大量计算资源,因此用传统方法实时地寻找流数据自身重复规律不仅浪费大量计算资源也可能无法满足需求地实现。
发明内容
本发明拓展到方法,系统和计算系统程序产品以迭代方式计算流数据的调整后计算窗口的自相关函数从而可以实时地寻找时间序列或流数据自身重复规律。为一个调整后计算窗口迭代计算自相关函数包括基于调整前计算窗口的自相关函数的多个组件迭代计算调整后计算窗口的自相关函数的多个组件然后根据需要基于迭代计算的组件生成调整后计算窗口的自相关函数。某延迟的自相关值为1或接近1可认为数据在该延迟后出现自身重复规律。迭代计算自相关函数避免访问调整后计算窗口中的所有数据元素和执行重复计算从而降低数据访问延迟,提高计算效率,节省计算资源和降低计算系统能耗,使得一些实时寻找流数据自身重复规律从不可能变为可能。
对于一个给定的自相关函数迭代算法,假设在同一轮迭代计算中一个给定延迟范围内的每个延迟上所有迭代计算的组件(包括计算窗口的和或平均值)总数为p(p>1)。直接迭代的组件个数为v(1≤f≤p),则间接迭代的组件个数为w=p-f(w≥0)。其中计算窗口的和或平均值是必须迭代计算的特殊组件。和或平均值可以被直接或间接迭代计算。
计算系统初始化一个数据流的一个调整前计算窗口中指定延迟范围的自相关函数的,包括一个和或一个平均值在内的,两个以上(p,p>1)组件。该两个以上组件的初始化包括从计算设备可读媒体上接收或访问已计算过的组件或基于调整前计算窗口中的数据元素根据组件的定义来计算。
计算系统接收一个要被加入到调整前计算窗口的流数据元素并保存该数据元素到缓冲区中。计算系统设定延迟l的初始值。
计算系统通过从调整前计算窗口中去除一个已存在(如最早加入该计算窗口)的数据元素和向调整前计算窗口加入要加入的数据元素来调整调整前计算窗口。
计算系统在指定延迟范围内的每一个延迟上直接迭代计算并存储调整后计算窗口的自相关函数的一个或多个(v,1≤v≤p)组件。这可通过一个循环来实现:设定一个延迟初始值,迭代计算给定延迟的自相关的v个组件,存储计算的v个组件,调整延迟为在给定延迟范围内的一个新值,迭代计算新的给定延迟的自相关的v个组件,存储新计算的v个组件,不断重复这个过程直到给定延迟范围内的所有延迟的自相关的v个组件都被迭代计算和保留。对于一个给定延迟l直接迭代计算这v个组件包括:访问被去除的数据元素,调整后计算窗口两端不包括新加入数据元素在内的各l个数据元素,以及新加入的数据元素;访问调整前计算窗口的v个组件;基于访问的数据元素从v个组件中的每个组件中数学地去除被去除的数据元素的贡献;以及向v个组件中的每个组件数学地加入被加入的数据元素的任何贡献而避免访问和使用调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗和提高计算效率。
计算系统根据需要在指定延迟范围内的每一个延迟上间接迭代计算调整后计算窗口的自相关函数的w=p-v个组件。这可通过一个循环来实现:设定一个延迟初始值,间接迭代计算给定延迟的自相关的w个组件,调整延迟为在给定延迟范围内的一个新值,间接迭代计算新的给定延迟的自相关的w个组件,不断重复这个过程直到给定延迟范围内的所有延迟的自相关的w个组件都被间接迭代计算。对于一个给定延迟l间接迭代计算w个组件包括逐个地间接迭代计算给定延迟上w个组件中的每一个组件。间接迭代计算一个给定延迟上的组件包括:访问并使用给定延迟上除该组件之外的一个或多个组件来计算该组件。这一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的,或以任何其它方式计算过的。
计算系统根据需要初始化一个延迟,在给定延迟上基于一个或多个迭代计算的组件计算调整后计算窗口给定延迟上的自相关,调整延迟为在给定延迟范围内的一个新值,然后在新的给定延迟上基于一个或多个迭代计算的组件计算调整后计算窗口新给定延迟上的自相关,不断重复这个过程直到调整后计算窗口给定延迟范围内所有延迟上的自相关都被计算。当w>0时,间接迭代w个组件的循环和计算自相关的循环可以合并成一个循环。
计算系统可以持续地接收一个要加入的数据元素,调整调整前计算窗口,直接迭代计算并存储给定延迟范围内每个不同延迟上的v(1≤v≤p)个组件,根据需要间接迭代计算给定延迟范围内每个不同延迟上的w=p-v个组件和根据需要生成调整后计算窗口给定延迟范围内每个不同延迟上的自相关函数。计算系统可以根据需要多次重复这个过程。
本简述是以简化的方式介绍一些选择的概念,它们将在下面被进一步详细描述。本简述即不是为了鉴定权利要求的主题的关键特点或必要特点,也不是为了用于帮助确认权利要求的主题所包括的范围。
本发明的其它特征和优点将在下面的描述中体现出来,会部分地从描述中明显体现,或从本发明的实践中学到。本发明的特征和优点可从附加的权利要求书中特别指出的方法设备及其组合中实现和得到。本发明的这些和其它特征将在下面的描述和附加的权利要求书或本发明的实践中变得更加全面和清晰。
附图说明
为描述能够获得本发明的上述的和其它的优点和特点的方式,上面简述的本发明的一个更具体的描述将通过参照下列附加的图表中所显示的特定的实施方案来展现出来。这些图表只是描述了本发明的典型实施方案,因此它们不应被理解或解释为对本发明的范围的限制:
图1图示了一个支持迭代计算自相关函数的例子计算系统的高层概括。
图1-1图示了一个为流数据迭代计算自相关函数并且所有组件都是直接迭代计算的例子计算系统架构100A。
图1-2图示了一个为流数据迭代计算自相关函数并且部分组件以直接迭代方式计算而部分组件以间接迭代方式计算的例子计算系统架构100B。
图2图示了一个为流数据迭代计算自相关函数的例子方法流程图。
图3-1图示了计算窗口向右移动时从计算窗口中去除和加入的数据元素。
图3-2图示了在流数据上迭代计算自相关函数并计算窗口向右移动时需要被访问的数据元素。
图3-3图示了计算窗口向左移动时从计算窗口中去除和加入的数据元素。
图3-4图示了在流数据上迭代计算自相关函数并计算窗口向左移动时时需要被访问的数据元素。
图4-1图示了自相关函数的定义以及计算自相关函数的传统方程。
图4-2显示了第一个自相关函数迭代计算算法(迭代算法1)用的方程。
图4-3显示了第二个自相关函数迭代计算算法(迭代算法2)用的方程。
图4-4显示了第三个自相关函数迭代计算算法(迭代算法3)用的方程。
图5-1显示了用于一个计算实例的第一个计算窗口。
图5-2显示了用于一个计算实例的第二个计算窗口。
图5-3显示了用于一个计算实例的第三个计算窗口。
图6-1图示了计算窗口规模为4延迟上限为2时,传统自相关函数算法和迭代自相关函数算法的计算工作量对比。
图6-2图示了计算窗口规模为1,000,000延迟上限为2时,传统自相关函数算法和迭代自相关函数算法的计算工作量对比。
具体实施方法
计算自相关函数是寻找时间序列或流数据自身重复规律的有效方法。一个指定的延迟上限maxl或延迟范围(minl,maxl)可用于指明计算自相关函数时的延迟范围。自相关函数中某个延迟的自相关值为1或接近1时可认为时间序列或流数据在该延迟后出现自身重复规律。本发明公开了一种以迭代方式计算流数据的调整后计算窗口的自相关函数从而可以实时地寻找时间序列或流数据自身重复规律的方法,系统和计算设备程序产品。一个计算系统包含一个或多个基于处理器的计算设备。每个计算设备包含一个或多个处理器。该计算系统包含一个缓冲区用来保存时间序列或流数据元素。来自该数据流的,涉及到自相关函数计算的多个数据元素组成一个调整前的计算窗口。计算窗口规模n(n>1)指明数据流的一个计算窗口中的数据元素个数。本发明的实施方案包括基于调整前计算窗口的自相关函数的多个组件迭代计算调整后计算窗口的自相关函数的多个组件,然后根据需要基于迭代计算的组件生成调整后计算窗口的自相关函数。迭代计算自相关函数只需要访问和使用迭代计算的组件,新加入和去除的数据元素及部分其它数据元素而避免访问调整后计算窗口中的所有数据元素和执行重复计算从而提高计算效率,节省计算资源和降低计算系统能耗,使得一些实时寻找流数据自身重复规律从不可能变为可能。
在本文中,一个计算窗口是包含做自相关函数计算的数据元素的数据集。一个计算窗口类似于一个在流数据或时间序列数据上计算自相关函数的移动窗口。在本发明的实施方案的描述里,计算窗口里的数据元素有顺序。
在本文中,自相关函数的一个组件是出现在自相关函数定义公式中或其定义公式的任何转换中的一个量或表达式。自相关函数是它自己最大的组件。以下是一些自相关函数的组件的例子。
Figure BDA0001937452990000061
Figure BDA0001937452990000062
Figure BDA0001937452990000063
Figure BDA0001937452990000064
Figure BDA0001937452990000065
(l是延迟)
自相关函数可基于一个或多个组件或它们的组合被计算,所以多个算法支持迭代自相关函数计算。
一个组件可以被直接迭代计算或间接迭代计算。它们的区别是当一个组件被直接迭代计算时该组件是基于该组件在前一轮计算的值来计算的,而当该组件被间接迭代计算时该组件是基于该组件之外的其它组件计算的。
对于一个给定的组件,它也许在一个算法中被直接迭代计算但在另一个算法中被间接迭代计算。
计算窗口的和或平均值是必须迭代计算的特殊组件。对于任意一个算法,至少会有两个组件被迭代计算,其中一个组件是和或平均值,这两个以上组件可以被直接或间接迭代计算,但高效的方式是至少有一个组件被直接迭代计算。对于一个给定的算法,假设在同一轮迭代计算中迭代计算的给定延迟范围内每个延迟上的自相关的不同组件的总数是p(p>1),如果直接迭代计算的组件个数是v(1≤v≤p),那么间接迭代计算的组件的个数是w=p-v(0≤w<p)。可能这些组件都被直接迭代计算(这种情况下v=p>1并且w=0)。但是,无论自相关函数的结果是否在一个特定的轮次被需要和访问,直接迭代计算的组件都必须被计算。
对于一个给定算法,如果一个组件被直接迭代计算,则该组件必须被计算(即每当一个已有的数据元素被从调整前计算窗口中去除和每当一个数据元素被加入到调整前计算窗口中时)。但是,如果一个组件被间接迭代计算,则该组件可以通过使用该组件之外的其它一个或多个组件来根据需要,即只有当自相关函数需要被计算和访问时,被计算。这样,当自相关函数在某一个迭代计算轮次不被访问时,可以只有少量的组件需要被迭代地计算。一个间接迭代计算的组件也许会被用于下一轮另一个组件的间接迭代计算,在这种情况下,该间接迭代计算的组件的计算不可省略。
自相关函数可以根据需要被计算。当自相关函数在每次计算窗口有变化而不需要被访问时,计算系统只需要为每次数据变化迭代计算和或平均值以及除了和或平均值之外的两个以上组件。迭代计算这些组件避免了访问之前的所有输入和做重复计算因此提高计算效率。自相关函数可以在需要被访问时由计算系统基于迭代计算的组件来生成。
本发明的实施方案包括基于为调整前计算窗口计算的多个组件迭代计算调整后的计算窗口的自相关函数的多个组件。
计算系统初始化一个给定规模为n的调整前计算窗口的一个和或一个平均值或一个和及一个平均值,以及指定延迟范围内的每一个延迟上的自相关的一个或多个其它组件(每个延迟上共p个组件,(p>1))。该多个组件的初始化包括从一个或多个计算设备可读媒体上接收已经计算过的组件或根据其定义基于该调整前计算窗口中的数据元素来计算。
计算系统接收一个要被加入到该调整前计算窗口中的流数据元素并保存该数据元素到缓冲区中。计算系统设定延迟l的初始值。
计算系统调整调整前计算窗口通过:从该调整前计算窗口中去除一个已存在(如最早加入该计算窗口)的数据元素和向该调整前计算窗口中加入要被加入的数据元素。
计算系统在指定延迟范围内的每一个延迟上直接迭代计算并存储调整后计算窗口的自相关函数的一个或多个(v,1≤v≤p)组件。这可通过一个循环来实现:设定一个延迟初始值,迭代计算给定延迟的自相关的v个组件,存储计算的v个组件,调整延迟为在给定延迟范围内的一个新值,迭代计算新的给定延迟的自相关的v个组件,存储新计算的v个组件,不断重复这个过程直到给定延迟范围内的所有延迟的自相关的v个组件都被迭代计算和保留。对于一个给定延迟l直接迭代计算这v个组件包括:访问被去除的数据元素,调整后计算窗口两端不包括新加入数据元素在内的各l个数据元素,以及新加入的数据元素;访问调整前计算窗口的v个组件;基于访问的数据元素从v个组件中的每个组件中数学地去除被去除的数据元素的贡献;以及向v个组件中的每个组件数学地加入被加入的数据元素的任何贡献而避免访问和使用调整后计算窗口中的所有数据元素来降低数据访问延迟,节省计算资源和降低能耗和提高计算效率。
计算系统根据需要在指定延迟范围内的每一个延迟上间接迭代计算调整后计算窗口的自相关函数的w=p-v个组件。这可通过一个循环来实现:设定一个延迟初始值,间接迭代计算给定延迟的自相关的w个组件,调整延迟为在给定延迟范围内的一个新值,间接迭代计算新的给定延迟的自相关的w个组件,不断重复这个过程直到给定延迟范围内的所有延迟的自相关的w个组件都被间接迭代计算。对于一个给定延迟l间接迭代计算w个组件包括逐个地间接迭代计算给定延迟上w个组件中的每一个组件。间接迭代计算一个给定延迟上的组件包括:访问并使用给定延迟上除该组件之外的一个或多个组件来计算该组件。这一个或多个组件可能是经过初始化的,直接迭代计算的或间接迭代计算的,或以任何其它方式计算过的。
计算系统根据需要初始化一个延迟,在给定延迟上基于一个或多个迭代计算的组件计算调整后计算窗口给定延迟上的自相关,调整延迟为在给定延迟范围内的一个新值,然后在新的给定延迟上基于一个或多个迭代计算的组件计算调整后计算窗口新给定延迟上的自相关,不断重复这个过程直到调整后计算窗口给定延迟范围内所有延迟上的自相关都被计算。当w>0时,间接迭代w个组件的循环和计算自相关的循环可以合并成一个循环。
计算系统可以持续地接收一个要加入的数据元素,调整调整前计算窗口,直接迭代计算并存储给定延迟范围内每个不同延迟上的v(1≤v≤p)个组件,根据需要间接迭代计算给定延迟范围内每个不同延迟上的w=p-v个组件和根据需要生成调整后计算窗口给定延迟范围内每个不同延迟上的自相关函数。计算系统可以根据需要多次重复这个过程。
本发明的实施方案可以包括或利用包含计算设备硬件,例如一个或多个处理器和以下更详细描述的存储设备,专用的或通用的计算设备。本发明实施方案的范围也包括物理的及其它用于携带或存储计算设备可运行指令和/或数据结构的计算设备可读媒体。这些计算设备可读媒体可以是通用或专用计算设备可访问的任何媒体。存储计算设备可运行指令的计算设备可读媒体是存储媒体(设备)。携带计算设备可运行指令的计算设备可读媒体是传输媒体。因此,以举例而非限制的方式,本发明的实施方案可以包括至少两种不同类型的计算设备可读媒体:存储媒体(设备)和传输媒体。
存储媒体(设备)包括随机存取存储器(RAM),只读存储器(ROM),电可擦除可编程只读存储器(EEPROM),只读光盘存储器(CD-ROM),固态硬盘(SSD),闪存(Flash Memory),相变存储器(PCM),其它类型存储器,其它光学磁盘存储,磁盘存储器或其它磁性存储设备,或任何其它能用于存储所需要的以计算设备可运行指令或数据结构形式构成的程序代码并且其可以被通用或专用计算设备访问的媒体。
一个“网络”被定义为使计算设备和/或模块和/或其它电子设备能够传输电子数据的一个或多个数据链接。当信息被网络或另外的通讯连接(有线,无线,或有线和无线的组合)传输或提供给计算设备时,计算设备把连接视为传输媒体。传输媒体可包括用于携带所需要的以计算设备可运行指令或数据结构形式构成的程序代码,并且其可以被通用或专用计算设备访问的一个网络和/或数据链接。以上的组合也应包括在计算设备可读媒体的范围之内。
此外,在应用不同计算设备组件时,计算设备可运行指令或数据结构形式的程序代码可以从传输媒体自动传输到存储媒体(设备)(或反过来)。例如,从网络或数据链接上接收的计算设备可运行指令或数据结构可以被暂存进网络接口模块(例如,NIC)中的随机存取存储器中,然后最终传输到计算设备的随机存取存储器和/或到计算设备的一个较小易变的存储媒体(设备)。所以,应当理解存储媒体(设备)可以被包括在也(或甚至主要)应用传输媒体的计算设备组件里。
计算设备可运行指令包括,例如,指令和数据,当被处理器运行时,使得通用计算设备或专用计算设备去执行一个特定功能或一组功能。计算设备可运行指令可以是,例如,二进制,中间格式指令例如汇编代码,或甚至源代码。虽然描述的客体是用结构特征和/或方法动作的具体语言描述的,应当理解在附加的权利要求书中定义的客体不一定局限于以上描述的特征或动作。而是,描述的特征或动作仅是以实现权利要求的例子形式而公开的。
本发明的实施方案可以在由多种类型的计算设备配置的网络计算环境中实现,这些计算设备包括个人电脑,台式机,笔记本电脑,信息处理器,手持设备,多处理系统,基于微处理器或可编程的电子消费品,网络电脑,小型计算机,主计算机,超级计算机,移动电话,掌上电脑,平板电脑,呼机,路由器,交换机及类似产品。本发明的实施方案也可以应用于通过网络互联(即可通过有线数据链接,无线数据链接,也可以是有线数据链接与无线数据链接的结合)的执行任务的本地或远程计算设备构成的分布式系统环境。在分布式系统环境中,程序模块可以被存储在本地或远程存储设备上。
本发明的实施方案也可以在云计算环境里实现。在本描述及后续的权利要求书中,“云计算”被定义为一个使得能够按需通过网络访问到可配置计算资源的共享池的模型。例如,云计算可以被市场利用去提供普及和方便的按需访问可配置计算资源的共享池。可配置计算资源的共享池可以通过虚拟化很快预备并且以低管理开销或低服务提供商互动来提供,然后做相应的调整。
云计算模型可以包括各种特征例如,按需自服务,宽带网络访问,资源收集,快速收放,计量服务等等。云计算模型也可以各种服务模式来体现,例如,软件做为服务(“SaaS”),平台做为服务(“PaaS”),以及设施做为服务(“IaaS”)。云计算模型也可以通过不同的部署模型例如私有云,社区云,公共云,混合云等等来部署。
下面的章节中会给出几个例子。
图1图示了为流数据迭代计算自相关函数的一个例子计算系统100的高层概述。参考图1,计算系统100包括由不同网络,例如局域网1021,无线网1022和互联网1023等等,连接的多个设备。多个设备包括,例如,数据分析引擎1007,存储系统1011,实时数据流1006,以及可以安排数据分析任务和/或查询数据分析结果的多台分布的计算设备,例如个人电脑1016,手持设备1017和台式机1018等等。
数据分析引擎1007可以包括一个或多个处理器,例如CPU 1009和CPU1010,一个或多个系统内存,例如系统内存1008,及组件计算模块131和自相关函数计算模块192。模块131的细节会在其它图表中更详细地图示(例如,图1-1和图1-2)。存储系统1011可以包括一个或多个存储媒体,例如存储媒体1012和存储媒体1014,其可以用于存放接收的时间序列或流数据。存储系统1011里的数据集可以被数据分析引擎1007访问。
通常,数据流1006可以包括来自不同数据源的流数据,例如,股价,音频数据,视频数据,地理空间数据,互联网数据,移动通讯数据,网游数据,银行交易数据,传感器数据,和/或闭合字幕数据等。这里举例描绘了几个,实时数据1000可以包括从感应器1001,股票1002,互联网1003和银行1004等等实时收集的数据。数据分析引擎1007可以接收来自数据流1006的数据元素。来自不同数据源的数据可以被存储在存储系统1011并且为流数据分析所访问。
请理解图1是以非常简化的形式介绍一些概念,例如,分布设备1016和1017可能经过防火墙才联到数据分析引擎1007,数据分析引擎1007从数据流1006和/或存储系统1011接收的数据可能经过数据过滤器筛选,等等。
图1-1图示了为流数据迭代计算自相关函数,其所有(v=p>1)组件被直接迭代计算,的例子计算系统架构100A。关于计算系统架构100A,这里将先只介绍该架构中的主要部件的功能和相互关系,而关于这些部件如何协作共同完成迭代自相关函数计算的过程将在后面结合图2中描述的流程图一起介绍。图1-1图示了图1显示的1006和1007。参考图1-1,计算系统架构100A包括组件计算模块131和自相关函数计算模块192。组件计算模块131可以是通过高速数据总线与一个或多个存储媒体紧密耦合的或通过一个网络,如局域网,广域网,甚至互联网与由存储系统管理的一个或多个存储媒体松散耦合的。相应地,组件计算模块131和任何其它连接的计算设备和它们的组件,可以在网络上发送和接收消息相关数据(例如,互联网协议(“IP”)数据报和其它使用IP数据报的高层协议,例如,用户数据报协议(“UDP”),实时流协议(“RTSP”),实时传输协议(“RTP”),微软媒体服务器(“MMS”),传输控制协议(“TCP”),超文本传送协议(“HTTP”),简单邮件传送协议(“SMTP”),等等)。组件计算模块131的输出会被作为自相关函数计算模块192的输入,自相关函数计算模块192可以生成自相关函数193。
通常,数据流190可以包含来源于不同种类的数据,例如,股价,音频数据,视频数据,地理空间数据,互联网数据,移动通讯数据,网游数据,银行交易数据,传感器数据,闭合字幕数据,和实时文字等。数据流190可以是实时的数据流或流化的存储数据。
随着流数据元素的接收,这些数据元素可以被存储在循环缓冲区121中。例如,数据元素101,102,103,104,105,106,107,108,和109可以分别存储在位置121A,121B,121C,121D,121E,121F,121G,121H,以及121I。
随后,数据元素110可以被接收。数据元素110可以被存储在121A(覆盖数据元素101)。
如图所示,循环缓冲区121有9个位置,121A-121I并且计算窗口规模是8(即,n=8)。计算窗口中的数据元素位置可以随着新的数据元素被放入循环缓冲区121而轮转。例如,当数据元素109被存入位置121I时,计算窗口122会变成计算窗口122A。当数据元素110随后被存在位置121A时,计算窗口122A会变成计算窗口122B。
参考计算系统架构100A,通常组件计算模块131包含为直接迭代计算调整后计算窗口的一组n个数据元素的v(v=p>1)个组件的v个组件计算模块。v是迭代计算自相关函数的给定算法中直接迭代计算的组件的个数,它随着使用的迭代算法不同而不同。如图1-1中所示,组件计算模块131包含一个组件Cd1计算模块161和一个组件Cdv计算模块162,它们之间还有v-2个其它组件计算模块,它们可以是组件Cd2计算模块,组件Cd3计算模块,……,以及组件Cdv-1计算模块。每个组件计算模块计算给定延迟的特定的组件。延迟会在一个指定的延迟范围内变化,例如,从1变到一个指定的延迟上限maxl,或者从一个指定的延迟下限minl变到一个指定的延迟上限maxl。例如,maxl=10,则对于相同的输入数据自相关将分别在延迟l=1,延迟l=2,延迟l=3,…延迟l=10被计算。延迟范围可作为计算系统的输入。通常,maxl的值被设置为小于计算窗口规模的1/4。延迟初始化模块171可以初始化一个延迟值。在一个给定延迟上,v个组件被计算,然后被存储在存储空间,例如组件Cd1被计算后被存储在存储空间172,组件Cdv被计算后被存储在存储空间173等。存储空间(如172和/或173)可以是内存中的一个或多个数组或硬盘上的一个或多个文件。然后,延迟被延迟更新模块175更新为给定延迟范围内的一个新值,例如通过加1或减1。然后v个组件计算模块为同一个计算窗口用新延迟值再计算v个组件,然后计算的v个组件被存储在存储空间。该过程可被重复直到给定延迟范围内的每个延迟上的v个组件都被计算。理论上,对于同一个计算窗口,一共会有v*maxl个组件被计算和存储。但实际上,由于并不是所有组件都和延迟有关,它们不会随着延迟的变化而变化(例如,和或平均值等),对同一个计算窗口只需要计算一次。因此组件计算模块131对同一个计算窗口实际计算的组件个数少于v*maxl。131实际计算的组件个数取决于使用的特定的迭代算法。如图1-1所示,组件计算模块131包含组件Cd1计算模块161和组件Cdv计算模块162。它们之间还有计算组件Cd2,……,Cdv-1的v-2个组件计算模块。每个组件计算模块包含一个为第一个调整前计算窗口初始化一个组件的初始化模块和一个为调整后计算窗口直接迭代计算该组件的算法。例如,组件Cd1计算模块161包含初始化模块132来初始化给定延迟上的组件Cd1和迭代算法133来迭代计算给定延迟上的组件Cd1,组件Cdv计算模块162包含初始化模块138来初始化给定延迟上的组件Cdv和迭代算法139来迭代计算给定延迟上的组件Cdv
初始化模块132可以在初始化组件Cd1时使用或在自相关函数计算被重置时使用。同样,初始化模块138可以在初始化组件Cdv时使用或在自相关函数计算被重置时使用。
一旦自相关在给定延迟范围内所有延迟上的组件被组件计算模块131计算和存储。计算系统可根据需要开始另一个循环来计算给定延迟范围的自相关函数。参考图1-1,计算系统架构100A还包括延迟初始化模块191,自相关函数计算模块192,和延迟更新模块194等。延迟初始化模块191可以设置一个初始延迟值(如设置延迟l=1,l=minl或l=maxl)。延迟更新模块194可将延迟更新为给定延迟范围内的一个新值(如给延迟l加1或减1或以其它方式枚举)。对于一个给定延迟,自相关计算模块192可基于一个或多个迭代计算的给定延迟上的组件计算给定延迟上的自相关193。通过循环计算出给定延迟范围内所有延迟上的自相关则得到指定延迟范围的自相关函数。
如图1-1所示,100A包括两个循环,一个循环用于通过调整前计算窗口给定延迟范围内所有延迟上的组件迭代计算调整后计算窗口给定延迟范围内所有延迟上的组件,另一个循环用于基于调整后计算窗口给定延迟范围内所有延迟上的组件计算调整后计算窗口给定延迟范围的自相关函数。使用两个分开的循环的优点是当不是每次有数据更新都要计算自相关函数时,计算系统可以只执行迭代计算组件的循环,而只有自相关函数被访问时,才执行计算自相关函数的循环。其缺点是需要额外空间和时间来存储迭代计算的组件。这两个循环完全可以合并成一个循环,这种情况下就不需要172和173,但是对于每次数据变化,无论自相关函数被访问与否自相关函数都会被计算。
图1-2图示了为流数据迭代计算自相关函数并且部分(v(1≤v<p,p≥2)个)组件直接迭代计算,部分(w=p-v)组件间接迭代计算的一个例子计算系统架构100B。在一些实现中,计算系统架构100B和100A之间的区别是架构100B包括组件计算模块135。除此之外,和100A有同样附图标记的部分都按同样的方式工作。为了不重复之前在100A描述里面解释过的内容,只有不同的部分会在这里讨论。100B里面的数字v和100A里面的数字v可能不同,因为有些100A里被直接迭代计算的组件会在100B里被间接迭代计算。在100A中,v=p≥1,但在100B中,1≤v<p。参考图1-2,计算系统架构100B包括组件计算模块135。组件计算模块131的输出可以作为组件计算模块135的输入,计算模块131和135的输出可以作为自相关函数计算模块192的输入,自相关函数计算模块192可以生成自相关函数193。组件计算模块135通常包括w=p-v个组件计算模块来间接迭代计算w个组件。例如,组件计算模块135包括组件计算模块163用于间接迭代计算组件Ci1,组件计算模块164用于间接迭代计算组件Ciw,以及它们之间的其它w-2个组件计算模块。间接迭代计算w个组件包括逐个地间接迭代计算w个组件的每一个。间接迭代计算一个组件包括访问和使用除该组件本身之外的一个或多个组件。该一个或多个组件可以是被初始化,直接迭代计算或间接迭代计算过的,或以任何其它方式计算过的。
图2图示了为流数据迭代计算自相关函数的一个例子方法200的流程图。方法200会分别结合计算系统架构100A和100B的组件和数据一起描述。
方法200包括设定一个延迟上限maxl(maxl>1)或一个延迟范围(minl,maxl)其中1≤minl<maxl,在该延迟范围内设定一个延迟初始值l并初始化计算窗口规模n(n>2(maxl+1)),接收并存储一个数据流的n个数据元素到一个数据缓冲区(201)。例如,对于计算系统架构100A和100B,方法200包括把来自数据流190的数据元素101,102,103,104,105,106,107,和108存储到循环缓冲区121中的位置121A,121B,121C,121D,121E,121F,121G,和121H。
方法200包括初始化存储于该数据缓冲区的指定规模为n的调整前计算窗口的延迟为l的自相关函数的v(1≤v≤p,p>1)个组件(202)。例如,对于计算系统架构100A和100B,方法200可根据组件的定义访问和利用存储在存循环缓冲区121上的一个调整前计算窗口中的数据元素初始化该计算窗口的v个组件。组件计算模块131可以访问计算窗口122中的数据元素101,102,103,104,105,106,107,和108。初始化模块132可以用数据元素101到108初始化给定延迟的组件Cd1 141。如图所示,组件Cd1 141包含贡献151,贡献152和其它贡献153。贡献151是数据元素101对给定延迟的组件Cd1 141的贡献。贡献152是数据元素102对给定延迟的组件Cd1 141的贡献。其它贡献153是数据元素103到108对给定延迟的组件Cd1141的贡献。同样,初始化模块138可以用数据元素101到108初始化给定延迟的组件Cdv145。如图所示,组件Cdv145包含贡献181,贡献182和其它贡献183。贡献181是数据元素101对给定延迟的组件Cdv145的贡献。贡献182是数据元素102对给定延迟的组件Cdv145的贡献。其它贡献183是数据元素103到108对给定延迟的组件Cdv145的贡献。
方法200包括保存延迟为l的v个组件(210)。例如参考图1-1和图1-2,组件计算模块131可将132初始化的延迟为l的组件Cd1 141保存在存储空间172。类似地,组件计算模块131可将138初始化的延迟为l的组件Cdv145保存在存储空间173。
方法200包括更新延迟l(211)并判断是否给定延迟范围内的所有延迟上的v个组件都被计算(212)。如果否,继续迭代计算新延迟上的v个组件直到给定延迟范围内的所有延迟上的v个组件被计算和保存。如果是,则方法200包括或者根据需要(如自相关函数被访问)计算给定延迟范围内的自相关函数或者接收下一个要被加入到调整前计算窗口中的数据元素从而开始新一轮迭代计算(这时调整后计算窗口成为新一轮迭代计算的“调整前计算窗口”)。例如参考图1-1和图1-2,如果131没有完成给定延迟范围内所有延迟上的v个组件的迭代计算,则175会更新延迟,131会继续迭代计算新延迟上的v个组件直到给定延迟范围内所有延迟上的v个组件的迭代计算都完成。100A或100B根据需要启动191,192和194计算给定延迟范围内所有延迟上的自相关193,或者接收要加入计算窗口的数据元素109开始下一个计算窗口的迭代计算。
方法200包括当v<p即不是所有组件都被直接迭代计算时,根据需要逐个地间接迭代计算延迟为l的自相关的w=p-v个组件中的每一个组件基于被计算组件之外的一个或多个组件(214)。这w个组件只有当自相关函数被访问时才会被计算。例如,参考图1-2其部分组件被直接迭代计算而部分组件被间接迭代计算:延迟初始化模块191初始化一个延迟值(213),组件计算模块135间接迭代计算w个组件(214),包括计算模块163可基于组件Ci1之外的一个或多个组件来间接迭代计算组件Ci1,计算模块164可基于组件Ciw之外的一个或多个组件来间接迭代计算组件Ciw,其它w-2个组件计算模块间接迭代计算组件Ci2到Ciw-1。这一个或多个组件可以是初始化,直接迭代计算,或间接迭代计算过的。自相关计算模块192基于一个或多个直接和或间接迭代计算的组件计算给定延迟的自相关193。更新模块194将延迟更新为给定延迟范围内的一个新延迟值(216)并判断是否给定延迟范围内每个延迟上的w个组件都被计算(217)。否,计算系统架构100B则重复以上计算直到给定延迟范围内所有延迟值上的w个组件都被间接迭代计算;是,计算系统架构100B则接收要加入计算窗口的数据元素109开始新一轮下一个计算窗口的迭代计算。
方法200包括根据需要计算一个给定延迟延迟范围内所有延迟上的自相关函数。其包括当自相关函数被访问时,初始化延迟值l(213),自相关计算模块192基于一个或多个初始化或直接和或间接迭代计算的组件计算给定延迟l的自相关193(215)。延迟更新模块194将延迟更新为给定延迟范围内的一个新延迟值(216),重复以上计算直到给定延迟范围内每个延迟值上的自相关193被计算(217)。参考图1-1中191至194的循环和图1-2中191,135,192,193,194的循环。图1-2中间接迭代计算组件和计算自相关函数的循环被合并成一个。
方法200包括接收一个要被加入到调整前计算窗口的流数据元素,存储该数据元素到数据缓冲区,并设定延迟l的一个初始值(203)。例如,参考100A和100B,数据元素109可在数据元素101-108被接收后被接收。数据元素109可被存储于存储媒体121的121I位置。延迟初始化组件171可以设置延迟l为1,一个指定的延迟下限minl或一个指定的延迟上限maxl。
方法200包括调整调整前计算窗口,包括:从调整前计算窗口中去除一个已存在的(如最早加入该调整前计算窗口的)数据元素和向调整前计算窗口中加入要加入的数据元素(204)。例如,数据元素101被从计算窗口122去除,数据元素109被加入到计算窗口122,然后计算窗口122转变成调整后计算窗口122A。
方法200包括为调整后计算窗口直接迭代计算延迟为l的自相关函数的v个组件(205),其包括:访问被去除的数据元素,调整后计算窗口两侧不包括新加入的数据元素在内的各l个数据元素,及新加入的数据元素(206);访问为调整前计算窗口初始化或计算的延迟为l的自相关的v个组件(207);利用访问的数据元素从v个组件中的每一个组件数学地去除被去除的数据元素的任何贡献(208);及利用访问的数据元素向v个组件中的每一个组件数学地加入被加入的数据元素的任何贡献(209)。其细节描述如下。
为调整后计算窗口直接迭代计算指定延迟l的自相关函数的v个组件包括访问被去除的数据元素,调整后计算窗口两侧不包括新加入的数据元素在内的各l个数据元素,以及新加入的数据元素(206)。例如,如果指定延迟l=1,迭代算法133可访问被去除的数据元素101,数据元素102及数据元素108,以及被加入的数据元素109。如果指定延迟l=2,迭代算法133可访问被去除的数据元素101,数据元素102和103及数据元素107和108,以及新加入的数据元素109……。类似地,如果指定延迟l=1,迭代算法139可访问被去除的数据元素101,数据元素102及数据元素108,以及新加入的数据元素109。如果指定延迟l=2,迭代算法139可访问被去除的数据元素101,数据元素102和103及数据元素107和108,以及新加入的数据元素109……。
为调整后计算窗口直接迭代计算延迟为l的自相关函数的v个组件包括访问调整前计算窗口的延迟为l的自相关函数的v个组件(207)。例如,当延迟l=1时,迭代算法133可访问延迟为1的组件Cd1 141,当延迟l=2时,迭代算法133可访问延迟为2的组件Cd1141……。类似地,当延迟l=1时,迭代算法139可访问延迟为1的组件Cdv145,当延迟l=2时,迭代算法139可访问延迟为2的组件Cdv145……。
为调整后计算窗口直接迭代计算指定延迟l的自相关函数的v个组件包括利用访问的数据元素从v个组件中的每一个组件数学地去除被去除的数据元素的任何贡献(208)。例如,当延迟l=2时,直接迭代计算延迟为2的组件Cd1 143可包括贡献去除模块133A利用访问的数据元素101,102和103从延迟为2的组件Cd1 141中数学地去除贡献151。类似地,直接迭代计算延迟为2的组件Cdv147可包括贡献去除模块139A利用访问的数据元素101,102和103从延迟为2的组件Cdv145中数学地去除贡献181。贡献151和181来自于被去除的数据元素101。
为调整后计算窗口直接迭代计算延迟为l的自相关函数的v个组件包括利用访问的数据元素从v个组件中的每一个组件数学地加入被加入的数据元素的任何贡献(208)。例如,当延迟l=2时,直接迭代计算延迟为2的组件Cd1 143可包括贡献加入模块133B利用访问的数据元素107,108和109向延迟为2的组件Cd1 141中数学地加入贡献154。类似地,直接迭代计算延迟为2的组件Cdv147可包括贡献加入模块139B利用访问的数据元素107,108和109向延迟为2的组件Cdv145中数学地加入贡献184。贡献154和184来自于新加入的数据元素109。
如图1-1和1-2所示,组件Cd1 143包括贡献152(来自数据元素102的贡献),其它贡献153(来自数据元素103-108的贡献),以及贡献154(来自数据元素109的贡献)。类似地,组件Cdv147包括贡献182(来自数据元素102的贡献),其它贡献183(来自数据元素103-108的贡献),以及贡献184(来自数据元素109的贡献)。
当自相关函数被访问并且v<p(即,不是所有组件都被直接迭代计算)时,方法200包括根据需要间接迭代计算给定延迟范围内每个延迟上的自相关的w=p-v个组件(213,214,216,217)。这些组件只有当自相关函数被访问时才会被计算。例如,参考图1-2其部分组件直接迭代计算,部分组件间接迭代计算,计算模块163可以基于组件Ci1之外的一个或多个组件来间接迭代计算组件Ci1,计算模块164可以基于组件Ciw之外的一个或多个组件来间接迭代计算组件Ciw。这一个或多个组件可以是初始化,直接迭代计算,或间接迭代计算过的。循环214,216到217枚举给定延迟范围内的每个延迟并对于每个延迟执行上述的间接迭代计算。
方法200包括在需要的基础上计算自相关函数。其包括当自相关函数被访问时,初始化延迟值(213),自相关计算模块192基于一个或多个初始化或直接和或间接迭代计算的组件计算给定延迟的自相关193(215)。延迟更新模块194将延迟更新为给定延迟范围内的一个新延迟值(216),重复以上计算直到给定延迟范围内每个延迟值上的自相关193被计算(217)。当自相关函数被访问时,方法200包括可根据需要间接迭代计算延迟为l的w个组件(214)。例如,在计算系统架构100B中,计算模块163可基于组件Ci1之外的一个或多个组件间接迭代计算Ci1,及计算模块164可基于组件Ciw之外的一个或多个组件间接迭代计算Ciw,……。一旦给定延迟范围内所有延迟的自相关被计算,方法200包括接收下一个要被加入的流数据元素。
随着更多数据元素的接收203-212可以被重复,213-217可以根据需要被重复。例如,在数据元素109被接收以及组件Cd1 143到组件Cdv147范围内的组件被计算之后,数据元素110可以被接收(203)。每调整一次计算窗口则开始新一轮的迭代计算,原来的“调整后计算窗口”将成为新一轮迭代计算的“调整前计算窗口”。一旦一个要加入的数据元素被接收,方法200包括从新的调整前计算窗口中去除一个已存在的(如最早加入该计算窗口的)数据元素和向新的调整前计算窗口加入要加入的数据元素来调整新的调整前计算窗口(204)。例如,计算窗口122A可在去除数据元素102和加入数据元素110之后转变为计算窗口122B。然后计算系统把122B作为新的“调整前计算窗口”重复以上描述过的迭代计算过程。
方法200包括基于调整前计算窗口的v个组件为调整后计算窗口直接迭代计算延迟为l的自相关函数的v个组件(205),这包括访问被去除的数据元素,调整后计算窗口两端不包括新加入的数据元素在内的各l个数据元素,以及新加入的数据元素(206),访问延迟为l的自相关的v个组件(207),从v个组件中的每一个组件数学地去除被去除的数据元素的任何贡献(208),及向v个组件中的每一个组件数学地加入被加入的数据元素的任何贡献(209)。例如,参考100A和100B,当延迟l=1时,迭代算法133可用于为计算窗口122B直接迭代计算延迟为1的组件Cd1 144基于为计算窗口122A计算的延迟为1的组件Cd1 143(205)。迭代算法133可访问数据元素102,数据元素103及数据元素109,及数据元素110(206)。迭代算法133可访问延迟为1的组件Cd1 143(207)。直接迭代计算延迟为1的组件Cd1 144包括贡献去除模块133A从延迟为1的组件Cd1 143中数学地去除贡献152也即数据元素102的贡献(208)。直接迭代计算延迟为1的组件Cd1 144包括贡献加入模块133B向延迟为1的组件Cd1143中数学地加入贡献155也即数据元素110的贡献(209)。类似地,当延迟l=1时,迭代算法139可用于为计算窗口122B直接迭代计算延迟为1的组件Cdv148基于为计算窗口122A计算的延迟为1的组件Cdv147。迭代算法139可访问数据元素102,数据元素103及数据元素109,及数据元素110。迭代算法139可访问延迟为1的组件Cdv147。直接迭代计算延迟为1的组件Cdv148包括贡献去除模块139A从延迟为1的组件Cdv147中数学地去除贡献182也即数据元素102的贡献。直接迭代计算延迟为1的组件Cdv148包括贡献加入模块139B向延迟为1的组件Cdv147中数学地加入贡献185也即数据元素110的贡献。
如图所示,延迟为l的组件Cd1 144包括其它贡献153(来自数据元素103-108的贡献),贡献154(来自数据元素109的贡献),及贡献155(来自数据元素110的贡献),延迟为l的组件Cdv148包括其它贡献183(来自数据元素103-108的贡献),贡献184(来自数据元素109的贡献),及贡献185(来自数据元素110的贡献)。
方法200包括根据需要间接迭代计算给定延迟的w个组件和自相关函数。
方法200包括,根据需要即只有自相关函数被访问时,间接迭代计算给定延迟范围内每个延迟上的自相关的w个组件和自相关函数。如果自相关函数不被访问,方法200包括继续为下一个计算窗口接收下一个要加入的数据元素(203)。如果自相关函数被访问,方法200包括间接迭代计算给定延迟范围内所有延迟上的自相关的w个组件(213,214,216,217),基于迭代计算的组件计算给定延迟范围内所有延迟上的的自相关(213,215,216,217)。
当下一个要加入的数据元素被接收,组件Cd1 144可被用来直接迭代计算下一个组件Cd1,组件Cdv148可被用来直接迭代计算下一个组件Cdv
图3-1图示了在流数据上迭代计算自相关函数时从计算窗口300A中去除的数据元素和加入到计算窗口300A中的数据元素。计算窗口300A向右边移动。参考图3-1,一个已有的数据元素总是从计算窗口300A的左边被去除,一个数据元素总是被加入到计算窗口300A的右边。
图3-2图示了在流数据上迭代计算自相关函数时从计算窗口300A访问的数据。对于计算窗口300A,前n个数据元素被访问用来为第一个计算窗口初始化给定延迟范围内所有延迟的两个以上组件,然后根据需要间接迭代计算w=p-v个组件及自相关函数。随着时间推移,一个最老的数据元素如第(m+1)个数据元素被从计算窗口300A中去除,一个数据元素如第(m+n+1)个数据元素被加入到计算窗口300A。调整后计算窗口的给定延迟范围内每个延迟上的两个以上组件然后被直接迭代计算基于为第一个计算窗口计算的组件。延迟l=1时,共有4个数据元素被访问,包括被去除的数据元素,一个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及一个与被加入的数据元素相邻的数据元素。延迟l=2时,共有6个数据元素被访问,包括被去除的数据元素,2个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及2个与被加入的数据元素相邻的数据元素。延迟为l=maxl时,共有2*(maxl+1)个数据元素被访问,包括被去除的数据元素,maxl个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及maxl个与被加入的数据元素相邻的数据元素。然后根据需要间接迭代计算给定延迟的w=p-v个组件及自相关函数。然后计算窗口300A通过去除一个老数据元素和加入一个新数据元素再次被调整,……。对于一个给定的迭代算法,v是个常数,间接迭代w=p-v个组件的操作数也是一个常数,所以对于一个给定的延迟范围,数据访问量和计算量被减少并且是常数。计算窗口规模n越大,则数据访问量和计算量的减少就越显著。
图3-3图示了在流数据上迭代计算自相关函数时从计算窗口300B中去除的数据元素和加入到计算窗口300B中的数据元素。计算窗口300B向左边移动。参考图3-3,一个新数据元素总是从计算窗口300B的右边被去除,一个老数据元素总是被加入到计算窗口300B的左边。
图3-4图示了在流数据上迭代计算自相关函数时从计算窗口300B访问的数据。对于计算窗口300B,前n个数据元素被访问用来为第一个计算窗口初始化给定延迟的两个以上组件,然后根据需要间接迭代计算w=p-v个组件及自相关函数。随着时间推移,一个数据元素如第(m+n)个数据元素被从计算窗口300B中去除,一个数据元素如第m个数据元素被加入到计算窗口300B。调整后计算窗口的给定延迟范围内每个延迟上的自相关的两个以上组件然后被直接迭代计算基于为第一个计算窗口计算的组件。延迟l=1时,共有4个数据元素被访问,包括被去除的数据元素,一个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及一个与被加入的数据元素相邻的数据元素。延迟l=2时,共有6个数据元素被访问,包括被去除的数据元素,2个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及2个与被加入的数据元素相邻的数据元素。延迟为l=maxl时,共有2*(maxl+1)个数据元素被访问,包括被去除的数据元素,maxl个与被去除的数据元素相邻的数据元素,被加入的数据元素,以及maxl个与被加入的数据元素相邻的数据元素。然后根据需要间接迭代计算给定延迟的w=p-v个组件及自相关函数。然后计算窗口300B通过去除一个新数据元素和加入一个老数据元素再次被调整,……。对于一个给定的迭代算法,v是个常数,间接迭代w=p-v个组件的操作数也是一个常数,所以对于一个给定的延迟范围,数据访问量和计算量被减少并且是常数。计算窗口规模n越大,则数据访问量和计算量的减少就越显著。
以下的部分有一些自相关函数的组件的例子和迭代自相关函数计算算法的例子。
图4-1图示自相关函数的定义。假设X=(xm+1,xm+2,……,xm+n)是一个包含参与自相关函数计算的数据元素的一个规模为n的调整前计算窗口。该计算窗口可以向右或向左两个方向移动。例如,当要计算最新数据的自相关时,该计算窗口向右移动。这时,一个数据被从该计算窗口的左侧去除,一个数据被加入到该计算窗口的右侧。当要复查老数据的自相关时,该计算窗口向左移动。这时,一个数据被从该计算窗口的右侧去除,一个数据被加入到该计算窗口的左侧。这两种情况下用于迭代计算组件的方程是不同的。为了区别它们,定义前种情况调整后计算窗口为XI,后种情况调整后计算窗口为XII。每当自相关函数的任何组件由于计算窗口中数据元素的变化而需要被重新计算时,开始新一轮的迭代计算。在新一轮的迭代计算里,原来的调整后计算窗口变成新一轮计算的调整前计算窗口。
方程401和402是分别为第k轮计算调整前计算窗口X里的所有数据元素的总和Sk和平均值
Figure BDA0001937452990000231
的传统方程。方程403是为第k轮计算计算窗口X的给定延迟为l的自相关ρ(k,l)的传统方程。方程404是为第k+1轮计算规模为n的调整后计算窗口XI里所有数据元素的总和SI k+1的传统方程。方程405是为第k+1轮计算调整后计算窗口XI里所有数据元素的平均值
Figure BDA0001937452990000232
的传统方程。方程406是为第k+1轮计算调整后计算窗口XI的给定延迟为l的自相关ρI (k+1,l)的传统方程。如前所述,当计算窗口向左测移动时,调整后计算窗口定义为XII。方程407是为第k+1轮计算规模为n的调整后计算窗口XII里所有数据元素的总和SII k+1的传统方程。方程408是为第k+1轮计算调整后计算窗口XII里所有数据元素的平均值
Figure BDA0001937452990000233
的传统方程。方程409是为第k+1轮计算调整后计算窗口XII的给定延迟为l的自相关ρII (k+1,l)的传统方程。重复使用方程409来计算一个给定的延迟范围内的所有不同延迟的自相关则得到给定延迟范围的自相关函数。
为展示如何利用组件迭代计算自相关函数,三个不同的迭代自相关函数算法被提供作为例子。每当计算窗口有一个数据变化时新的一轮计算就开始了(例如,122→122A→122B)。一个和或平均值是计算自相关函数的基本组件。迭代计算一个和或平均值的方程是被所有例子迭代自相关函数计算算法都用到的迭代组件方程。
图4-2说明第一个例子迭代自相关函数计算算法(迭代算法1)可用到的方程。方程401和402可分别被用来初始化组件Sk和/或
Figure BDA0001937452990000234
方程410,411,和412可分别被用来初始化组件SSk,SXk,和covX(k,l)。方程413可用来计算自相关ρ(k,l)。当计算窗口向右移动时,迭代算法1包括组件SI k+1
Figure BDA0001937452990000235
SSI k+1,SXI k+1,和covXI (k+1,l)的迭代计算,一旦组件SXI k+1和covXI (k+1,l)被计算,自相关ρI (k+1,l)可以基于它们来计算。一旦组件Sk和/或
Figure BDA0001937452990000236
可用,方程414和415可分别被用来迭代计算调整后计算窗口XI的组件SI k+1
Figure BDA0001937452990000237
一旦组件SSk可用,方程416可用于直接迭代计算调整后计算窗口XI的组件SSI k+1。一旦组件SI k+1
Figure BDA0001937452990000238
和SSI k+1可用,方程417可用于间接迭代计算调整后计算窗口XI的组件SXI k+1。一旦组件covX(k,l),SSI k+1,Sk
Figure BDA0001937452990000241
和SI k+1
Figure BDA0001937452990000242
可用,方程418可用于直接迭代计算调整后计算窗口XI的组件covXI (k+1,l)。414,415,417,和418分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。一旦组件covXI (k+1,l)和SXI k+1被计算,方程419可用于间接迭代计算调整后计算窗口XI的给定延迟为l的组件ρI (k+1,l)。方程418和419可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。当计算窗口向左移动时,迭代算法1包括组件SII k+1
Figure BDA0001937452990000243
SSII k+1,SXII k+1,和covXII (k+1,l)的迭代计算,一旦组件SXII k+1和covXII (k+1,l)被计算,自相关ρII (k+1,l)可以基于它们来计算。方程420和421可分别被用来迭代计算调整后计算窗口XII的组件SII k+1
Figure BDA0001937452990000244
一旦组件Sk和/或
Figure BDA0001937452990000245
可用。方程422可用于直接迭代计算调整后计算窗口XII的组件SSII k+1一旦组件SSk可用。423可用于间接迭代计算调整后计算窗口XII的组件SXII k+1一旦组件SII k+1
Figure BDA0001937452990000246
和SSII k+1可用。方程424可用于直接迭代计算调整后计算窗口XII的组件covXII (k+1,l)一旦组件covX(k,l),SSII k+1,Sk
Figure BDA0001937452990000247
和SII k+1
Figure BDA0001937452990000248
可用。420,421,423,和424分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者可用。方程425可用于间接迭代计算调整后计算窗口XII的给定延迟为l的组件ρII (k+1,l)一旦组件covXII (k+1,l)和SXII k+1被计算。方程424和425可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。
图4-3说明第二个例子迭代自相关函数计算算法(迭代算法2)可用到的方程。方程401和402可分别被用来初始化组件Sk和/或
Figure BDA0001937452990000249
方程426和427可分别被用来初始化组件SXk和covX(k,l)。方程428可用来计算自相关ρ(k,l)。当计算窗口向右移动时,迭代算法2包括组件SI k+1
Figure BDA00019374529900002410
SXI k+1,和covXI (k+1,l)的迭代计算,一旦组件SXI k+1和covXI (k+1,l)被计算,自相关ρI (k+1,l)可以基于它们来计算。一旦组件Sk和/或
Figure BDA00019374529900002411
可用,方程429和430可分别被用来迭代计算调整后计算窗口XI的组件SI k+1
Figure BDA0001937452990000251
一旦组件SXk,SI k+1和/或
Figure BDA0001937452990000252
可用,方程431可用于直接迭代计算调整后计算窗口XI的组件SXI k+1。方程432可用于直接迭代计算调整后计算窗口XI的组件covXI (k+1,l)一旦组件covX(k,l),Sk
Figure BDA0001937452990000253
和SI k+1
Figure BDA0001937452990000254
可用。429,430,431,和432分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。一旦组件covXI (k+1,l)和SXI k+1被计算,方程433可用于间接迭代计算调整后计算窗口XI的给定延迟为l的组件ρI (k+1,l)。方程432和433可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。当计算窗口向左移动时,迭代算法2包括组件SII k+1
Figure BDA0001937452990000255
SXII k+1,和covXII (k+1,l)的迭代计算,一旦组件SXII k+1和covXII (k+1,l)被计算,自相关ρII (k+1,l)可以基于它们被计算。方程434和435可分别被用来迭代计算调整后计算窗口XII的组件SII k+1
Figure BDA0001937452990000256
一旦组件Sk和/或
Figure BDA0001937452990000257
可用。方程436可用于直接迭代计算调整后计算窗口XII的组件SXII k+1一旦组件SXII k,SII k+1和/或
Figure BDA0001937452990000258
可用。方程437可用于直接迭代计算调整后计算窗口XII的组件covXII (k+1,l)一旦组件covX(k,l),Sk
Figure BDA0001937452990000259
以及SII k+1
Figure BDA00019374529900002510
可用。434,435,436,和437分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者可用。方程438可用于间接迭代计算调整后计算窗口XII的给定延迟为l的组件ρII (k+1,l)一旦组件covXII (k+1,l)和SXII k+1被计算。方程437和438可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。
图4-4说明第三个例子迭代自相关函数计算算法(迭代算法3)可用到的方程。方程401和402可分别被用来初始化组件Sk和/或
Figure BDA00019374529900002511
方程439和440可分别被用来初始化组件SXk和covX(k,l)。方程441可用来计算自相关ρ(k,l)。当计算窗口向右移动时,迭代算法3包括组件SI k+1
Figure BDA00019374529900002512
SXI k+1,和covXI (k+1,l)的迭代计算,一旦组件SXI k+1和covXI (k+1,l)被计算,自相关ρI (k+1,l)可以基于它们来计算。方程442和443可分别被用来迭代计算调整后计算窗口XI的组件SI k+1
Figure BDA00019374529900002513
一旦组件Sk和/或
Figure BDA00019374529900002514
可用。方程444可用于直接迭代计算调整后计算窗口XI的组件SXI k+1一旦组件SXk,Sk和/或
Figure BDA0001937452990000261
以及SI k+1和/或
Figure BDA0001937452990000262
可用。方程445可用于直接迭代计算调整后计算窗口XI的组件covXI (k+1,l)一旦组件covX(k,l),Sk
Figure BDA0001937452990000263
以及SI k+1
Figure BDA0001937452990000264
可用。442,443,444,和445分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。方程446可用于间接迭代计算调整后计算窗口XI的给定延迟为l的组件ρI (k+1,l)一旦组件covXI (k+1,l)和SXI k+1被计算。方程445和446可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。当计算窗口向左移动时,迭代算法3包括组件SII k+1
Figure BDA0001937452990000265
SXII k+1,和covXII (k+1,l)的迭代计算,一旦组件SXII k+1和covXII (k+1,l)被计算,自相关ρII (k+1,l)可以基于它们被计算。方程447和448可分别被用来迭代计算调整后计算窗口XII的组件SII k+1
Figure BDA0001937452990000266
一旦组件Sk和/或
Figure BDA0001937452990000267
可用。方程449可用于直接迭代计算调整后计算窗口XII的组件SXII k+1一旦组件SXk,Sk和/或
Figure BDA0001937452990000268
以及SII k+1和/或
Figure BDA0001937452990000269
可用。方程450可用于直接迭代计算调整后计算窗口XII的组件covXII (k+1,l)一旦组件covX(k,l),Sk
Figure BDA00019374529900002610
以及SII k+1
Figure BDA00019374529900002611
可用。447,448,449,和450分别包含多个方程但分别只需要其中一个取决于是否和或平均值或两者都可用。一旦组件covXII (k+1,l)和SXII k+1被计算,方程451可用于间接迭代计算调整后计算窗口XII的给定延迟为l的组件ρII (k+1,l)。方程450和451可被重复使用来计算一个给定的延迟范围内的不同延迟的自相关从而得到该给定延迟范围的自相关函数。
为展示三个例子迭代自相关函数算法以及它们与传统算法的比较,下面给出三个具体计算的例子。使用3个计算窗口的数据。对于传统算法,所有3个计算窗口的计算过程完全相同。对于迭代算法,第一个计算窗口进行多个组件的初始化,第二个和第三个计算窗口进行迭代计算。
图5-1,图5-2,图5-3分别显示了用于一个计算实例的第一个,第二个,和第三个计算窗口。计算窗口503包括数据流501的头4个数据元素:8,3,6,1。计算窗口504包括数据流501的4个数据元素:3,6,1,9。计算窗口505包括数据流501的4个数据元素:6,1,9,2。该计算实例假设计算窗口从左向右移动。数据流501可以是实时流数据或流化的大数据。计算窗口规模502(n)是4。
首先用传统算法分别计算计算窗口503,504和505的自相关函数。
为计算窗口503计算延迟上限为2的自相关函数:
Figure BDA0001937452990000271
Figure BDA0001937452990000272
Figure BDA0001937452990000273
Figure BDA0001937452990000274
Figure BDA0001937452990000275
Figure BDA0001937452990000276
没有任何优化的情况下,为规模为4的计算窗口计算延迟上限为2的自相关函数共有3次除法,9次乘法,9次加法和14次减法。
相同的方程和过程可被用来分别为图5-2显示的计算窗口504计算延迟上限为2的自相关和为图5-3显示的计算窗口505计算延迟上限为2的自相关。计算窗口504延迟上限为2的自相关
Figure BDA0001937452990000277
Figure BDA0001937452990000278
Figure BDA0001937452990000279
计算窗口505延迟上限为2的自相关
Figure BDA00019374529900002710
Figure BDA00019374529900002711
Figure BDA00019374529900002712
这两个计算窗口计算中的每一个在没有优化的情况下都包括3次除法,9次乘法,9次加法和14次减法。传统算法在没有优化的情况下计算计算窗口规模为n给定延迟上限为maxl的自相关函数时通常需要完成1+maxl次除法,
Figure BDA00019374529900002713
次乘法,
Figure BDA00019374529900002714
Figure BDA00019374529900002715
次加法,和
Figure BDA00019374529900002716
次减法。
下面用迭代算法1分别计算计算窗口503,504,和505的自相关函数。
为规模为4的计算窗口503计算自相关函数:
为计算窗口503计算延迟上限为2的自相关函数:
1.用方程402,410,411,和412分别初始化第1轮的组件
Figure BDA0001937452990000281
SS1,SX1,
covX(1,1),和covX(2,1)
Figure BDA0001937452990000282
Figure BDA0001937452990000283
Figure BDA0001937452990000284
Figure BDA0001937452990000285
Figure BDA0001937452990000286
2.用方程413计算第1轮的自相关ρ(1,1)和ρ(2,1)
Figure BDA0001937452990000287
Figure BDA0001937452990000288
为计算窗口503计算延迟上限为2的自相关函数时共有3个除法,11个乘法,9个加法和11个减法。
为规模为4的计算窗口504计算自相关函数:
1.用方程415,416,417,和418分别迭代计算第2轮的组件
Figure BDA0001937452990000289
SS2,
SX2,covX(2,1),和covX(2,2)
Figure BDA00019374529900002810
SS2=SS1+Xm+1+4 2-Xm+1 2=110+92-82=110+81-64=127
Figure BDA00019374529900002811
Figure BDA00019374529900002812
Figure BDA0001937452990000291
2.用方程419计算第2轮的自相关ρ(2,1)和ρ(2,2)
Figure BDA0001937452990000292
Figure BDA0001937452990000293
计算窗口504迭代计算延迟上限为2的自相关函数时共有3个除法,16个乘法,16个加法和11个减法。
为规模为4的计算窗口505计算自相关函数:
1.用方程415,416,417,和418分别迭代计算第3轮的组件
Figure BDA0001937452990000294
SS3,
SX3,covX(3,1),和covX(3,2)
Figure BDA0001937452990000295
SS3=SS2+xm+1+4 2-xm+1 2=127+22-32=127+4-9=122
Figure BDA0001937452990000296
Figure BDA0001937452990000297
Figure BDA0001937452990000298
2.用方程419计算第3轮的自相关ρ(3,1)和ρ(3,2)
Figure BDA0001937452990000299
Figure BDA00019374529900002910
为计算窗口505计算延迟上限为2的自相关函数时共有3个除法,16个乘法,16个加法和11个减法。
下面用迭代算法2分别计算计算窗口503,504,和505的自相关函数。
为规模为4的计算窗口503计算自相关函数:
1.用方程402,426,和427初始化第1轮的组件
Figure BDA0001937452990000301
SX1,covX(1,1),和
covX(1,2)
Figure BDA0001937452990000302
Figure BDA0001937452990000303
Figure BDA0001937452990000304
Figure BDA0001937452990000305
2.用方程428计算第1轮的自相关ρ(1,1)和ρ(1,2)
Figure BDA0001937452990000306
Figure BDA0001937452990000307
为计算窗口503计算延迟上限为2的自相关函数时共有3个除法,9个乘法,9个加法和14个减法。
为规模为4的计算窗口504计算自相关函数:
1.用方程430,431,和432分别迭代计算第2轮的组件
Figure BDA0001937452990000308
SX2,covX(2,1),和covX(2,2):
Figure BDA0001937452990000309
Figure BDA00019374529900003010
Figure BDA00019374529900003011
Figure BDA0001937452990000311
2.用方程433计算第2轮的自相关ρ(2,1)和ρ(2,2):
Figure BDA0001937452990000312
Figure BDA0001937452990000313
计算窗口504迭代计算延迟上限为2的自相关函数时共有3个除法,13个乘法,18个加法和11个减法。
为规模为4的计算窗口505计算自相关函数:
1.用方程430,431,和432分别迭代计算第3轮的组件
Figure BDA0001937452990000314
SX3,
covX(3,1),和covX(3,2):
Figure BDA0001937452990000315
Figure BDA0001937452990000316
Figure BDA0001937452990000317
Figure BDA0001937452990000318
2.用方程433计算第3轮的自相关ρ(3,1)和ρ(3,2):
Figure BDA0001937452990000319
Figure BDA0001937452990000321
计算窗口505迭代计算延迟上限为2的自相关函数时共有3个除法,13个乘法,18个加法和11个减法。
下面用迭代算法3分别计算计算窗口503,504,和505的自相关函数。
为规模为4的计算窗口503计算自相关函数:
1.用方程402,439,和440初始化第1轮的组件
Figure BDA0001937452990000322
SX1,covX(1,1),和
covX(1,2):
Figure BDA0001937452990000323
Figure BDA0001937452990000324
Figure BDA0001937452990000325
Figure BDA0001937452990000326
2.用方程441计算第1轮的自相关ρ(1,1)和ρ(1,2):
Figure BDA0001937452990000327
Figure BDA0001937452990000328
为计算窗口503计算延迟上限为2的自相关时共有3个除法,9个乘法,9个加法和14个减法。
为规模为4的计算窗口504计算自相关函数:
1.用方程443,444,和445分别迭代计算第2轮的组件
Figure BDA0001937452990000329
SX2,
covX(2,1),和covX(2,2):
Figure BDA00019374529900003210
Figure BDA00019374529900003211
Figure BDA0001937452990000331
Figure BDA0001937452990000332
2.用方程446计算第2轮的自相关ρ(2,1)和ρ(2,2):
Figure BDA0001937452990000333
Figure BDA0001937452990000334
计算窗口504迭代计算延迟上限为2的自相关时共有3个除法,13个乘法,15个加法和13个减法。
为规模为4的计算窗口505计算自相关函数:
1.用方程443,444,和445分别迭代计算第3轮的组件
Figure BDA0001937452990000335
SX3,
covX(3,1),和covX(3,2):
Figure BDA0001937452990000336
Figure BDA0001937452990000337
Figure BDA0001937452990000338
Figure BDA0001937452990000339
Figure BDA0001937452990000341
2.用方程446计算第3轮的自相关ρ(3,1)和ρ(3,2):
Figure BDA0001937452990000342
Figure BDA0001937452990000343
计算窗口505迭代计算延迟上限为2的自相关函数时共有3个除法,13个乘法,15个加法和13个减法。
在以上三个例子中,平均值被用于迭代自相关函数计算。和也可被用于自相关函数迭代计算,只是操作数不同。另外,上述三个例子中的计算窗口是从左向右移动。当计算窗口从右向左移动时其计算过程类似只是应用一组不同的方程。
图6-1图示了n=4延迟上限为2时,传统自相关函数算法和迭代自相关函数算法的计算量对比。如图所示,任何一个迭代算法和传统算法的除法操作,乘法操作,加法操作和减法操作个数都差不多。
图6-2图示了n=1,000,000延迟上限为2时,传统自相关函数算法和迭代自相关函数算法的计算量对比。如图所示,任何一个迭代算法都比传统算法少很多乘法操作,加法操作和减法操作。迭代算法把需要在成千上万台计算机上处理的计算只在单机上就能完成从而大大提高计算效率,减少计算资源,降低计算系统能耗。
本发明可以在不脱离其思想或本质特征的情况下以其它特定的方式来实现。本申请描述的实现方案从各个方面来说是仅作为示范性的而不是限制性的。因此,本发明的范围由附加的权利要求书而不是前面的描述来指明。与权利要求书中权利要求的含义和范围等价的所有变化都包含在它们的范围内。

Claims (10)

1.一种,由基于一个或多个计算设备构成的一个计算系统实现的,实时地寻找流数据自身重复规律的方法,其特征在于:
由基于计算设备的一个计算系统,为一个数据流的一个指定规模的调整前计算窗口初始化一个指定延迟范围的自相关函数的多个组件;
由基于计算设备的该计算系统,访问或接收一个要加入到该调整前计算窗口的数据元素;
由基于计算设备的该计算系统,保存访问或接收的数据元素到缓冲区中;
由基于计算设备的该计算系统,调整该调整前计算窗口,通过:
从该调整前计算窗口中去除最早访问或接收的数据元素;以及
向该调整前计算窗口加入要加入的数据元素;
由基于计算设备的该计算系统,至少基于该调整前计算窗口的自相关函数的该多个组件以及被去除的数据元素和被加入的数据元素,为该调整后计算窗口迭代计算自相关函数的多个组件,并且在迭代计算该多个组件的过程中避免访问和使用调整后计算窗口中的所有数据元素来降低数据访问延迟,提高计算效率,节省计算资源和降低该计算系统能耗;以及
由基于计算设备的该计算系统,基于为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成指定延迟范围的自相关函数。
2.按照权利要求1所述的由该计算系统实现的该方法,其特征在于:所述访问或接收一个要加入的数据元素包括访问多个要加入该调整前计算窗口的数据元素,该方法也进一步包括对于多个要加入的数据元素中的每一个数据元素进行调整该调整前计算窗口,迭代计算自相关函数的多个组件,以及为该调整后计算窗口生成自相关函数。
3.按照权利要求2所述的由该计算系统实现的该方法,其特征在于:所述为该调整后计算窗口生成自相关函数当且仅当该自相关函数被访问时。
4.按照权利要求3所述的由该计算系统实现的该方法,其特征在于:所述为该调整后计算窗口生成自相关函数进一步包括由基于计算设备的该计算系统为该调整后计算窗口间接迭代计算自相关函数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
5.一个计算系统,其特征在于:
一个或多个计算设备;
每个计算设备包含一个或多个处理器;
一个或多个存储媒体,其中的缓冲区存储了流数据元素;以及
一个或多个计算模块,当它们被一个或多个计算设备中的至少一个计算设备执行时,实时地寻找流数据自身重复规律,包括:
a.为存储于该计算系统的缓冲区的一个指定规模的调整前计算窗口初始化一个指定延迟范围的自相关函数的多个组件;
b.访问或接收一个要加入到该调整前计算窗口的数据元素;
c.保存该数据元素到缓冲区中;
d.调整该调整前计算窗口,包括:
从该调整前计算窗口中去除最早访问或接收的数据元素;以及
向该调整前计算窗口中加入要加入的数据元素;
e.至少基于该调整前计算窗口的自相关函数的该多个组件以及被去除的数据元素和被加入的数据元素,为该调整后计算窗口迭代计算自相关函数的多个组件,并且在迭代计算该多个组件的过程中避免访问和使用调整后计算窗口中的所有数据元素来降低数据访问延迟,提高计算效率,节省计算资源和降低该计算系统能耗;以及
f.基于为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成指定延迟范围的自相关函数。
6.按照权利要求5所述的该计算系统,其特征在于:该一个或多个计算模块,当它们被该一个或多个计算设备中的至少一个计算设备执行时,多次执行b,c,d,e和f。
7.按照权利要求6所述的该计算系统,其特征在于:执行f当且仅当该调整后计算窗口的自相关函数被访问时。
8.按照权利要求7所述的该计算系统,其特征在于:所述f进一步包括由该计算系统为该调整后计算窗口间接迭代计算自相关函数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
9.一个计算系统程序产品,运行于一个包含一个或多个计算设备的一个计算系统,该计算系统包括一个或多个处理器以及一个或多个存储媒体,该计算系统程序产品包含多条计算设备可执行指令,当这些计算设备可执行指令被该计算系统中的至少一台计算设备运行时,使得该计算系统执行一个实时地寻找流数据自身重复规律的方法,其特征在于:
由该计算系统为存储于该系统至少一个存储媒体上的缓冲区的一个指定规模的调整前计算窗口初始化一个指定延迟范围的自相关函数的多个组件;
由该计算系统访问或接收一个要加入到该调整前计算窗口的数据元素;
由该计算系统保存该数据元素到缓冲区中;
由该计算系统调整该调整前计算窗口,通过从该调整前计算窗口中去除最早访问或接收的数据元素以及向该调整前计算窗口加入要加入的数据元素;
由该计算系统至少基于该调整前计算窗口的自相关函数的该多个组件以及被去除的数据元素和被加入的数据元素,为该调整后计算窗口迭代计算自相关函数的多个组件,并且在迭代计算该多个组件的过程中避免访问和使用调整后计算窗口中的所有数据元素来降低数据访问延迟,提高计算效率,节省计算资源和降低该计算系统能耗;以及
由该计算系统基于为该调整后计算窗口迭代计算的组件,为该调整后计算窗口生成指定延迟范围的自相关函数。
10.按照权利要求9所述的该计算系统程序产品,其特征在于:所述由该计算系统为该调整后计算窗口生成自相关函数进一步包括由该计算系统为该调整后计算窗口间接迭代计算自相关函数的一个或多个组件,间接迭代计算该一个或多个组件包括基于要计算的组件之外的一个或多个组件来逐个分别计算该一个或多个组件。
CN201910011400.5A 2019-01-07 2019-01-07 一种实时寻找流数据自身重复规律的方法 Pending CN111414577A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910011400.5A CN111414577A (zh) 2019-01-07 2019-01-07 一种实时寻找流数据自身重复规律的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910011400.5A CN111414577A (zh) 2019-01-07 2019-01-07 一种实时寻找流数据自身重复规律的方法

Publications (1)

Publication Number Publication Date
CN111414577A true CN111414577A (zh) 2020-07-14

Family

ID=71492596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910011400.5A Pending CN111414577A (zh) 2019-01-07 2019-01-07 一种实时寻找流数据自身重复规律的方法

Country Status (1)

Country Link
CN (1) CN111414577A (zh)

Similar Documents

Publication Publication Date Title
US9928215B1 (en) Iterative simple linear regression coefficient calculation for streamed data using components
US10659369B2 (en) Decremental autocorrelation calculation for big data using components
US10394809B1 (en) Incremental variance and/or standard deviation calculation for big data or streamed data using components
US10394810B1 (en) Iterative Z-score calculation for big data using components
CN110457340B (zh) 一种实时寻找大数据自身重复规律的方法
CN112035521A (zh) 一种实时判断流数据自身给定延迟重复性的方法
CN111414577A (zh) 一种实时寻找流数据自身重复规律的方法
CN110515680B (zh) 一种实时判断大数据自身给定延迟重复性的方法
CN110515681B (zh) 一种实时判断流数据自身给定延迟重复性的方法
US9967195B1 (en) Iterative autocorrelation function calculation for big data using components
CN112035520A (zh) 一种实时判断流数据自身给定延迟重复性的方法
US10191941B1 (en) Iterative skewness calculation for streamed data using components
CN110363321B (zh) 一种实时预测大数据变化趋势的方法
US10235414B1 (en) Iterative kurtosis calculation for streamed data using components
CN111708972A (zh) 一种实时判断流数据分布密度集中程度的方法
US10079910B1 (en) Iterative covariance calculation for streamed data using components
US10262031B1 (en) Decremental kurtosis calculation for big data or streamed data using components
CN112035505A (zh) 一种实时判断大数据分布密度集中程度的方法
CN112035791A (zh) 一种实时判断大数据自身给定延迟重复性的方法
US10225308B1 (en) Decremental Z-score calculation for big data or streamed data using components
US10235415B1 (en) Iterative variance and/or standard deviation calculation for big data using components
CN111708979A (zh) 一种实时判断大数据离散程度的方法
US10282445B1 (en) Incremental kurtosis calculation for big data or streamed data using components
CN111488380A (zh) 一种实时判断流数据分布不对称性的方法
CN112434253A (zh) 一种实时判断大数据或流数据离散程度的方法

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