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 小昌同学 <cc...@163.com> on 2023/05/12 05:59:27 UTC

flink 状态设置

各位老师好,我这边使用的flink sql是" 
select funcId,funcIdDesc,serverIp,cast(min(maxTime-minTime) as varchar(200)) as minTime,pk from
(
 select
  a.funcId as funcId ,
  a.funcIdDesc as funcIdDesc,
  a.serverIp as serverIp,
  b.outTime as maxTime,
  a.outTime as minTime,
  concat(a.funcId,a.serverIp) as pk
 from tableRequest a
 inner join tableAnswer b
 on a.handleSerialNo=b.handleSerialNo
)
group by funcId,funcIdDesc,serverIp,pk‍‍‍‍‍‍‍"
考虑如果不对于状态进行管理,后续程序会出现问题,我这边想实现的状态管理是:我上述的这个sql计算的数据仅仅只是当天(24小时)的,等到第二天就把之前的全部状态全部清除掉,基于这样的场景我可以怎么设置什么参数管理状态,我自己设置参数为“tableEnv.getConfig().setIdleStateRetention(Duration.ofDays(1L));”,看官网的解释,感觉这样会有问题,idlestate是只要更新了就会重新设置过期时间,但是我想实现效果是不管是有咩有更新,只要不是属于今天的就全部清理掉。


| |
小昌同学
|
|
ccc0606fighting@163.com
|

Re: flink 状态设置

Posted by Shammon FY <zj...@gmail.com>.
Hi,

"如果不对于状态进行管理,后续程序会出现问题"是指状态会变得太大?如果是这样,可以在group
by的字段里增加一个天级的时间戳,这样就不会由于key被更新导致的状态过期失效问题

Best,
Shammon FY


On Fri, May 12, 2023 at 1:59 PM 小昌同学 <cc...@163.com> wrote:

> 各位老师好,我这边使用的flink sql是"
> select funcId,funcIdDesc,serverIp,cast(min(maxTime-minTime) as
> varchar(200)) as minTime,pk from
> (
>  select
>   a.funcId as funcId ,
>   a.funcIdDesc as funcIdDesc,
>   a.serverIp as serverIp,
>   b.outTime as maxTime,
>   a.outTime as minTime,
>   concat(a.funcId,a.serverIp) as pk
>  from tableRequest a
>  inner join tableAnswer b
>  on a.handleSerialNo=b.handleSerialNo
> )
> group by funcId,funcIdDesc,serverIp,pk‍‍‍‍‍‍‍"
>
> 考虑如果不对于状态进行管理,后续程序会出现问题,我这边想实现的状态管理是:我上述的这个sql计算的数据仅仅只是当天(24小时)的,等到第二天就把之前的全部状态全部清除掉,基于这样的场景我可以怎么设置什么参数管理状态,我自己设置参数为“tableEnv.getConfig().setIdleStateRetention(Duration.ofDays(1L));”,看官网的解释,感觉这样会有问题,idlestate是只要更新了就会重新设置过期时间,但是我想实现效果是不管是有咩有更新,只要不是属于今天的就全部清理掉。
>
>
> | |
> 小昌同学
> |
> |
> ccc0606fighting@163.com
> |