ScalarFunction 访问 state

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

ScalarFunction 访问 state

forideal
Hi,
 
        最近我有一个使用 Flink SQL 做简单的数据去重的需求,想使用 Flink 的 `ScalarFunction`,通过阅读 API 发现 FunctionContext context 并不支持访问 state。
        我准备使用 Guava cache 做,不知道小伙伴有没有更好的建议哈!感谢。


Best,forideal
Reply | Threaded
Open this post in threaded view
|

Re: ScalarFunction 访问 state

godfrey he
看看deduplication语法[1] 是否满足你的需求

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html#deduplication

forideal <[hidden email]> 于2020年8月17日周一 下午12:13写道:

> Hi,
>
>         最近我有一个使用 Flink SQL 做简单的数据去重的需求,想使用 Flink 的 `ScalarFunction`,通过阅读
> API 发现 FunctionContext context 并不支持访问 state。
>         我准备使用 Guava cache 做,不知道小伙伴有没有更好的建议哈!感谢。
>
>
> Best,forideal
Reply | Threaded
Open this post in threaded view
|

Re:Re: ScalarFunction 访问 state

forideal
Hi godfrey he,


   非常感谢您的回复,我按照相关的文档进行了测试,这个方案确实能够去掉重复的数据。不过,这个方案的状态实在是太大了。我们每秒是 GB 级别的数据,我就按照20分钟的量来设置 TTL 我的状态将会达到 TB 级别,这个比较难以维护。


   我想,携带状态的 ScalarFunction 也是一个比较奇怪的需求,不过,在这个场景下面,如果 ScalarFunction 能够访问状态,那么我就不需要使用 ScalarFunction 去访问 redis 或者 hbase 这样的 kv  系统,能够减少开发者的代码,同时大大的提升系统的稳定性。


Best, forideal

















在 2020-08-19 10:06:46,"godfrey he" <[hidden email]> 写道:

>看看deduplication语法[1] 是否满足你的需求
>
>[1]
>https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html#deduplication
>
>forideal <[hidden email]> 于2020年8月17日周一 下午12:13写道:
>
>> Hi,
>>
>>         最近我有一个使用 Flink SQL 做简单的数据去重的需求,想使用 Flink 的 `ScalarFunction`,通过阅读
>> API 发现 FunctionContext context 并不支持访问 state。
>>         我准备使用 Guava cache 做,不知道小伙伴有没有更好的建议哈!感谢。
>>
>>
>> Best,forideal