这是一个已知的问题。社区已经有相关issue[1] 在跟进修复了,感兴趣的话可以了解下~

[1] https://issues.apache.org/jira/browse/FLINK-18934

jie mei <[email protected]> 于2021年4月12日周一 下午2:59写道:

> 此外,在事件时间,场景下,如果一个 Stream A 有消息, 另一个 Stream B 没有消息进行 UNION ALL。那么 Stream B
> 的消息永远是一个 Long.MIN_VALUE, 进行水印对其的时候,UNION ALL 后的水印取所有 CHANNEL 的最小水印,也就是
> Long.MIN_VALUE, 这就导致分组滚动窗口一致得不到计算。
>
> jie mei <[email protected]> 于2021年4月12日周一 上午11:24写道:
>
> > 问题已经解决,因为我的 StreamEnv 默认设置为事件时间。去掉就可以了,这导致了watermark没有生成。
> >
> > jie mei <[email protected]> 于2021年4月12日周一 上午1:49写道:
> >
> >> 大家好,我有一个 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`
> >>
> >>
> >>
> >> *Best Regards*
> >> *Jeremy Mei*
> >>
> >
> >
> > --
> >
> > *Best Regards*
> > *Jeremy Mei*
> >
>
>
> --
>
> *Best Regards*
> *Jeremy Mei*
>


-- 

Best,
Benchao Li

回复