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

时间:2018-07-31 01:31:33

标签: apache-flink flink-streaming

我必须处理流日志,例如

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

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

所以我可以定期读取数据库,以避免每一个日志进行io操作。

1 个答案:

答案 0 :(得分:0)

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

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