首页 > 其他分享 >flink事件时间的水印延迟不会导致延迟数据在上一个窗口内

flink事件时间的水印延迟不会导致延迟数据在上一个窗口内

时间:2023-12-10 20:25:14浏览次数:34  
标签:end TimeWindow flink 水印 window env out 延迟

设窗口为5,延迟为3。
假如数据为:0 1 2 5 6 7 3 4 8

则两个窗口为 :
window = TimeWindow{start=0, end=5}
0
1
2
3
4
window = TimeWindow{start=5, end=10}
5
6
7
8

即:5 6 7 的数据不会包含在 TimeWindow{start=0, end=5} 里。

验证程序:

public class FlinkWindowExample {

    public static void main(String[] args) throws Exception {

        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
        DataStreamSource<String> ds = env.socketTextStream("worker1", 7777);

        SingleOutputStreamOperator<Integer> watermarks = ds
                .map(Integer::parseInt)
                .assignTimestampsAndWatermarks(WatermarkStrategy
                        .<Integer>forBoundedOutOfOrderness(Duration.ofMillis(3))
                        .withTimestampAssigner((event, timestamp) -> event));

        SingleOutputStreamOperator<Integer> windowedStream = watermarks
                .windowAll(TumblingEventTimeWindows.of(Time.milliseconds(5)))
                .apply(new AllWindowFunction<Integer, Integer, TimeWindow>() {
                    @Override
                    public void apply(TimeWindow window, Iterable<Integer> values, Collector<Integer> out) throws Exception {
                        System.out.println("window = " + window);
                        for (Integer value : values) {
                            out.collect(value);
                        }
                    }
                });

        windowedStream.print();

        env.execute("Flink Window Example");
    }
}

标签:end,TimeWindow,flink,水印,window,env,out,延迟
From: https://www.cnblogs.com/aminor/p/17893159.html

相关文章

  • flinkcdc连接oracle的报错汇总
    报错一:原因分析:字面原因,找不到 org.apache.flink.table.api.ValidationException类。解决办法:根据类名可知,应该 org.apache.flink.table.api包下面的,然后去阿里云maven仓库搜索,添加如下依赖即可 报错二:原因分析:ORA-16331:容器"ORCLPDB1"未打开。解决办法:使用命令打......
  • 博客园作为图床,上传图片自动添加图片水印
    专属于博客园的教程。markdown上传图片,添加图片水印,再上传到博客园图床。前言图床有防盗链什么的,处理起来实在是麻烦。既然博客园支持图床,我现在只在博客园写,那就捣鼓了一下。今天是通义千问工程师。菜鸡啥也不会。参考教程首先应参考教程配置,保证博客园图床正确,再对python......
  • 博客上传图片,自动添加水印的办法
     效果使用PicList,在typora里将图片上传图床时,自动添加水印。右下角有水印图片。PicList(http替换成了hxxp,保险起见。)大佬网站hxxps://piclist.cnGithub地址hxxps://github.com/Kuingsmile/PicListredme.mdhxxps://github.com/Kuingsmile/PicList/blob/dev/README_cn.......
  • 博客上传图片,自动添加水印的办法
    博客上传图片,自动添加水印的办法效果使用PicList,在typora里将图片上传图床时,自动添加水印。右下角有水印图片。PicListGithub地址https://github.com/Kuingsmile/PicListreadmehttps://github.com/Kuingsmile/PicList/blob/dev/README_cn.md时间晚了,不多做介绍了。和P......
  • OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件
    你好,我是Kagol。非常高兴跟大家宣布,2023年11月30日,OpenTinyVue发布了v3.12.0......
  • kafka数据入paimon(flink-sql)
    1.创建CATALOGCREATECATALOGpaimon_hiveWITH('type'='paimon','metastore'='hive','uri'='thrift://hadoopm111:9083','warehouse'='hdfs:///apps/hive/paimon');2.创建表接ka......
  • Flink State 状态原理解析
    一、FlinkState概念State用于记录Flink应用在运行过程中,算子的中间计算结果或者元数据信息。运行中的Flink应用如果需要上次计算结果进行处理的,则需要使用状态存储中间计算结果。如Join、窗口聚合场景。Flink应用运行中会保存状态信息到State对象实例中,State对象实......
  • 八、延迟队列
    一、延迟队列的概念二、延迟队列使用场景三、RabbitMQ中的TTL1、消息设置TTL2、队列设置TTL3、两者的区别四、整合springboot1、创建项目2、添加依赖3、修改配置文件4、添加Swagger配置类五、队列TTL1、代码架构图2、配置文件类代码3、消息生......
  • Vue3 实现网页水印
    一些公司和组织出于系统文件或信息安全保密的需要,需要在系统网页上增加带有个人标识的水印。首先我们来看这样一个水印功能的实现思路,通常是在我们原有的网页上附上一个DIV层,将它设置绝对定位铺满整个窗口,然后z-index值尽量往大了设,保证让水印层处于当前网页所有元素的上面,又不......
  • RabbitMQ 延迟消息的实现——延迟消息插件
     步骤:1.把资料中的rabbitmq_delayed_message_exchange-3.9.0.ez 复制到docker的mq容器的插件目录2.执行命令 dockerexec-itmqrabbitmq-pluginsenablerabbitmq_delayed_message_exchange 在Java代码中配置延迟交换机:(图的左边是注解方式,右下角是@Bean的方式) 比......