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 邵志鹏 <bo...@163.com> on 2019/04/24 08:46:39 UTC

Flink Stream SQL group by TUMBLE(rowtime,)

大家好,问题求助:


事件时间使用EventTime,默认Checkpoint【没有offset从earliest开始,有则从offset开始】。


assignTimestampsAndWatermarks,1、不使用Watermark,即默认eventtime时间戳;2、使用官方max取最大值;两种情况问题基本相同:
问题描述:
比如,发送40条数据,窗口消费33条。另外7条,需要继续发送新的数据,才会被消费掉,即便重启程序-也要发送新的数据,才会消费上次"未及时"消费的数据,而不是自动从上一次的offset+1开始。


SQL:
SELECT astyle, TUMBLE_START(rowtime, INTERVAL '10' SECOND) time_start, TUMBLE_END(rowtime, INTERVAL '10' SECOND) time_end, SUM(energy) AS sum_energy, CAST(COUNT(aid) AS INT) AS cnt, CAST(AVG(age) AS INT) AS avg_age FROM t_pojo GROUP BY TUMBLE(rowtime, INTERVAL '10' SECOND), astyle


assignTimestampsAndWatermarks,3、使用System.currentTimeMillis()作为Watermark,消息消费是及时了,但是又有新的问题:
即程序启动后,相当于从latest开始消费消息,不能消费未消费过的offset【即使换掉group.id消费者组也是如此】。


https://stackoverflow.com/questions/55499764/how-to-let-flink-flush-last-line-to-sink-when-producerkafka-does-not-produce-n
https://stackoverflow.com/questions/55779711/why-not-on-time-when-i-consumed-kafka-message-using-flink-streaming-sql-group-by


另外,UTC时区的问题,目前是extractTimestamp的时候,+28800000。很想知道大神们的解决方法是什么,或者就是保存UTC时间,然后结果数据对外的时候再做处理?




Re: Flink Stream SQL group by TUMBLE(rowtime,)

Posted by liu_mingzhang <li...@163.com>.
您好,请问         【没有offset从earliest开始,有则从offset开始】这个是怎么实现的啊


On 4/24/2019 16:46,邵志鹏<bo...@163.com> wrote:
大家好,问题求助:


事件时间使用EventTime,默认Checkpoint【没有offset从earliest开始,有则从offset开始】。


assignTimestampsAndWatermarks,1、不使用Watermark,即默认eventtime时间戳;2、使用官方max取最大值;两种情况问题基本相同:
问题描述:
比如,发送40条数据,窗口消费33条。另外7条,需要继续发送新的数据,才会被消费掉,即便重启程序-也要发送新的数据,才会消费上次"未及时"消费的数据,而不是自动从上一次的offset+1开始。


SQL:
SELECT astyle, TUMBLE_START(rowtime, INTERVAL '10' SECOND) time_start, TUMBLE_END(rowtime, INTERVAL '10' SECOND) time_end, SUM(energy) AS sum_energy, CAST(COUNT(aid) AS INT) AS cnt, CAST(AVG(age) AS INT) AS avg_age FROM t_pojo GROUP BY TUMBLE(rowtime, INTERVAL '10' SECOND), astyle


assignTimestampsAndWatermarks,3、使用System.currentTimeMillis()作为Watermark,消息消费是及时了,但是又有新的问题:
即程序启动后,相当于从latest开始消费消息,不能消费未消费过的offset【即使换掉group.id消费者组也是如此】。


https://stackoverflow.com/questions/55499764/how-to-let-flink-flush-last-line-to-sink-when-producerkafka-does-not-produce-n
https://stackoverflow.com/questions/55779711/why-not-on-time-when-i-consumed-kafka-message-using-flink-streaming-sql-group-by


另外,UTC时区的问题,目前是extractTimestamp的时候,+28800000。很想知道大神们的解决方法是什么,或者就是保存UTC时间,然后结果数据对外的时候再做处理?