大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新,
比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢?
另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? Best, Congxian op <[hidden email]> 于2020年7月8日周三 上午10:31写道: > 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > > > 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
您好,我主要是觉得Cache的自动过期比较好用
------------------ 原始邮件 ------------------ 发件人: "Congxian Qiu"<[hidden email]>; 发送时间: 2020年7月8日(星期三) 下午3:50 收件人: "user-zh"<[hidden email]>; 主题: Re: State里面用guava Cache 你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢? 另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? Best, Congxian op <[hidden email]> 于2020年7月8日周三 上午10:31写道: > 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > > > 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
TTL state[1] 满足你的需求吗? 如果不满足的话,能否描述下你的需求呢?
[1] https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl Best, Congxian op <[hidden email]> 于2020年7月8日周三 下午3:53写道: > 您好,我主要是觉得Cache的自动过期比较好用 > > > ------------------ 原始邮件 ------------------ > 发件人: "Congxian Qiu"<[hidden email]>; > 发送时间: 2020年7月8日(星期三) 下午3:50 > 收件人: "user-zh"<[hidden email]>; > > 主题: Re: State里面用guava Cache > > > > 你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢? > 另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? > > Best, > Congxian > > > op <[hidden email]> 于2020年7月8日周三 上午10:31写道: > > > 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > > > > > > 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
您好,是这样的,我想再程序里面关联一些用户id,使用cache缓存一些热数据,设置每个id写入多久后自动清理掉,关联的时候首先访问缓存,访问不到再去访问外部存储;
业务中的key会一直出现,也就是说ttl可能不会生效,这样没办法使用state ttl对吧? ------------------ 原始邮件 ------------------ 发件人: "Congxian Qiu"<[hidden email]>; 发送时间: 2020年7月8日(星期三) 下午3:56 收件人: "user-zh"<[hidden email]>; 主题: Re: State里面用guava Cache TTL state[1] 满足你的需求吗? 如果不满足的话,能否描述下你的需求呢? [1] https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl Best, Congxian op <[hidden email]> 于2020年7月8日周三 下午3:53写道: > 您好,我主要是觉得Cache的自动过期比较好用 > > > ------------------&nbsp;原始邮件&nbsp;------------------ > 发件人:&nbsp;"Congxian Qiu"<[hidden email]&gt;; > 发送时间:&nbsp;2020年7月8日(星期三) 下午3:50 > 收件人:&nbsp;"user-zh"<[hidden email]&gt;; > > 主题:&nbsp;Re: State里面用guava Cache > > > > 你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢? > 另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? > > Best, > Congxian > > > op <[hidden email]&gt; 于2020年7月8日周三 上午10:31写道: > > &gt; 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > &gt; > &gt; > &gt; 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
我尝试理解一下你的需求:
你希望从外部存储同步一些信息,由于访问外部存储效率不高,所以希望加一个 cache,然后 cache 中的数据希望在一定时间后过期,过期后重新去外部存储同步一次信息。 但是还有一些信息不太明白,那这里你打算在什么地方使用 state 呢?state 存放什么数据呢?或者说,你自己维护这个状态之后,为什么还有使用 state 呢? 不管怎么说使用 Flink 之后,还是建议尽量使用 state,而不是使用外存,flink 提供的 state 方便做一些容错处理。 Best, Congxian op <[hidden email]> 于2020年7月8日周三 下午4:07写道: > > 您好,是这样的,我想再程序里面关联一些用户id,使用cache缓存一些热数据,设置每个id写入多久后自动清理掉,关联的时候首先访问缓存,访问不到再去访问外部存储; > 业务中的key会一直出现,也就是说ttl可能不会生效,这样没办法使用state ttl对吧? > > > > > ------------------ 原始邮件 ------------------ > 发件人: "Congxian Qiu"<[hidden email]>; > 发送时间: 2020年7月8日(星期三) 下午3:56 > 收件人: "user-zh"<[hidden email]>; > > 主题: Re: State里面用guava Cache > > > > TTL state[1] 满足你的需求吗? 如果不满足的话,能否描述下你的需求呢? > > [1] > > https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl > Best, > Congxian > > > op <[hidden email]> 于2020年7月8日周三 下午3:53写道: > > > 您好,我主要是觉得Cache的自动过期比较好用 > > > > > > ------------------&nbsp;原始邮件&nbsp;------------------ > > 发件人:&nbsp;"Congxian Qiu"<[hidden email]&gt;; > > 发送时间:&nbsp;2020年7月8日(星期三) 下午3:50 > > 收件人:&nbsp;"user-zh"<[hidden email]&gt;; > > > > 主题:&nbsp;Re: State里面用guava Cache > > > > > > > > 你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢? > > 另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? > > > > Best, > > Congxian > > > > > > op <[hidden email]&gt; 于2020年7月8日周三 上午10:31写道: > > > > &gt; 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > > &gt; > > &gt; > > &gt; > 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
比如数据里来了一个id我需要去判断这个id是新的还是已经存在的,由于历史数据量比较大,所以放全部state里面不太好。
把最近活跃的id放到ValueState[Cache]里面,可以在内存里关联到绝大部分的id,避免频繁访问外部存储。 如果不使用state保存的的话,重启作业后cache会重置,这段时间通过外部存储去关联id会很慢 谢谢 ------------------ 原始邮件 ------------------ 发件人: "Congxian Qiu"<[hidden email]>; 发送时间: 2020年7月8日(星期三) 下午5:52 收件人: "user-zh"<[hidden email]>; 主题: Re: State里面用guava Cache 我尝试理解一下你的需求: 你希望从外部存储同步一些信息,由于访问外部存储效率不高,所以希望加一个 cache,然后 cache 中的数据希望在一定时间后过期,过期后重新去外部存储同步一次信息。 但是还有一些信息不太明白,那这里你打算在什么地方使用 state 呢?state 存放什么数据呢?或者说,你自己维护这个状态之后,为什么还有使用 state 呢? 不管怎么说使用 Flink 之后,还是建议尽量使用 state,而不是使用外存,flink 提供的 state 方便做一些容错处理。 Best, Congxian op <[hidden email]> 于2020年7月8日周三 下午4:07写道: > > 您好,是这样的,我想再程序里面关联一些用户id,使用cache缓存一些热数据,设置每个id写入多久后自动清理掉,关联的时候首先访问缓存,访问不到再去访问外部存储; > 业务中的key会一直出现,也就是说ttl可能不会生效,这样没办法使用state ttl对吧? > > > > > ------------------&nbsp;原始邮件&nbsp;------------------ > 发件人:&nbsp;"Congxian Qiu"<[hidden email]&gt;; > 发送时间:&nbsp;2020年7月8日(星期三) 下午3:56 > 收件人:&nbsp;"user-zh"<[hidden email]&gt;; > > 主题:&nbsp;Re: State里面用guava Cache > > > > TTL state[1] 满足你的需求吗? 如果不满足的话,能否描述下你的需求呢? > > [1] > > https://ci.apache.org/projects/flink/flink-docs-master/zh/dev/stream/state/state.html#%E7%8A%B6%E6%80%81%E6%9C%89%E6%95%88%E6%9C%9F-ttl > Best, > Congxian > > > op <[hidden email]&gt; 于2020年7月8日周三 下午3:53写道: > > &gt; 您好,我主要是觉得Cache的自动过期比较好用 > &gt; > &gt; > &gt; ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------ > &gt; 发件人:&amp;nbsp;"Congxian Qiu"<[hidden email]&amp;gt;; > &gt; 发送时间:&amp;nbsp;2020年7月8日(星期三) 下午3:50 > &gt; 收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;; > &gt; > &gt; 主题:&amp;nbsp;Re: State里面用guava Cache > &gt; > &gt; > &gt; > &gt; 你好,为什么需要在 State 里面再用 cache 呢?单纯的 State 不能满足需求吗?需求是什么呢? > &gt; 另外,除了 ValueState,其他的 ListState/MapState 能否满足你的需求呢? > &gt; > &gt; Best, > &gt; Congxian > &gt; > &gt; > &gt; op <[hidden email]&amp;gt; 于2020年7月8日周三 上午10:31写道: > &gt; > &gt; &amp;gt; 大家好,我想使用一个 ValueState[Cache]的状态,但是发现这个状态的value 没办法更新, > &gt; &amp;gt; > &gt; &amp;gt; > &gt; &amp;gt; > 比如我在map里面每次往cache里面put一个字符串,然后update这个state,输出cache的长度,为什么每次输出长度都是1 |
Free forum by Nabble | Edit this page |