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 Jing <aj...@gmail.com> on 2022/01/25 18:11:54 UTC

如何给flink的输出削峰填谷?

Hi Flink中文社区,

我碰到一个这样的问题,我的数据库有write throttle, 我的flink
app是一个10分钟窗口的聚合操作,这样导致,每10分钟有个非常大量的写请求。导致数据库的sink有时候会destroy.
有什么办法把这些写请求均匀分布到10分钟吗?


谢谢,
Jing

Re: 如何给flink的输出削峰填谷?

Posted by yidan zhao <hi...@gmail.com>.
如果不需要统一窗口周期,比如0-10,10-20的话,可以考虑根据key决定窗口offset,这样将窗口offset随机化,输出就变平滑了。

Paul Lam <pa...@gmail.com> 于2022年1月26日周三 10:18写道:

> Hi,
>
> 如果是 DataStream 应用的话,最简单的方式是给 sink 之前加个 throttle 算子,比如 guava RateLimiter。
>
> SQL 应用的话可能要实现个 UDF 来做。
>
> Best,
> Paul Lam
>
> > 2022年1月26日 02:11,Jing <aj...@gmail.com> 写道:
> >
> > Hi Flink中文社区,
> >
> > 我碰到一个这样的问题,我的数据库有write throttle, 我的flink
> > app是一个10分钟窗口的聚合操作,这样导致,每10分钟有个非常大量的写请求。导致数据库的sink有时候会destroy.
> > 有什么办法把这些写请求均匀分布到10分钟吗?
> >
> >
> > 谢谢,
> > Jing
>
>

Re: 如何给flink的输出削峰填谷?

Posted by Paul Lam <pa...@gmail.com>.
Hi,

如果是 DataStream 应用的话,最简单的方式是给 sink 之前加个 throttle 算子,比如 guava RateLimiter。

SQL 应用的话可能要实现个 UDF 来做。

Best,
Paul Lam

> 2022年1月26日 02:11,Jing <aj...@gmail.com> 写道:
> 
> Hi Flink中文社区,
> 
> 我碰到一个这样的问题,我的数据库有write throttle, 我的flink
> app是一个10分钟窗口的聚合操作,这样导致,每10分钟有个非常大量的写请求。导致数据库的sink有时候会destroy.
> 有什么办法把这些写请求均匀分布到10分钟吗?
> 
> 
> 谢谢,
> Jing


Re: 如何给flink的输出削峰填谷?

Posted by "18703416172@163.com" <18...@163.com>.
类似kafka这样的消息管道应该用来 削峰填谷,
可以先sink 至kafka,再从kafka -> db

> 2022年1月26日 上午2:11,Jing <aj...@gmail.com> 写道:
> 
> Hi Flink中文社区,
> 
> 我碰到一个这样的问题,我的数据库有write throttle, 我的flink
> app是一个10分钟窗口的聚合操作,这样导致,每10分钟有个非常大量的写请求。导致数据库的sink有时候会destroy.
> 有什么办法把这些写请求均匀分布到10分钟吗?
> 
> 
> 谢谢,
> Jing