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