文章目录

  • 1.概述
  • 2. 那么watermark和lateness区别在哪里呢?

1.概述

60-300-022-使用-延迟数据-Flink中allowedLateness详细介绍

Flink对于乱序数据怎么办呢?

方案就是 watermark。

watermark,直译为水位线,就是元素可以迟到多久才去关闭窗口。例如一个窗口是[0-5),,watermark允许最多延迟3s,那么一个6s的事件,它的watermark就应该是3,一个7s的watermark是4,这两个都落在窗口中

在flink流处理的Source中或者处理window之前,都可以通过调用assignTimestampsAndWatermarks来指定如何从消息中获得当前事件时间和获得当前事件的watermark。可以直接扩展几个预定义的类实现。默认watermark是0,也即watermark时间等于事件时间。watermark不是对每一条数据都会生成的,默认配置每200ms生成一次,可以通过env.getConfig().setAutoWatermarkInterval()配置产生间隔。

此外,flink还允许在流处理window后设定allow lateness来指定一个最晚的时间,没有超过这个最晚时间,window还是未销毁,可以触发计算。(默认的lateness也是0)

2. 那么watermark和lateness区别在哪里呢?

这个主要是配合trigger的行为,默认的EventTimeTrigger,之前的元素是不触发window计算的,在watermark达到window end的时候,会触发一次window计算;之后的每一个迟到的元素进入窗口,都会触发一次window计算。所以watermark是保证大部分元素的时间落在windowend+watermark的区间内,减少window计算的触发次数。如果是其他trigger方式,watermark的意义不大。窗口触发计算时,会将窗口数据传给后续的处理过程处理。

很多地方把概念会搞混:

  1. 事件时间<窗口end+watermark大小,元素落在窗口内
  2. flink返回的watermark时间=事件时间-watermark大小
  3. watermark时间<窗口end,元素落在窗口内

如上所述,EventTimeTrigger等一些默认的trigger,在watermark时间达到window end之前是不会触发的,如果事件有一段时间暂停了没有新元素,或者窗口期很长,则导致一直没有触发计算获得结果,延迟比较大,这时候可以使用ContinuousProcessingTimeTrigger。

对于延迟的数据,也可以定时可以把它揪出来处理。通过对WindowedStream设置sideOutputLateData,之后从WindowedStream处理的结果SingleOutputStreamOperator的getSideOutput(OutputTag)方法得到被丢弃的数据(这个是需要定时任务去处理)

只有所有的线程的最小watermark都满足watermark 时间 >= window_end_time时,触发历史窗才会执行。

【Flink】Flink allowedLateness 与 watermark 的区别相关推荐

  1. 关于Flink中time与watermark的理解

    关于Flink中time与watermark的理解 空间和时间只是我们人类思考的模式,并不是我们赖以生存的条件. --爱因斯坦 时间属性是流处理中最重要的一个方面,是流处理系统的基石之一:流计算是一种 ...

  2. 大数据计算引擎之Flink Flink CEP复杂事件编程

    原文地址:大数据计算引擎之Flink Flink CEP复杂事件编程 复杂事件编程(CEP)是一种基于流处理的技术,将系统数据看作不同类型的事件,通过分析事件之间的关系,建立不同的时事件系序列库,并利 ...

  3. 凌波微步Flink——Flink的技术逻辑与编程步骤剖析

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/95459606 本文出自[我是干勾鱼的博客] Ingredients: Java: ...

  4. 凌波微步Flink——Flink API中的一些基础概念

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/95355619 本文出自[我是干勾鱼的博客] Ingredients: Java: ...

  5. 60-300-022-使用-延迟数据-Flink中allowedLateness详细介绍

    1.视界 2.概述 ​ 当指定一个允许延迟大于0时,window以及window中的内容将会继续保持即使水印已经达到了window的最后时间.在这种情况下,当一个延迟事件到来而未丢弃时,它可能会触发w ...

  6. Flink中allowedLateness介绍与测试

    默认情况下,当watermark通过end-of-window之后,再有之前的数据到达时,这些数据会被删除. 为了避免有些迟到的数据被删除,因此产生了allowedLateness的概念. 简单来讲, ...

  7. Flink Pre-defined Timestamp Extractors / Watermark Emitters(预定义的时间戳提取/水位线发射器)...

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/event_timestamp_extractors.html 根据官网 ...

  8. flink 自定义 窗口_【Flink 精选】阐述 Watermark 机制,剖析 Watermark 的产生和传递流程...

    本文阐述 Flink 的事件时间和 Watermark 机制,剖析 Watermark 产生和传递的流程. 1 Event time 和 Watermark 的关系 1.1 Event time 和 ...

  9. flink实战--水印(watermark)终极总结

    扫一扫加入大数据公众号和技术交流群,了解更多大数据技术,还有免费资料等你哦 水印(waterMark) 了解水印前需要了解事件时间(eventTime)和处理时间(processTime)的概念,参考 ...

最新文章

  1. GPT-3:人工智能的新突破
  2. thinkphp伪静态(url重写)
  3. 郎咸平:诸葛亮是一名优秀的企业家吗?
  4. 机器学习笔记:VAE
  5. buck电路matlab,buck变换器介绍_buck变换器matlab仿真
  6. 1.3 xss原理分析与剖析(4)
  7. Visual Studio 2022 Preview 3和2019 16.11发布
  8. .NET Core 小程序开发零基础系列(1)——开发者启用并牵手成功
  9. 【Python-3.5】变量命名规范
  10. 跳跃回溯____寻找最长平台
  11. 博客园鼠标点击烟花特效
  12. L--弹出层js实例
  13. 威富通 全付通 中信 支付 PHP 一些问题总结(签名机制,sign:This field is required,no start line ,回调机制,漏单)
  14. Mysql 1864 主从错误解决方法
  15. Caused by: org.dom4j.DocumentException异常信息记录
  16. 适用于***测试不同阶段的工具收集整理
  17. 全基因组尺度的增强子--靶基因映射图谱解码非编码突变
  18. 如何快速有效的学习 Python ?阿里高级开发工程师给出建议
  19. gym 100543 CERC 2014 L Outer space invaders
  20. 计算机版本歌曲,酷我音乐2017旧版大全

热门文章

  1. 昨天晚上,我在按摩店睡觉,一觉醒来,我的车不是我的了!
  2. Surface Book 3现身3DMark:10nm架构升级
  3. 骁龙865+65W闪充!realme 真我X50 Pro 5G正式全球发布
  4. 5G手机产业链将带动多少A股上市公司?
  5. 腾讯联手国家信息中心启动共筑疫情“数据长城”计划
  6. 换5G手机别着急!雷军:再等等,我们不赚钱
  7. 最便宜的855旗舰了,可惜是它
  8. 金融诈骗中男性更易受骗:损失数额更大
  9. 用筷子吃汉堡?汉堡王新广告被指种族歧视 网友:想成为下一个DG?
  10. 网红店主质疑拼多多销售假冒货品 官方:均为正品 再遭恶意污蔑