有没有办法在Apache Flink中持久化静态表

时间:2017-05-11 01:50:18

标签: java apache-flink

目前,我正在尝试使用Apache Flink处理ETL。在项目中,有几个过程需要查询维度表以从CityName转换为CityID。项目结构如下:

Project---------------------
       |
       ---- Company ETL (CityName column map to CityId)
       |
       ---- Employee ETL (CityName column map to CityId)

目前,对于每个流,我们的方法是在MySQL上调用jdbc查询操作,其中维度表位于。这不是一种有效的方法,我想问一下,有一种方法可以将维度表内容保留在Flink内部,并且能够在项目范围内使用。

1 个答案:

答案 0 :(得分:0)

如果您在翻译表需要更新时不介意重新启动应用程序,这听起来很合理。但是,如果您正在寻找替代方案,则可以在转换表中添加更新内容,然后使用RichCoMapRichCoFlatMap进行翻译。您可以将翻译表存储为state managed by Flink。从Flink的角度来看,翻译表可能是整体ValueState的一大块,或者在Flink 1.3中,您可以使用MapStatedocs)。