You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by zwoi <31...@qq.com.INVALID> on 2021/08/03 07:15:37 UTC

eventTime语义一些设备的数据总是迟到被丢弃

hi
&nbsp; &nbsp; &nbsp; &nbsp;我的设备数据是这样的, 设备id id(设备的唯一标识), 时间戳 time,要处理的指标 value,
&nbsp; &nbsp; &nbsp; &nbsp;在eventTime语义下watermark 生成方式为new Watermark(Math.max(time, currentMaxTimestamp) -&nbsp;maxOutofOrderness),
&nbsp; &nbsp; &nbsp; &nbsp;我需要对设备数据 做 keyby(id) 分组后再计算,但总有几个设备数据迟到,导致这几个设备数据就一直计算不到,请问有什么解决办法吗?&nbsp;

Re: eventTime语义一些设备的数据总是迟到被丢弃

Posted by Caizhi Weng <ts...@gmail.com>.
Hi!

keyby 之后是做窗口聚合吗?如果是的话,SQL API 有一个配置项 table.exec.emit.late-fire.enabled
和 table.exec.emit.late-fire.delay 可以处理迟到数据。当这个功能 enabled 之后,若 delay = 0
则每来一条迟到数据就会输出一次修正的结果,若 delay > 0 则是窗口结束后每隔 delay 的时间输出一次。能接受的迟到的时长和 state
ttl 是一样的。详细说明见 WindowEmitStrategy 这个类。

zwoi <31...@qq.com.invalid> 于2021年8月3日周二 下午3:15写道:

> hi
> &nbsp; &nbsp; &nbsp; &nbsp;我的设备数据是这样的, 设备id id(设备的唯一标识), 时间戳 time,要处理的指标
> value,
> &nbsp; &nbsp; &nbsp; &nbsp;在eventTime语义下watermark 生成方式为new
> Watermark(Math.max(time, currentMaxTimestamp) -&nbsp;maxOutofOrderness),
> &nbsp; &nbsp; &nbsp; &nbsp;我需要对设备数据 做 keyby(id)
> 分组后再计算,但总有几个设备数据迟到,导致这几个设备数据就一直计算不到,请问有什么解决办法吗?&nbsp;

Re:eventTime语义一些设备的数据总是迟到被丢弃

Posted by Ye Chen <ch...@163.com>.
你好,
设备数据迟到多久?maxOutofOrderness设置一个合适的值,让迟到的数据到达窗口后再计算。



best regards







在 2021-08-03 15:15:37,"zwoi" <31...@qq.com.INVALID> 写道:
>hi
>&nbsp; &nbsp; &nbsp; &nbsp;我的设备数据是这样的, 设备id id(设备的唯一标识), 时间戳 time,要处理的指标 value,
>&nbsp; &nbsp; &nbsp; &nbsp;在eventTime语义下watermark 生成方式为new Watermark(Math.max(time, currentMaxTimestamp) -&nbsp;maxOutofOrderness),
>&nbsp; &nbsp; &nbsp; &nbsp;我需要对设备数据 做 keyby(id) 分组后再计算,但总有几个设备数据迟到,导致这几个设备数据就一直计算不到,请问有什么解决办法吗?&nbsp;