开发者社区> 问答> 正文

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

       我的设备数据是这样的, 设备id id(设备的唯一标识), 时间戳 time,要处理的指标 value,

       在eventTime语义下watermark 生成方式为new Watermark(Math.max(time, currentMaxTimestamp) - maxOutofOrderness),

       我需要对设备数据 做 keyby(id) 分组后再计算,但总有几个设备数据迟到,导致这几个设备数据就一直计算不到,请问有什么解决办法吗? *来自志愿者整理的flink邮件归档

展开
收起
彗星halation 2021-12-02 16:45:28 401 0
1 条回答
写回答
取消 提交回答
  • keyby 之后是做窗口聚合吗?如果是的话,SQL API 有一个配置项 table.exec.emit.late-fire.enabled

    和 table.exec.emit.late-fire.delay 可以处理迟到数据。当这个功能 enabled 之后,若 delay = 0

    则每来一条迟到数据就会输出一次修正的结果,若 delay > 0 则是窗口结束后每隔 delay 的时间输出一次。能接受的迟到的时长和 state

    ttl 是一样的。详细说明见 WindowEmitStrategy 这个类。 *来自志愿者整理的FLINK邮件归档

    2021-12-02 17:07:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载