各位Flink的朋友们你们好,我在使用Flink的过程中遇到两个问题,请教一下大家,问题如下:
StateTtlConfig只是为一个StateTable下面的所有数据设置过期,并不能支持对一个KeyStream中的每一个key对应的数据设置过期时间。就拿Using Managed Keyed State 的CountWindowAverage 例子来说我无法对上游来的KeyedStream中的每一个element指定过期时间,或者说我没法定制化KeyStream中满足特定key构建规则的元素的过期时间。这个需求是因为我们应用原来的计算的中间结果合最终结果是存储在Redis里面的,不同的数据可以有不同的过期时间,这在redis中是很好实现的,但是在Flink中貌貌似不可以。
Flink里面有一个QueryableStateCient的工具可以查询其他其他Operator存储的State数据,但是我看官方的文档写是一个Beta项目,其他的一些人也有分析这个工具除了一些状态类型的限制之外,他受限制与nettyServer和StateBackend本身的性能,所以他并不适合受用于高并发、高吞吐的场景。这个问题主要是结合我们自己的应用来考虑我们目前的计算结果都是通过Redis做中间存储的,虽然Redis的数据类型很丰富但是我们自己应用使用了一些比较复杂的数据结构放到Redis中会有一些序列化反序列的开销另外还有外部存储的开销,所以想将结果存到Flink中。但是目前对这个QueryableStateCient工具的实际性能存有疑问,大家有没有一些对这个工具的场景使用的,已经有相应的性能的数据分享一下。*来自志愿者整理的flink邮件归档
[1] https://2017.berlinbuzzwords.de/17/session/queryable-state-or-how-build-billing-system-without-databasehttps://2017.berlinbuzzwords.de/17/session/queryable-state-or-how-build-billing-system-without-database [2] https://github.com/knaufk/queryable-billing [3] https://www.slideshare.net/FlinkForward/flink-forward-berlin-2017-fokko-driesprong-vincent-warmerdam-using-queryable-state-to-update-ml-algorithms-per-datapoint-for-online-gaming*来自志愿者整理的flink
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。