FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

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

FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

nobleyd
如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
Reply | Threaded
Open this post in threaded view
|

Re:FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

Michael Ran
滑动窗口
在 2020-09-27 13:25:37,"赵一旦" <[hidden email]> 写道:
>如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

nobleyd
不是滑动窗口哈。是滚动窗口,每10秒触发一次输出。滑动窗口的化逻辑就变了。

Michael Ran <[hidden email]> 于2020年9月27日周日 下午2:39写道:

> 滑动窗口
> 在 2020-09-27 13:25:37,"赵一旦" <[hidden email]> 写道:
> >如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
>
Reply | Threaded
Open this post in threaded view
|

Re:Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

Michael Ran
额,不是5分钟窗口,10秒一个步长往前滑动吗? <br/>我以为滚动是5分钟窗口 5分钟一输出呢。。
在 2020-09-27 14:43:57,"赵一旦" <[hidden email]> 写道:
>不是滑动窗口哈。是滚动窗口,每10秒触发一次输出。滑动窗口的化逻辑就变了。
>
>Michael Ran <[hidden email]> 于2020年9月27日周日 下午2:39写道:
>
>> 滑动窗口
>> 在 2020-09-27 13:25:37,"赵一旦" <[hidden email]> 写道:
>> >如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
>>
Reply | Threaded
Open this post in threaded view
|

Re: Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

Benchao Li-2
可以的。有一个实验性质的Fast Emit功能,可以通过如下参数开启:
table.exec.emit.early-fire.enabled = true
table.exec.emit.early-fire.delay = 10s

Michael Ran <[hidden email]> 于2020年9月27日周日 下午2:49写道:

> 额,不是5分钟窗口,10秒一个步长往前滑动吗? <br/>我以为滚动是5分钟窗口 5分钟一输出呢。。
> 在 2020-09-27 14:43:57,"赵一旦" <[hidden email]> 写道:
> >不是滑动窗口哈。是滚动窗口,每10秒触发一次输出。滑动窗口的化逻辑就变了。
> >
> >Michael Ran <[hidden email]> 于2020年9月27日周日 下午2:39写道:
> >
> >> 滑动窗口
> >> 在 2020-09-27 13:25:37,"赵一旦" <[hidden email]> 写道:
> >> >如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
> >>
>


--

Best,
Benchao Li
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

silence-2
In reply to this post by nobleyd
也可以通过普通的非窗口聚合进行实现吧,minibatch设大点



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

nobleyd
Benchao Li那个我会考虑下,主要是了解下,从datastream转过来,想结合业务看看有多少任务是sql也能实现的。
silence这个不清楚你表达啥意思,统计需求是五分钟粒度的,不通过窗口咋搞。
难道是指基于ts人工计算所属窗口w,然后group by w, 其他key  这样嘛。



silence <[hidden email]> 于2020年9月27日周日 下午5:37写道:

> 也可以通过普通的非窗口聚合进行实现吧,minibatch设大点
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

liujiangang
提供另外一种思路:内层是10s的翻滚窗口,外层接一个按5分钟为key的group by。为防止状态过大,可以设置ttl。简单demo如下:
SELECT *
FROM (SELECT TUMBLE_START(proctime, INTERVAL '10' SECOND) AS st, *
             FROM *
             GROUP BY TUMBLE(proctime, INTERVAL '10' SECOND)
           )
GROUP BY st / (5 * 60 * 1000)

赵一旦 <[hidden email]> 于2020年9月27日周日 下午5:45写道:

> Benchao Li那个我会考虑下,主要是了解下,从datastream转过来,想结合业务看看有多少任务是sql也能实现的。
> silence这个不清楚你表达啥意思,统计需求是五分钟粒度的,不通过窗口咋搞。
> 难道是指基于ts人工计算所属窗口w,然后group by w, 其他key  这样嘛。
>
>
>
> silence <[hidden email]> 于2020年9月27日周日 下午5:37写道:
>
> > 也可以通过普通的非窗口聚合进行实现吧,minibatch设大点
> >
> >
> >
> > --
> > Sent from: http://apache-flink.147419.n8.nabble.com/
> >
>
Reply | Threaded
Open this post in threaded view
|

Re:FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

hailongwang
In reply to this post by nobleyd



可以使用
tableConfig.getConfiguration.set('table.exec.emit.early-fire.enabled', true)
tableConfig.getConfiguration.set('table.exec.emit.early-fire.delay', '10 s')


 祝好
Hailong Wang
在 2020-09-27 12:25:37,"赵一旦" <[hidden email]> 写道:
>如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

nobleyd
good. 懂啦。

hailongwang <[hidden email]> 于2020年9月29日周二 上午12:16写道:

>
>
>
> 可以使用
> tableConfig.getConfiguration.set('table.exec.emit.early-fire.enabled',
> true)
> tableConfig.getConfiguration.set('table.exec.emit.early-fire.delay', '10
> s')
>
>
>  祝好
> Hailong Wang
> 在 2020-09-27 12:25:37,"赵一旦" <[hidden email]> 写道:
> >如题,不使用DatastreamAPI,使用FlinkSQL能否实现五分钟窗口,每10秒输出一次呢?
>
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

fan_future
这两个参数
table.exec.emit.early-fire.enabled
table.exec.emit.early-fire.delay
是怎么设置的??

        EnvironmentSettings build =
EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
        TableEnvironment tEnv = TableEnvironment.create(build);

        Configuration tableConfig = tEnv.getConfig().getConfiguration();
        tableConfig.setString("table.exec.emit.early-fire.enabled","true");
        tableConfig.setString("table.exec.emit.early-fire.delay","60000");
我这样处理后就报错



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: FlinkSQL是否支持设置窗口trigger实现continuious trigger呢

SebastianLiu
table.exec.emit.early-fire.delay 是一个duration type的configuration,不写单位会apply失败

fan_future <[hidden email]> 于2020年12月30日周三 下午4:00写道:

> 这两个参数
> table.exec.emit.early-fire.enabled
> table.exec.emit.early-fire.delay
> 是怎么设置的??
>
>         EnvironmentSettings build =
>
> EnvironmentSettings.newInstance().useBlinkPlanner().inStreamingMode().build();
>         TableEnvironment tEnv = TableEnvironment.create(build);
>
>         Configuration tableConfig = tEnv.getConfig().getConfiguration();
>         tableConfig.setString("table.exec.emit.early-fire.enabled","true");
>         tableConfig.setString("table.exec.emit.early-fire.delay","60000");
> 我这样处理后就报错
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
>


--

*With kind regards
------------------------------------------------------------
Sebastian Liu 刘洋
Institute of Computing Technology, Chinese Academy of Science
Mobile\WeChat: +86—15201613655
E-mail: [hidden email] <[hidden email]>
QQ: 3239559*