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
> |