CN113961763A - 处理乱序数据的方法、设备和可读存储介质 - Google Patents
处理乱序数据的方法、设备和可读存储介质 Download PDFInfo
- Publication number
- CN113961763A CN113961763A CN202111190117.7A CN202111190117A CN113961763A CN 113961763 A CN113961763 A CN 113961763A CN 202111190117 A CN202111190117 A CN 202111190117A CN 113961763 A CN113961763 A CN 113961763A
- Authority
- CN
- China
- Prior art keywords
- data
- current
- time window
- determining
- delay time
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90348—Query processing by searching ordered data, e.g. alpha-numerically ordered data
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及分布式计算领域,提供了处理乱序数据的方法、设备和计算机可读存储介质,以使设置的延迟时间在处理乱序数据时,对数据的波动变化响应客观合理并且及时。所述方法包括:计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n‑1个时间戳绝对差值;根据n‑1个时间戳绝对差值,确定延迟时间Td;在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线;根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。本申请的技术方案使得计算最新水位线更加客观,也使得对数据乱序的响应比较及时。
Description
技术领域
本发明涉及分布式计算领域,特别涉及一种处理乱序数据的方法、设备和可读存储介质。
背景技术
Flink作为分布式计算框架,在大数据实时处理领域发挥了重要作用,而对于乱序数据的处理,Flink也提供了一系列的处理方式,主要就是通过水印(watermark)、允许延迟时间及侧输出的方式来解决。而在这几个方式中,watermark的设置尤为重要,其允许的延迟时间的合理性,将会使整个流程的处理更加合理与严谨。然而,现有技术在设置watermark时是按照研发人员的经验进行。然而,这种设置方式具有一定的主观性,或者具有滞后性,从而导致设置不科学、不合理。
发明内容
本申请提供一种处理乱序数据的方法、设备和计算机可读存储介质,以使设置的延迟时间在处理乱序数据时,对数据的波动变化响应客观合理并且及时。
一方面,本申请提供了一种处理乱序数据的方法,所述方法包括:
计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,所述n为不小于20的自然数;
根据所述n-1个时间戳绝对差值,确定延迟时间Td;
在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线;
根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前时间窗口内收到的数据。
可选地,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:按照大小顺序对所述n-1个时间戳绝对差值排序;将排序在指定顺序号对应的时间戳绝对差值确定为所述延迟时间Td,所述指定顺序号小于所述排序中最大排序号。
可选地,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:按照大小顺序对所述n-1个时间戳绝对差值排序;将所述排序中最大排序号对应的时间戳绝对差值确定为所述延迟时间Td。
可选地,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:求取所述n-1个时间戳绝对差值的正态分布N(μ,σ2);将所述正态分布N(μ,σ2)中均值μ对应的确定为所述延迟时间Td。
可选地,所述根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线,包括:将所述当前时间窗口内收到的每个数据的时间戳与所述延迟时间Td求差,得到所述当前时间窗口内收到的每个数据对应的差值;将所述差值中最大的差值确定为所述当前最新水位线。
可选地,所述根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前收到的数据,包括:求取所述当前时间窗口内收到数据Dcurrent时所述当前最新水位线与所述延迟时间Td之间的差值;若所述差值等于所述当前时间窗口的右边界,则触发所述当前时间窗口开始处理所述当前时间窗口内收到的数据。
可选地,所述方法还包括:若在所述数据Dcurrent之后收到其他数据,则放弃对在所述数据Dcurrent之后收到的其他数据的处理;或者若所述差值大于所述当前时间窗口的右边界,则放弃对所述数据Dcurrent的处理。
另一方面,本申请提供了一种处理乱序数据的装置,所述装置包括:
计算模块,用于计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,所述n为不小于20的自然数;
第一确定模块,用于根据所述n-1个时间戳绝对差值,确定延迟时间Td;
第二确定模块,用于在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线;
第三确定模块,用于根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前时间窗口内收到的数据。
第三方面,本申请提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的处理乱序数据的方法中的步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的处理乱序数据的方法中的步骤。
从上述本申请提供的技术方案可知,一方面,由于延迟时间Td是根据n-1个时间戳绝对差值,该n-1个时间戳绝对差值是严格按照上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳计算得到,即延迟时间Td的获得具有客观性,为后续计算最新水位线提供了客观依据,避免了现有技术在确定水位线时依赖研发人员的经验,因此,根据当前最新水位线、当前时间窗口的右边界和延迟时间Td来确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据具有合理性;另一方面,最新水位线和是否触发当前时间窗口开始处理当前时间窗口内收到的数据,都是基于事件处理周期进行,因此,对数据的波动变化即数据乱序的响应比较及时。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的处理乱序数据的方法的流程图;
图2是本申请实施例提供的处理乱序数据的装置的结构示意图;
图3是本申请实施例提供的设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本说明书中,诸如第一和第二这样的形容词仅可以用于将一个元素或动作与另一元素或动作进行区分,而不必要求或暗示任何实际的这种关系或顺序。在环境允许的情况下,参照元素或部件或步骤(等)不应解释为局限于仅元素、部件、或步骤中的一个,而可以是元素、部件、或步骤中的一个或多个等。
在本说明书中,为了便于描述,附图中所示的各个部分的尺寸并不是按照实际的比例关系绘制的。
本申请实施例提出一种处理乱序数据的方法,该方法可应用于Flink框架的各个计算节点。如附图1所示,其主要包括步骤S101至步骤S104,详述如下:
步骤S101:计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,其中,n为不小于20的自然数。
在本申请实施例中,事件处理周期可以是30分钟、一个小时或一天,等等,可以按照业务需要设定。例如,当前阶段数据乱序在可接受范围之内,则可以将事件处理周期适当增大,否则,可以减小事件处理周期。本申请实施例的乱序数据,是指在Flink计算框架中,由于网络等原因,先产生的数据却晚于后产生的数据抵达Flink计算框架被处理,换言之,数据A对应的事件时间(Event Time)早于数据B对应的事件时间,然而,数据A对应的处理时间(Process Time)却晚于数据B对应的处理时间;乱序数据中的数据可以是密度较高的业务数据,例如日志数据,而在日志数据中,进一步又可以是登录日志数据和登出日志数据。
步骤S102:根据n-1个时间戳绝对差值,确定延迟时间Td。
在本申请实施例中,延迟时间Td是Flink计算框架中为了处理乱序数据而存在的一个与水位线(watermark)关联的参数。如前所述,由于种种原因会导致事件对应的数据发生乱序,即,在实时流场景中,数据发生乱序不可避免,因此,为了在整体上不影响系统,不宜一刀切地将延迟到达的数据放弃,需要具有一种机制使得某些延迟到达、尤其是延迟时间在一定范围之内数据依然有机会被处理,这种机制就是设定一个与水位线关联的延迟时间Td。该延迟时间Td,可以存入诸如redis、mysql此类的存储媒介,可以通过Flink框架自带的Broadcast State功能或服务将其广播至Flink计算框架的各个计算节点。
作为本申请一个实施例,根据n-1个时间戳绝对差值,确定延迟时间Td可以是:按照大小顺序对n-1个时间戳绝对差值排序;将排序在指定顺序号对应的时间戳绝对差值确定为延迟时间Td,其中,指定顺序号小于排序中最大排序号。对于按照大小顺序排序的n-1个时间戳绝对差值,若将排序在指定顺序号对应的时间戳绝对差值确定为延迟时间Td,则意味着事件对应的数据,其延迟到达Flink计算框架的时间最大不能超过延迟时间Td,否则,将会被放弃处理。因此,若将指定顺序号及其之前顺序号对应时间戳绝对差值的个数除以参与排序的时间戳绝对差值的全部个数,得到一个占比,则该占比也是系统对一个事件处理周期内可以容忍的乱序数据占该事件处理周期内所处理全部数据的最大比例。例如,假设有100个时间戳绝对差值按照大小顺序参与排序,若将排序在顺序号为95对应的时间戳绝对差值确定为延迟时间Td,则将顺序号为95及其之前顺序号对应时间戳绝对差值的个数(95个)除以参与排序的时间戳绝对差值的全部个数(100个),得到的占比为95%,意味着系统对一个事件处理周期内可以容忍的乱序数据占该事件处理周期内所处理全部数据的最大比例为95%。
作为本申请另一实施例,根据n-1个时间戳绝对差值,确定延迟时间Td可以是:按照大小顺序对n-1个时间戳绝对差值排序;将排序中最大排序号对应的时间戳绝对差值确定为延迟时间Td。与前述实施例不同的是,本实施例是直接将排序中最大排序号对应的时间戳绝对差值确定为延迟时间Td,意味着系统对事件对应的数据其延迟到达Flink计算框架的时间的容忍度增强。
作为本申请另一实施例,根据n-1个时间戳绝对差值,确定延迟时间Td可以是:求取n-1个时间戳绝对差值的正态分布N(μ,σ2);将正态分布N(μ,σ2)中均值μ对应的时间戳绝对差值确定为延迟时间Td。按照正态分布的定义,若n-1个时间戳绝对差值服从正态分布,则意味着均值μ对应的时间戳绝对差值具有最大置信度,因此,将正态分布N(μ,σ2)中均值μ对应的时间戳绝对差值确定为延迟时间Td具有较大的合理性。
步骤S103:在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线。
在本申请实施例中,当前时间窗口内收到的数据可以包含乱序数据。例如,当前时间窗口内收到的数据包括A、B、C和D四个数据,其中,数据A的事件时间为ETa,其到达Flink计算框架的时间为ITa;数据B的事件时间为ETb,其到达Flink计算框架的时间为ITb;数据C的事件时间为ETc,其到达Flink计算框架的时间为ITc;数据D的事件时间为ETd,其到达Flink计算框架的时间为ITd;若ETa<ETb<ETc<ETd,但ITa<ITb<ITd<ITc,则意味着数据D发生乱序。此外,需要说明的是,数据的时间戳也即该数据对应的事件发生的时间即事件时间。例如,上述举例的A、B、C和D四个数据,其事件时间ETa、ETb、ETc和ETd也分别是数据A、B、C和D的时间戳。
在当前事件处理周期到来时,根据Broadcast State功能或服务广播的延迟时间Td,并结合当前时间窗口内收到的数据的时间戳,可以确定当前最新水位线。作为本申请一个实施例,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线可以是:将当前时间窗口内收到的每个数据的时间戳与延迟时间Td求差,得到当前时间窗口内收到的每个数据对应的差值;将差值中最大的差值确定为当前最新水位线。如上述举例的数据A、B、C和D,假设其到达Flink计算框架的顺序为数据A最先到达,其次为数据B到达,第三到达的是数据D,最后到达的是数据C。当数据A到达时,将ETa减去Td,得到一个差值Δt1=ETa-Td,Δt1为当前得到的一个水位线,记为WM1=ETa-Td;当数据B到达时,将ETb减去Td,得到一个差值Δt2=ETb-Td,Δt2为当前得到的一个水位线,记为WM2=ETb-Td;当数据D到达时,将ETd减去Td,得到一个差值Δt4=ETd-Td,Δt4为当前得到的一个水位线,记为WM4=ETd-Td;当数据C到达时,将ETc减去Td,得到一个差值Δt3=ETc-Td,Δt3为当前得到的一个水位线,记为WM3=ETc-Td。求取WM1、WM2、WM3和WM4中最大值,即max{WM1,WM2,WM3,WM4}。若WM3=max{WM1,WM2,WM3,WM4},则将WM3确定为当前最新水位线。
步骤S104:根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。
在本申请实施例中,时间窗口可以是一个滑动窗口(Sliding Window)或滚动窗口(Tumbling Window)。无论是滑动窗口还是滚动窗口,其实质是一个左闭右开的区间,区间的左端点可以称为窗口的左边界,右端点可以称为窗口的右边界。作为本申请一个实施例,根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据可以是:求取当前时间窗口内收到数据Dcurrent时当前最新水位线与延迟时间Td之间的差值;若差值等于当前时间窗口的右边界,则触发当前时间窗口以开始处理当前时间窗口内收到的数据。例如,若将当前时间窗口的左边界和右边界分别记为Wst和Wet,将当前时间窗口内收到数据Dcurrent时当前最新水位线记为WMnew,则当Wet=WMnew-Td时,触发当前时间窗口开始处理当前时间窗口内收到的数据。需要说明的是,此处触发当前时间窗口以开始处理当前时间窗口内收到的数据,不仅包括当前时间窗口内收到的数据Dcurrent,还包括在数据Dcurrent之前收到的数据。例如,对于前述实施例事件时间分别为ETa、ETb、ETc和ETd的数据A、B、C和D,由于在此收到数据C之前收到的数据A、B和D因均不满足其当前水位线与延迟时间Td之间的差值不等于当前时间窗口的右边界这一条件,则在收到收据A、B和D时均不触发当前时间窗口,而当收到数据C时得到的当前最新水位线WM3时,因其与延迟时间Td之间的差值刚好等于当前时间窗口的右边界,即WM3-Td=Wet,则触发当前时间窗口,开始处理收到的数据A、B、D和C。
上述实施例中,若在收到数据Dcurrent之后收到其他数据,则放弃对在收到数据Dcurrent之后收到的其他数据的处理,或者,若数据Dcurrent时当前最新水位线与延迟时间Td之间的差值大于当前时间窗口的右边界,则放弃对数据Dcurrent的处理。例如,对于前述实施例事件时间分别为ETa、ETb、ETc和ETd的数据A、B、C和D,若在收到数据C之后收到数据E,因在收到数据C时已经触发当前时间窗口以开始处理当前时间窗口内收到的数据,并且将当前时间窗口关闭,因此,放弃对数据E的处理;或者,若WM3-Td>Wet,则会放弃对数据C的处理。
从上述附图1示例的处理乱序数据的方法可知,一方面,由于延迟时间Td是根据n-1个时间戳绝对差值,该n-1个时间戳绝对差值是严格按照上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳计算得到,即延迟时间Td的获得具有客观性,为后续计算最新水位线提供了客观依据,避免了现有技术在确定水位线时依赖研发人员的经验,因此,根据当前最新水位线、当前时间窗口的右边界和延迟时间Td来确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据具有合理性;另一方面,最新水位线和是否触发当前时间窗口开始处理当前时间窗口内收到的数据,都是基于事件处理周期进行,因此,对数据的波动变化即数据乱序的响应比较及时。
请参阅附图2,是本申请实施例提供的一种处理乱序数据的装置,该装置可以应用于Flink计算框架中的节点设备,其包括计算模块201、第一确定模块202、第二确定模块203和第三确定模块204,详述如下:
计算模块201,用于计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,其中,n为不小于20的自然数;
第一确定模块202,用于根据n-1个时间戳绝对差值,确定延迟时间Td;
第二确定模块203,用于在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线;
第三确定模块204,用于根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。
从以上技术方案的描述中可以看出,一方面,由于延迟时间Td是根据n-1个时间戳绝对差值,该n-1个时间戳绝对差值是严格按照上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳计算得到,即延迟时间Td的获得具有客观性,为后续计算最新水位线提供了客观依据,避免了现有技术在确定水位线时依赖研发人员的经验,因此,根据当前最新水位线、当前时间窗口的右边界和延迟时间Td来确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据具有合理性;另一方面,最新水位线和是否触发当前时间窗口开始处理当前时间窗口内收到的数据,都是基于事件处理周期进行,因此,对数据的波动变化即数据乱序的响应比较及时。
可选地,上述附图2示例的第一确定模块202可包括排序单元和第一延迟时间确定单元,其中:
排序单元,用于按照大小顺序对所述n-1个时间戳绝对差值排序;
第一延迟时间确定单元,用于将排序在指定顺序号对应的时间戳绝对差值确定为延迟时间Td,其中,指定顺序号小于排序中最大排序号。
可选地,上述附图2示例的第一确定模块202可包括排序单元和第二延迟时间确定单元,其中:
排序单元,用于按照大小顺序对所述n-1个时间戳绝对差值排序;
第二延迟时间确定单元,用于将排序中最大排序号对应的时间戳绝对差值确定为延迟时间Td。
可选地,上述附图2示例的第一确定模块202可包括求取单元和第三延迟时间确定单元,其中:
求取单元,用于求取n-1个时间戳绝对差值的正态分布N(μ,σ2);
第三延迟时间确定单元,用于将正态分布N(μ,σ2)中均值μ对应的时间戳绝对差值确定为延迟时间Td。
可选地,上述附图2示例的第二确定模块203可包括第一差值计算单元和当前最新水位线确定单元,其中:
第一差值计算单元,用于将当前时间窗口内收到的每个数据的时间戳与延迟时间Td求差,得到当前时间窗口内收到的每个数据对应的差值;
当前最新水位线确定单元,用于将差值中最大的差值确定为当前最新水位线。
可选地,上述附图2示例的第三确定模块204可包括第二差值计算单元和触发单元,其中:
第二差值计算单元,用于求取当前时间窗口内收到数据Dcurrent时当前最新水位线与延迟时间Td之间的差值;
触发单元,用于若差值等于当前时间窗口的右边界,则触发当前时间窗口以开始处理当前时间窗口内收到的数据。
可选地,上述附图2示例的装置还可以包括第一放弃处理模块或第二放弃处理模块,其中:
第一放弃处理模块,用于若在收到数据Dcurrent之后收到其他数据,则放弃对在收到数据Dcurrent之后收到的其他数据的处理;
第二放弃处理模块,用于若当前时间窗口内收到数据Dcurrent时当前最新水位线与延迟时间Td之间的差值大于当前时间窗口的右边界,则放弃对数据Dcurrent的处理。
从以上技术方案的描述中可以看出,一方面,由于延迟时间Td是根据n-1个时间戳绝对差值,该n-1个时间戳绝对差值是严格按照上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳计算得到,即延迟时间Td的获得具有客观性,为后续计算最新水位线提供了客观依据,避免了现有技术在确定水位线时依赖研发人员的经验,因此,根据当前最新水位线、当前时间窗口的右边界和延迟时间Td来确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据具有合理性;另一方面,最新水位线和是否触发当前时间窗口开始处理当前时间窗口内收到的数据,都是基于事件处理周期进行,因此,对数据的波动变化即数据乱序的响应比较及时。
图3是本申请一实施例提供的计算机设备的结构示意图。如图3所示,该实施例的计算机设备3主要包括:处理器30、存储器31以及存储在存储器31中并可在处理器30上运行的计算机程序32,例如处理乱序数据的方法的程序。处理器30执行计算机程序32时实现上述处理乱序数据的方法实施例中的步骤,例如图1所示的步骤S101至步骤S105。或者,处理器30执行计算机程序32时实现上述各装置实施例中各模块/单元的功能,例如图2所示计算模块201、第一确定模块202、第二确定模块203和第三确定模块204的功能。
示例性地,处理乱序数据的方法的计算机程序32主要包括:计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,其中,n为不小于20的自然数;根据n-1个时间戳绝对差值,确定延迟时间Td;在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线;根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。计算机程序32可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器31中,并由处理器30执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序32在计算机设备3中的执行过程。例如,计算机程序32可以被分割成计算模块201、第一确定模块202、第二确定模块203和第三确定模块204(虚拟装置中的模块)的功能,各模块具体功能如下:计算模块201,用于计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,其中,n为不小于20的自然数;第一确定模块202,用于根据n-1个时间戳绝对差值,确定延迟时间Td;第二确定模块203,用于在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线;第三确定模块204,用于根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。
计算机设备3可包括但不仅限于处理器30、存储器31。本领域技术人员可以理解,图3仅仅是计算机设备3的示例,并不构成对计算机设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出计算机设备、网络接入计算机设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器31可以是计算机设备3的内部存储单元,例如计算机设备3的硬盘或内存。存储器31也可以是计算机设备3的外部存储计算机设备,例如计算机设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器31还可以既包括计算机设备3的内部存储单元也包括外部存储计算机设备。存储器31用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器31还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即,将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个非临时性计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,处理乱序数据的方法的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤,即,计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,其中,n为不小于20的自然数;根据n-1个时间戳绝对差值,确定延迟时间Td;在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和延迟时间Td,确定当前最新水位线;根据当前最新水位线、当前时间窗口的右边界和延迟时间Td,确定是否触发当前时间窗口开始处理当前时间窗口内收到的数据。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。非临时性计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读内存(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,非临时性计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,非临时性计算机可读介质不包括电载波信号和电信信号。以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种处理乱序数据的方法,其特征在于,所述方法包括:
计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,所述n为不小于20的自然数;
根据所述n-1个时间戳绝对差值,确定延迟时间Td;
在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线;
根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前时间窗口内收到的数据。
2.如权利要求1所述的方法,其特征在于,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:
按照大小顺序对所述n-1个时间戳绝对差值排序;
将排序在指定顺序号对应的时间戳绝对差值确定为所述延迟时间Td,所述指定顺序号小于所述排序中最大排序号。
3.如权利要求1所述的方法,其特征在于,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:
按照大小顺序对所述n-1个时间戳绝对差值排序;
将所述排序中最大排序号对应的时间戳绝对差值确定为所述延迟时间Td。
4.如权利要求1所述的方法,其特征在于,所述根据所述n-1个时间戳绝对差值,确定延迟时间Td,包括:
求取所述n-1个时间戳绝对差值的正态分布N(μ,σ2);
将所述正态分布N(μ,σ2)中均值μ对应的时间戳绝对差值确定为所述延迟时间Td。
5.如权利要求1所述的方法,其特征在于,所述根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线,包括:
将所述当前时间窗口内收到的每个数据的时间戳与所述延迟时间Td求差,得到所述当前时间窗口内收到的每个数据对应的差值;
将所述差值中最大的差值确定为所述当前最新水位线。
6.如权利要求1所述的方法,其特征在于,所述根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前收到的数据,包括:
求取所述当前时间窗口内收到数据Dcurrent时所述当前最新水位线与所述延迟时间Td之间的差值;
若所述差值等于所述当前时间窗口的右边界,则触发所述当前时间窗口以开始处理当前时间窗口内收到的数据。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
若在收到所述数据Dcurrent之后收到其他数据,则放弃对在收到所述数据Dcurrent之后收到的其他数据的处理;或者
若所述差值大于所述当前时间窗口的右边界,则放弃对所述数据Dcurrent的处理。
8.一种处理乱序数据的装置,其特征在于,所述装置包括:
计算模块,用于计算上一个事件处理周期内n条乱序数据每条乱序数据与上一条非乱序数据之间的时间戳绝对差值,得到n-1个时间戳绝对差值,所述n为不小于20的自然数;
第一确定模块,用于根据所述n-1个时间戳绝对差值,确定延迟时间Td;
第二确定模块,用于在当前事件处理周期,根据当前时间窗口内收到的数据的时间戳和所述延迟时间Td,确定当前最新水位线;
第三确定模块,用于根据所述当前最新水位线、所述当前时间窗口的右边界和所述延迟时间Td,确定是否触发所述当前时间窗口开始处理所述当前时间窗口内收到的数据。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任意一项所述处理乱序数据的方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任意一项所述处理乱序数据的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111190117.7A CN113961763A (zh) | 2021-10-11 | 2021-10-11 | 处理乱序数据的方法、设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111190117.7A CN113961763A (zh) | 2021-10-11 | 2021-10-11 | 处理乱序数据的方法、设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113961763A true CN113961763A (zh) | 2022-01-21 |
Family
ID=79463643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111190117.7A Pending CN113961763A (zh) | 2021-10-11 | 2021-10-11 | 处理乱序数据的方法、设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961763A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002005A (zh) * | 2022-05-18 | 2022-09-02 | 百果园技术(新加坡)有限公司 | 一种丢包率计算方法、装置、设备及存储介质 |
CN115687428A (zh) * | 2022-12-29 | 2023-02-03 | 中建三局信息科技有限公司 | 乱序数据延迟水位线动态自适应生成方法、系统及设备 |
-
2021
- 2021-10-11 CN CN202111190117.7A patent/CN113961763A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002005A (zh) * | 2022-05-18 | 2022-09-02 | 百果园技术(新加坡)有限公司 | 一种丢包率计算方法、装置、设备及存储介质 |
CN115002005B (zh) * | 2022-05-18 | 2023-12-12 | 百果园技术(新加坡)有限公司 | 一种丢包率计算方法、装置、设备及存储介质 |
CN115687428A (zh) * | 2022-12-29 | 2023-02-03 | 中建三局信息科技有限公司 | 乱序数据延迟水位线动态自适应生成方法、系统及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113961763A (zh) | 处理乱序数据的方法、设备和可读存储介质 | |
CN108762907B (zh) | 基于多个客户端的任务处理方法及系统 | |
CN111914936B (zh) | 语料数据的数据特征增强方法、装置及计算机设备 | |
CN108174305A (zh) | 直播聊天室的消息处理方法及装置 | |
WO2017092582A1 (zh) | 一种数据处理方法和装置 | |
CN108491122B (zh) | 一种点击事件响应方法、计算机可读存储介质及终端设备 | |
US11144993B2 (en) | Delay-free matching for deemphasizing effects of speed differentials among price-makers | |
CN109597800B (zh) | 一种日志分发方法及装置 | |
CN109787867B (zh) | 区块生成方法、装置、计算机设备和存储介质 | |
CN110851333B (zh) | 根分区的监控方法、装置和监控服务器 | |
CN111405370B (zh) | 一种视频回放方法和装置 | |
CN107885716A (zh) | 文本识别方法及装置 | |
CN110751045A (zh) | 故障录波方法、系统及终端设备 | |
CN105306553A (zh) | 访问请求调度方法及装置 | |
CN116795628B (zh) | 终端设备的功耗处理方法、终端设备以及可读存储介质 | |
CN110618879B (zh) | 消息处理方法、装置、电子设备和计算机可读介质 | |
Morozov et al. | Asymptotic analysis of queueing systems with finite buffer space | |
Atar et al. | Law of large numbers for the many-server earliest-deadline-first queue | |
CN114020635A (zh) | 基于场景化消息队列的数据测试方法、装置、设备及介质 | |
Saichev et al. | Effects of diversity and procrastination in priority queuing theory: The different power law regimes | |
WO2017036286A1 (zh) | 测量远端时间戳单位的方法和装置 | |
CN115099972A (zh) | 基于事件驱动架构的交易数据处理方法、装置及设备 | |
CN109542725B (zh) | 一种分布式系统的服务质量监控方法、装置及监控服务器 | |
US9887928B2 (en) | System and method for identifying performance characteristics in asynchronous networks | |
WO2018215062A1 (en) | System and method for stream processing |
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 |