UDAF的accumulator本身就会被Flink的聚合算子作为state存起来,自然就会参与checkpoint和恢复。
不需要你做额外的操作。你实现UDAF的时候需要注意的是,在UDAF里面不要有自己的临时状态,
把所有信息都放到accumulator中。

star <[email protected]> 于2020年6月8日周一 上午10:50写道:

> 我的udaf里有一些聚合操作,比如接收一些数据 聚合到一个arrayList里,输出也是arraylist。我想问要不要把这个arraylist
> 也做checkpoint
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:&nbsp;"Benchao Li"<[email protected]&gt;;
> 发送时间:&nbsp;2020年6月8日(星期一) 上午10:46
> 收件人:&nbsp;"user-zh"<[email protected]&gt;;
>
> 主题:&nbsp;Re: flink 1.9 自定义UDAF 实现state管理的逻辑吗?
>
>
>
> 没有完全明白你的问题。
> 你是要问UDAF的相关的state是怎么被Flink管理的么?
> 还是问UDAF里面如果用了state,应该自己怎么来管理呢?
>
> star <[email protected]&gt; 于2020年6月8日周一 上午10:44写道:
>
> &gt; 请教大家,
> &gt;
> &gt;
> &gt; flink 1.9 自定义UDAF 实现state管理的逻辑吗?
> &gt;
> &gt;
> &gt; 还是和sql一样 自己管理stage?
> &gt;
> &gt;
> &gt; class MyFunc extends AggregateFunction{
> &gt; createAccumulator
> &gt; accumulate
> &gt; getValue
> &gt; merge
> &gt; &amp;nbsp; }
>
>
>
> --
>
> Best,
> Benchao Li



-- 

Best,
Benchao Li

回复