开发者社区> 问答> 正文

分组滚动窗口 无法触发计算,由于 watermark 没有被生成,或者被计算。是我没设置对吗?

大家好,我有一个 Flink 程序, 使用事件时间做分组窗口计算,但是无法触发窗口计算。我Debug到 WindowOperator, 下, 发现 WindowOperator 的 TriggerContext中的当前水印一直是一个负数, StreamTaskNetworkInput 中的 processElement 方法没有接受到 watermark 消息, recordOrMark.isWatermark() == false。

我自己的怀疑难道是事件时间每设置对? 但是对比了文档,应该是可以的。下面是我的 DDL

create table input_table ( dim varchar, server_time bigint, event_time AS TO_TIMESTAMP(FROM_UNIXTIME(server_time / 1000, 'yyyy-MM-dd HH:mm:ss')), WATERMARK FOR event_time AS event_time ) select TUMBLE_START(event_time, INTERVAL '1' SECOND) AS log_time, dim, count(1), FROM input_table GROUP BY TUMBLE(event_time, INTERVAL '1' SECOND),dim*来自志愿者整理的flink

展开
收起
雪哥哥 2021-12-05 12:09:07 651 0
1 条回答
写回答
取消 提交回答
  • 因为你的StreamEnv 默认设置为事件时间。去掉就可以了,这导致了watermark没有生成。*来自志愿者整理的flink

    2021-12-05 17:36:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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