首页 笔记 图片 查字 
所属分类:Flink
浏览:67
内容:

水位线生成策略:
DataStream.assignTimestampsAndWatermarks(WatermarkStrategy);
参数类型 WatermarkStrategy 就是水位线生成策略的枚举类:
TimestampAssigner:从数据流中的事件数据的某个字段中提取时间戳,作为水位线的时间戳。
WatermarkGenerator:主要负责按照既定的方式,基于时间戳生成水位线。
    主要有两个方法:onEvent()和 onPeriodicEmit()。
    onEvent:每个事件数据到来都会调用的方法。它的参数有当前事件、时间戳,以及允许发出水位线的一个 WatermarkOutput,可以基于事件做各种操作。
    onPeriodicEmit:周期性调用的方法,默认200ms,可以由 WatermarkOutput 发出水位线。周期时间为处理时间,可以调用.setAutoWatermarkInterval()方法来设置,默认为200ms。

自定义 WatermarkGenerator:
Watermark 生成方式有两种:周期性生成,标记生成。
周期性生成:
自定义周期性 Watermark 生成器:
周期性调用 onPeriodicEmit() 方法,周期时间间隔(每 n 毫秒)可以通过 ExecutionConfig.setAutoWatermarkInterval(200) 指定。

标记生成:
自定义标记 Watermark 生成器:
观察流事件数据并在获取到带有 watermark 信息的特殊事件元素时发出 watermark。

自定义水位线生成策略:
周期性水位线生成器(Periodic Generator)
断点式水位线生成器(Punctuated Generator)