flink滑动窗口输出结果的问题

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

flink滑动窗口输出结果的问题

marble.zhong@coinflex.com.INVALID
大家好, 我现在的场景需求是,窗口size是1个小时,每分钟触发统计一次结果。比如现在是10点钟,则统计9点到10点的结果。
下一分钟则在10:01分时触发统计9:01到10:01的结果。

如果用Sliding window, 比如.timeWindow(Time.hours(1L), Time.minutes(1)),
则会输出60/1=60个结果集,这不是我想要的结果,我只想要当前时间往前一个小时的结果。

除了在window function api做逻辑过虑外,还有什么方法可以实现这种场景?

滚动窗口的话不适合,它每次是输出整点的,比如从9点到10点,然后就跳到10点到11点,也不符合我的业务要求。



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

Re: flink滑动窗口输出结果的问题

nobleyd
从你的描述来看,你说的貌似就是sliding window呀。
9-10,9.01-10.01...

[hidden email] <[hidden email]>
于2021年1月15日周五 下午5:45写道:

> 大家好, 我现在的场景需求是,窗口size是1个小时,每分钟触发统计一次结果。比如现在是10点钟,则统计9点到10点的结果。
> 下一分钟则在10:01分时触发统计9:01到10:01的结果。
>
> 如果用Sliding window, 比如.timeWindow(Time.hours(1L), Time.minutes(1)),
> 则会输出60/1=60个结果集,这不是我想要的结果,我只想要当前时间往前一个小时的结果。
>
> 除了在window function api做逻辑过虑外,还有什么方法可以实现这种场景?
>
> 滚动窗口的话不适合,它每次是输出整点的,比如从9点到10点,然后就跳到10点到11点,也不符合我的业务要求。
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: flink滑动窗口输出结果的问题

marble.zhong@coinflex.com.INVALID
 是的, 现在的问题是sliding会产生多个结果,而我只要输出最早的那个窗口的结果数据。



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

Re: flink滑动窗口输出结果的问题

eriendeng
只要sliding出来才满足你每分钟执行的滑动要求吧?至于你只要最早/新的某一条,你可以从window groupby得出的流再次group
by然后再用window时间筛选你要的数据。



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

Re: flink滑动窗口输出结果的问题

nobleyd
你貌似没懂我的意思。我的意思是你的需求和sliding window的效果应该就是一样的。
不是很清楚你表达的最早什么的是什么含义。

基于event time做sliding window,只要你没设置其他东西,就应该是1min输出一个结果而已哈。

eriendeng <[hidden email]> 于2021年1月18日周一 上午11:42写道:

> 只要sliding出来才满足你每分钟执行的滑动要求吧?至于你只要最早/新的某一条,你可以从window groupby得出的流再次group
> by然后再用window时间筛选你要的数据。
>
>
>
> --
> Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: flink滑动窗口输出结果的问题

nobleyd
补充下,是针对每个key,每1min输出一个结果。采用1h窗口,1min滑动窗口。



赵一旦 <[hidden email]> 于2021年1月18日周一 下午3:51写道:

> 你貌似没懂我的意思。我的意思是你的需求和sliding window的效果应该就是一样的。
> 不是很清楚你表达的最早什么的是什么含义。
>
> 基于event time做sliding window,只要你没设置其他东西,就应该是1min输出一个结果而已哈。
>
> eriendeng <[hidden email]> 于2021年1月18日周一 上午11:42写道:
>
>> 只要sliding出来才满足你每分钟执行的滑动要求吧?至于你只要最早/新的某一条,你可以从window groupby得出的流再次group
>> by然后再用window时间筛选你要的数据。
>>
>>
>>
>> --
>> Sent from: http://apache-flink.147419.n8.nabble.com/
>
>
Reply | Threaded
Open this post in threaded view
|

Re: flink滑动窗口输出结果的问题

nobleyd
我看你还写到 “每分钟触发统计一次结果”,你是不是做了自定义trigger啥的,导致逻辑不对了。

默认情况就可以实现你要的效果,不要自定义trigger哈这里。

赵一旦 <[hidden email]> 于2021年1月18日周一 下午3:52写道:

> 补充下,是针对每个key,每1min输出一个结果。采用1h窗口,1min滑动窗口。
>
>
>
> 赵一旦 <[hidden email]> 于2021年1月18日周一 下午3:51写道:
>
>> 你貌似没懂我的意思。我的意思是你的需求和sliding window的效果应该就是一样的。
>> 不是很清楚你表达的最早什么的是什么含义。
>>
>> 基于event time做sliding window,只要你没设置其他东西,就应该是1min输出一个结果而已哈。
>>
>> eriendeng <[hidden email]> 于2021年1月18日周一 上午11:42写道:
>>
>>> 只要sliding出来才满足你每分钟执行的滑动要求吧?至于你只要最早/新的某一条,你可以从window groupby得出的流再次group
>>> by然后再用window时间筛选你要的数据。
>>>
>>>
>>>
>>> --
>>> Sent from: http://apache-flink.147419.n8.nabble.com/
>>
>>