Flink如何实现一个某种数据缺失半小时触发报警的监控

问题定义:半小时监控可以定义为整间隔时间(如9:00-9:30),也可以定义为某条数据之后的半小时

提示: 若采用processingtime,我们可以在env中设置自动定时产生watermark(动动你勤劳的小手google下);若采用eventtime,我们则需要自定义timestamp和watermark(这个网上一大堆)。

1.处理这类问题,提供以下两种方案:

    1.1 采用window(窗口的划分依赖于自然时间,用来处理整间隔时间)

       window的触发需要依赖于数据,而watermark则是窗口是否执行计算的依赖。但是我们只有一种数据来源,若数据丢失,会造成没有窗口,这样我们写的窗口内数据不存在触发报警的逻辑就不可能执行,在这种情况下,我们需要一个定时的数据源帮助定时触发窗口(这个很简单,我其他文章里写了一个很傻的)。

EventTime

     另外补充一句,如果有特殊需要,比如说在监控中间来了某种数据需要提前终止窗口计算,可以在窗口后重写trigger

    1.2 采用keyedstream(这个可以用来实现某条数据后半小时没有数据报警,不想打字了,直接上代码吧,我写的很基础)

EventTime

以上内容为本人原创文章,转载请注明出处

你可能感兴趣的:(Flink如何实现一个某种数据缺失半小时触发报警的监控)