自定义Flink时间窗口

初学Flink,仅供参考,欢迎指正。

需求说明

Flink提供的常用简单窗口有:TumblingEventTimeWindows,TumblingProcessingTimeWindows,SlidingEventTimeWindows,SlidingProcessingTimeWindows等。对于初学者来说,这些窗口并不能满足特定的需求,例如:当接收到活动告警后,延迟一分钟,这一分钟内如果有对应清除告警,则当前告警不做通知。此时,我需要的是一个以活动告警的发生时间为起始时间,长度一分钟的窗口,而以上窗口无法满足。

  1. 触发器和驱逐器 触发器及驱逐器,本文不再赘述,采用默认的时间触发和驱逐;
  2. 窗口指派 通过重写WindowAssigner的assignWindows方法,可以定义需要的窗口;

自定义窗口

我测试使用的一个Demo, 代码如下.

class TestEventTimeWindows extends WindowAssigner<Object, TimeWindow> {
   

    private static final long serialVersionUID = 1L;
    private final long size;

    protected TestEventTimeWindows(long size) {
   
        if (size > 0L) {
   
            this.size = size;
        } else {
   
            throw new IllegalArgumentException("TestEventTimeWindows parameters must satisfy 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值