我必须处理流日志,例如
{"id":1, "name":"alice"}
每个日志都需要通过访问映射数据库来获取家庭地址。但是,db中的数据正在更改。
所以我可以定期读取数据库,以避免每一个日志进行io操作。
答案 0 :(得分:0)
看来,您可以通过使用自定义RichMapFunction
来解决问题,在该RichMapFunction#open
中实现moveLayer()
,以便在开始处理事件之前从数据库中获取状态(并将其存储在某些数据结构中)。 / p>
然后,您可以从该函数启动一个辅助线程,该线程会不时从数据库中获取最新信息并更新数据结构。如果您可以将数据集放入内存两次,则不需要任何锁定,因为您只需在两个数据结构之间执行原子交换即可。