目前,我正在尝试使用Apache Flink处理ETL。在项目中,有几个步骤需要查询维度表才能将CityName转换为CityID。工程结构如下:
Project---------------------
|
---- Company ETL (CityName column map to CityId)
|
---- Employee ETL (CityName column map to CityId)目前,对于每个流,我们方法是在维度表所在的MySQL上调用jdbc查询操作。这不是一个有效的方法,我想问一下,有没有一种方法可以在Flink内部保留维度表内容,并能够在整个项目范围内使用。
发布于 2017-05-29 13:57:00
如果您不介意在翻译表需要更新时重新启动应用程序,那么这听起来很合理。但是,如果您正在寻找替代方案,您可以在转换表中流式传输更新,并使用RichCoMap或RichCoFlatMap对转换进行操作。您可以将转换表存储为state managed by Flink。从Flink的角度来看,转换表可能是单片ValueState的一个块,或者在Flink 1.3中,您可以使用MapState (docs)。
https://stackoverflow.com/questions/43905220
复制相似问题