apache-flink - flink流如何访问动态映射数据来避免io操作
问题描述
我必须处理流式日志,例如
{"id":1, "name":"alice"}
每个日志都需要通过访问映射数据库来获取家庭地址。但是,db 中的数据正在发生变化。
那么我可以在期间读取数据库以避免每个日志的io操作。
解决方案
在开始处理事件之前,您似乎可以通过自定义RichMapFunction
实现从数据库获取状态(并将其存储在某些数据结构中)来解决您的问题。RichMapFunction#open
然后,您可以从该函数启动一个辅助线程,该线程不时从数据库中获取最新信息并更新数据结构。如果您可以将数据集两次放入内存中,则不需要任何锁定,因为您可以在两个数据结构之间执行原子交换。