首页 > 解决方案 > flink流如何访问动态映射数据来避免io操作

问题描述

我必须处理流式日志,例如

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

每个日志都需要通过访问映射数据库来获取家庭地址。但是,db 中的数据正在发生变化。

那么我可以在期间读取数据库以避免每个日志的io操作。

标签: apache-flinkflink-streaming

解决方案


在开始处理事件之前,您似乎可以通过自定义RichMapFunction实现从数据库获取状态(并将其存储在某些数据结构中)来解决您的问题。RichMapFunction#open

然后,您可以从该函数启动一个辅助线程,该线程不时从数据库中获取最新信息并更新数据结构。如果您可以将数据集两次放入内存中,则不需要任何锁定,因为您可以在两个数据结构之间执行原子交换。


推荐阅读