Flink 之 EventTime 划分时间窗口(滑动窗口)

本文详细探讨了Flink中基于EventTime的滑动窗口应用,包括非键控(Non-keyed Window)和键控(keyed Window)两种方式,分别阐述了它们的实现原理和底层调用的方法。
摘要由CSDN通过智能技术生成

不分组,按照EventTime划分 滑动窗口
*

Non-keyed Window,
底层调用的是windowAll

public class EventTimeSlidingWindowAllDemo1 {
   
    public static void main(String[] args) throws Exception {
   
      //  前关后闭   0 -- 4999  5000- 9999
        StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(new Configuration());

        // 老版本必须要设置时间标准 (1.20 之前的)
        env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);
        DataStreamSource<String> lines = env.socketTextStream("linux01", 8888);
       // flink里面的时间都精确到毫秒
       //  时间提取器 BoundedOutOfOrdernessTimestampExtractor : 允许时间乱序,并且可以指定窗口延时
       // WaterMark (水位线,可以让窗口延迟触发的一种机制)
       // 一个窗口中的一个分区的水位线 = 当前窗口当前分区最大的 EventTime - 延迟时间     Time.seconds(0)
        SingleOutputStreamOperator<String> linesWithWaterMark = lines.assignTimestampsAndWatermarks(new BoundedOutOfOrdernessTimestampExtractor<String>(Time.seconds(2)) {
   


            @Override
            public long extractTimestamp(String s) {
   
                return Long.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值