flink流如何访问动态Map数据以避免io操作

wko9yo5t  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(263)

我必须处理流日志,例如

{"id":1, "name":"alice"}

每个日志都需要通过访问Map数据库来获取族地址。但是,数据库中的数据正在发生变化。
所以我可以在一段时间内读取数据库,以避免每个日志的io操作。

nwwlzxa7

nwwlzxa71#

看来你可以通过定制解决你的问题 RichMapFunction 在哪里实施 RichMapFunction#open 在开始处理事件之前从数据库获取状态(并将其存储在某些数据结构中)。
然后可以从该函数启动一个辅助线程,该线程不时地从数据库中获取最新信息并更新数据结构。如果可以将数据集放入内存两次,就不需要任何锁定,因为可以在两个数据结构之间执行原子交换。

相关问题