Flink时间和窗口

事件时间

到达时间

处理时间

水位线

 

 1.有序流

2. 无序流

 

 水位线离源越近越好

Flink 自带水位线

有序

WatermarkStrategy.<Event>forMonotonousTimestamps()

或者实现WatermarkStrategy接口

水位线生成+ 时间字段

乱序

WatermarkStrategy.<Event>forBoundedOutOfOrderness

水位线传递  接收分布式的最小的

窗口类型

为什么要用window

在flink中数据时源源不断的 ,但是某些聚合分析 我们需要的是对一定范围内的 可能是1000个数量或者1小时之内的数据分析 所以用了窗口

1.按驱动类型

2.窗口分配数据

滚动窗口(特殊的滑动窗口)  固定长

滑动窗口  滑动步长

会话窗口  窗口长度不确定  

 全局窗口

窗口API 

1.是否按键分区-keyby

(1) 按键分区窗口

stream.keyby().window()

(2) 非按键

stream.windowAll()

开窗

 窗口function

 1.增量聚合

(1)ReduceFunction

(2)AggregateFunction

注意滑动窗口的关闭时间

2.全窗口

windowfunction 和processWindowFunction

窗口延迟  和水位线延迟

.allowedLateness()

 

水位线延迟  控制的是窗口关闭

窗口延迟  控制的是数据的读取  多一个延迟窗口

窗口是左闭合 右开放

举个例子  水位线延迟2秒  窗口延迟1分钟

那么 当数据处于0-10秒时  窗口自动处理  当处于70秒时  此时实际的水位线68 虽然窗口是关闭了 但是 实际上延迟窗口还在 还是能处理     进行读取数据

当数据进行到72时  水位线为70 此时延迟窗口也不行了  ,数据归为延迟数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值