当前位置: 代码迷 >> 综合 >> Flink——window函数、时间语义、watermark 相关问答
  详细解决方案

Flink——window函数、时间语义、watermark 相关问答

热度:22   发布时间:2024-01-29 08:36:59.0
1、window类型有哪些?

(1) TimeWindow

  • Tumbling Window (滚动窗口)
  • Sliding Window (滑动窗口)
  • Session Window (会话窗口)
  • Global Window (全局窗口)

(2) countWindow
(3) 自定义window

2、window function 窗口函数有哪些?
  • window function 定义了要对窗口中收集的数据做到计算操作,

可分为两类:

  • 增量聚合函数(incremental aggregation functions)

    1. 每条数据到来就进行计算,保持一个简单的状态

    2. ReduceFunction, AggregateFunction

  • 全窗口函数(full window functions)

    1. 先把窗口所有数据收集起来,等到计算的时候会遍历所有数据

    2. ProcessWindowFunction

3、flink 的时间语义?
  • Event Time:事件创建的时间
  • Ingestion Time:数据进入Flink的时间
  • Processing Time:执行操作算子的本地系统时间,与机器相关
4、乱序数据有什么影响?
  • 当Flink 以Event Time模式处理数据流时,它会根据数据里的时间戳来处理基于时间的算子
  • 由于网络、分布式等原因,会导致乱序数据的产生 乱序数据会让窗口计算不准确
5、什么是watermark?
  • Watermark是一种衡量Event Time进展的机制,可以设定延迟触发
  • Watermark是用于处理乱序事件的,而正确的处理乱序事件,通常用Watermark机制结合window来实现;
  • 数据流中的Watermark用于表示timestamp小于Watermark的数据,都已经到达了,因此,window的执行也是由Watermark触发的。
  • watermark用来让程序自己平衡延迟和结果正确性
6、watermark的特点?
  • watermark是一条特殊的数据记录
  • watermark必须单调递增,以确保任务的事件时间时钟在向前推进,而不是在后退
  • watermark与数据的时间戳相关
  相关解决方案