当前位置: 代码网 > it编程>数据库>MsSqlserver > Flink实现准确和高效流处理的关键问题

Flink实现准确和高效流处理的关键问题

2024年07月28日 MsSqlserver 我要评论
同时到达Flink的事件时间为900ms和1000ms,允许的乱序时间为100ms,如果不减去1ms,那么900ms的事件就会被任务是迟到数据,这就是边界问题。在实际应用中,事件时间戳可能会有微小的波动或不确定性。减去1ms提供了一个小的缓冲,以便更好地处理这些不确定性,避免因时间戳的微小误差而影响处理逻辑。比如同时到达Flink的事件时间为a, b, c。处理乱序和迟到数据是实现准确和高效流处理的关键。事件到达Flink的时间小于WaterMark。乱序时间: 容忍的最长迟到时间。设置周期性更新的时间。

时间相关:
时间相关

watermark 水位线

  • 水位线是插入到数据流中的一个标记,可以认为是一个特殊的数据。
  • 水位线主要的内容是一个时间戳,用来表示当前事件时间的进展
  • 水位线是基于数据的时间戳生成的。
  • 水位线的时间戳必须单调递增,以确保任务的事件时间时钟一直向前推进,进展
  • 水位线可以通过设置延迟,来保证正确处理乱序数据。
  • 一个水位线 watermark(t),表示在当前流中事件时间已经达到了时间戳 t,这代表 t之前的所有数据都到齐了,之后流中不会出现时间戳 t‘ ≤ t 的数据。

watermark 多并行度下的生成、传递

生成:
  • 间歇性更新(punctuated watermarks):
    遇到新事件后更新
  • 周期性更新
    定期更新

设置周期性更新的时间

// 设置watermar
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com