flink sql 窗口场景的问题

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

flink sql 窗口场景的问题

stevenchen01
 hi :
      我现在遇到有这样一个场景,我们需要实时去统计5分和30分的粒度,flink sql 窗口使用了处理时间滑动窗口方式
但是都是只有5分结束的时候才能把聚合结果输出,这个不满足我们需求,有没有方式可以直接实时输出结果,比如18:02 的统计+1+1 都能直接落在18:00-18:05的窗口上,并每次+1都能实时输出,而不是等到窗口结束才sink 到mysql .30分钟我同样
Reply | Threaded
Open this post in threaded view
|

回复:flink sql 窗口场景的问题

admin
hi
你是要每条数据都计算当前5分钟内的聚合值吗?如果是这样的话可以考虑使用over window


| |
Sun.Zhu
|
|
[hidden email]
|
签名由网易邮箱大师定制


在2020年06月3日 02:56,steven chen<[hidden email]> 写道:
hi :
我现在遇到有这样一个场景,我们需要实时去统计5分和30分的粒度,flink sql 窗口使用了处理时间滑动窗口方式
但是都是只有5分结束的时候才能把聚合结果输出,这个不满足我们需求,有没有方式可以直接实时输出结果,比如18:02 的统计+1+1 都能直接落在18:00-18:05的窗口上,并每次+1都能实时输出,而不是等到窗口结束才sink 到mysql .30分钟我同样
Reply | Threaded
Open this post in threaded view
|

Re: flink sql 窗口场景的问题

john
嗨,推荐你使用这个:窗口实用触发器 ContinuousEventTimeTrigger

> 2020年6月3日 下午10:29,Sun.Zhu <[hidden email]> 写道:
>
> hi
> 你是要每条数据都计算当前5分钟内的聚合值吗?如果是这样的话可以考虑使用over window
>
>
> | |
> Sun.Zhu
> |
> |
> [hidden email]
> |
> 签名由网易邮箱大师定制
>
>
> 在2020年06月3日 02:56,steven chen<[hidden email]> 写道:
> hi :
> 我现在遇到有这样一个场景,我们需要实时去统计5分和30分的粒度,flink sql 窗口使用了处理时间滑动窗口方式
> 但是都是只有5分结束的时候才能把聚合结果输出,这个不满足我们需求,有没有方式可以直接实时输出结果,比如18:02 的统计+1+1 都能直接落在18:00-18:05的窗口上,并每次+1都能实时输出,而不是等到窗口结束才sink 到mysql .30分钟我同样

Reply | Threaded
Open this post in threaded view
|

Re: flink sql 窗口场景的问题

Leonard Xu
In reply to this post by stevenchen01
Hi,

窗口输出可以加emit策略,在watermark未触发时提前输出window的中间结果,不过社区目前标注的是experimental的功能,生产环境中应谨慎使用。
table.exec.emit.early-fire.enabled
table.exec.emit.early-fire.delay
可以参考[1]。

Best
Leonard Xu

[1] https://github.com/apache/flink/blob/master/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/utils/WindowEmitStrategy.scala#L174 <https://github.com/apache/flink/blob/master/flink-table/flink-table-planner-blink/src/main/scala/org/apache/flink/table/planner/plan/utils/WindowEmitStrategy.scala#L174>