有没有办法在 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 内部并能够在项目范围内使用。

如果您不介意在转换表需要更新时重新启动应用程序,这听起来很合理。但是,如果您正在寻找替代方案,则可以在翻译表中流式传输以及更新,并使用RichCoMapRichCoFlatMap对翻译执行。您可以将转换表存储为 Flink 管理的状态。从 Flink 的角度来看,翻译表可能是一块单片ValueState,或者在 Flink 1.3 中你可以使用 MapState(文档(。

相关内容

  • 没有找到相关文章

最新更新