技术新讯 > 电子通信装置的制造及其应用技术 > 一种基于Flink自适应窗口的事件时间处理方法及装置与流程  >  正文

一种基于Flink自适应窗口的事件时间处理方法及装置与流程

  • 国知局
  • 2024-10-15 09:40:44

本发明涉及通信领域,尤其是一种基于flink自适应窗口的事件时间处理方法及装置。

背景技术:

1、现有的技术方法是使用固定的滚动窗口的方式,存在的问题就是在流量不均匀的情况下,比如流量高峰,流量可能是低谷(凌晨时间段)的几十倍,此时使用固定的滚动窗口的情况下会导致窗口内积压的数据量过大,不仅对内存有较大的压力,且计算的耗时比较久,导致数据积压在flink窗口计算之前,从而出现数据的反压,计算结果由此会产生较大的偏差,严重的时候还会导致内存耗尽,服务假死等情况。

2、使用flink实时流处理网络流量数据的过程中,由于网络流量数据的忽大忽小,对于flink窗口计算的性能存在较大的影响,而flink的性能问题直接导致了其反压,最终造成了计算结果不准确和计算滞后的不良后果。

技术实现思路

1、为解决现有技术存在的问题,本发明提供一种基于flink自适应窗口的事件时间处理方法及装置,根据实时的流量大小动态的去调整窗口的大小,避免不必要的资源浪费,从而达到flink计算耗时的动态平衡,保证系统的稳定运行。

2、为实现上述目的,本发明采用下述技术方案:

3、在本发明一实施例中,提出了一种基于flink自适应窗口的事件时间处理方法,该方法包括:

4、s01、采用kafka作为实时流计算引擎的数据源,并以不同速率模拟网络流量往kafka中生产netflow数据;

5、s02、定义自适应窗口的调整规则,设置flink的fps处理阈值,定义最大窗口长度和最小窗口长度,fps大于阈值则缩小窗口,而fps小于阈值则增大窗口;

6、进一步地,所述窗口为滚动时间窗口。

7、s03、构建flink处理流程,建立输入、窗口、处理、输出模块,初始窗口大小为最大窗口大小;

8、s04、建立自适应时间窗口触发器实现类dynamicwindowsizetri gger,继承trigger类并重写onelement和onprocessingtime方法,所述onelement方法逻辑为监听窗口事件的变化,及时调整窗口的大小,所述onprocessingtime方法逻辑为动态更新滚动窗口;

9、进一步地,所述onelement方法是在每次有事件进入滚动时间窗口的触发,即每一条netflow数据进入滚动时间窗口都会触发该方法。

10、进一步地,所述s04包括:

11、s041、自定义实现一个触发器,实现触发器接口的方法,并监听窗口事件的进入;

12、s042、对单位时间内进入窗口的数据进行计数;

13、s043、累计一定时间段内的事件数量,并与时间间隔相除得到单位时间的事件数量即fps;

14、s044、将fps的数值与定义的处理阈值进行比较,如果大于阈值,则适当调小窗口,如果小于阈值则适当调大窗口,来保证flink在单位时间内处理事件的数量,让业务平稳运行。

15、s05、启动flink程序,以s01中所述的不同的速率向kafka中生产数据,观察窗口输出间隔的变化。

16、进一步地,所述s05中窗口fps小于设置的阈值,窗口时间为设置的最大值,则保持当前窗口执行,不进行调整。

17、在本发明一实施例中,还提出了一种基于flink自适应窗口的事件时间处理装置,该装置包括:

18、数据模拟模块,采用kafka作为实时流计算引擎的数据源,并以不同速率模拟网络流量往kafka中生产netflow数据;

19、自适应规则模块,定义自适应窗口的调整规则,设置flink的fps处理阈值,定义最大窗口长度和最小窗口长度,fps大于阈值则缩小窗口,而fps小于阈值则增大窗口;

20、flink处理流程构建模块,建立输入、窗口、处理、输出模块,初始窗口大小为最大窗口大小;

21、触发模块,建立自适应时间窗口触发器实现类dynamicwindowsi zetrigger,继承trigger类并重写onelement和onprocessingtime方法,所述onelement方法逻辑为监听窗口事件的变化,及时调整窗口的大小,所述onprocessingtime方法逻辑为动态更新滚动窗口;

22、flink程序启动模块,以数据模拟模块中所述的不同的速率向kafka中生产数据,观察窗口输出间隔的变化。

23、在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于flink自适应窗口的事件时间处理方法。

24、在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于flink自适应窗口的事件时间处理方法的计算机程序。

25、有益效果:

26、本发明一种基于flink自适应窗口的事件时间处理方法及装置,通过实时监测数据流的特性,如元素数量、数据分布等,动态调整窗口大小,使系统能够更灵活地适应不同的数据流模式,提高了处理性能;引入了事件时间处理的概念,根据数据流中的事件时间戳而非数据进入系统的时间戳进行处理,这一特性增强了系统对乱序事件的容忍性,提高了数据处理的准确性,尤其适用于需要考虑数据产生时间的场景。

技术特征:

1.一种基于flink自适应窗口的事件时间处理方法,其特征在于,该方法包括:

2.根据权利要求1所述的基于flink自适应窗口的事件时间处理方法,其特征在于,所述窗口为滚动时间窗口。

3.根据权利要求1所述的基于flink自适应窗口的事件时间处理方法,其特征在于,所述onelement方法的触发机制为:有事件进入滚动时间窗口触发,即每一条netflow数据进入滚动时间窗口都会触发该方法。

4.根据权利要求1所述的基于flink自适应窗口的事件时间处理方法,其特征在于,所述s04包括:

5.根据权利要求1所述的基于flink自适应窗口的事件时间处理方法,其特征在于,所述s05中窗口fps小于设置的阈值,窗口时间为设置的最大值,则保持当前窗口执行,不进行调整。

6.一种基于flink自适应窗口的事件时间处理装置,其特征在于,该装置包括:

7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5任一项所述方法。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-5任一项所述方法的计算机程序。

技术总结本发明公开一种基于Flink自适应窗口的事件时间处理方法及装置,其中方法包括:S01、采用kafka作为实时流计算引擎的数据源,并以不同速率模拟网络流量往kafka中生产netflow数据;S02、定义自适应窗口的调整规则,设置Flink的fps处理阈值,定义最大窗口长度和最小窗口长度;S03、构建Flink处理流程;S04、建立自适应时间窗口触发器实现类DynamicWindowSizeTrigger,继承Trigger类并重写onElement和onProcessingTime方法;S05、启动Flink程序,以S01中所述的不同的速率向kafka中生产数据,观察窗口输出间隔的变化。本发明一种基于Flink自适应窗口的事件时间处理方法及装置,根据实时的流量大小动态的去调整窗口的大小,避免不必要的资源浪费,从而达到Flink计算耗时的动态平衡,保证系统的稳定运行。技术研发人员:陈天瑶受保护的技术使用者:中盈优创资讯科技有限公司技术研发日:技术公布日:2024/10/10

本文地址:https://www.jishuxx.com/zhuanli/20241015/314984.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。