2017-05-11 7 views
0

現在、Apache FlinkでETLを処理しようとしています。このプロジェクトでは、CityNameからCityIDに変換するためにディメンションテーブルを照会する必要があるいくつかの手順があります。以下のようなプロジェクト構造:現時点ではApache Flinkで静的テーブルを永続化する方法はありますか

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

は、各ストリームのために、私たちの方法は、ディメンション表がありますMySQLの上のJDBCクエリアクションを呼び出すことです。これは効果的な方法ではありません。私は内部でFlinkのディメンションテーブルの内容をプロジェクト全体で使用できるようにする方法があるかどうか尋ねたいと思います。

+0

FlinkのバッチまたはストリーミングAPIを使用しますか?この変換テーブルのサイズはどれくらいですか? –

+0

私はStreaming APIを使用してデータを転送しています。変換テーブルは10,000レコードです。通常、データは毎月変更されます。現在、私はちょうど変換テーブルからのデータを格納するためにJava最終静的マップを使用します。 @アルパインギズモ – camash

答えて

0

翻訳テーブルを更新する必要があるときにアプリケーションを再起動しても大丈夫だと思います。しかし、代替案を探しているならば、翻訳テーブルにストリームを加えて更新することができ、RichCoMapまたはRichCoFlatMapを使って翻訳を行うことができます。変換テーブルはstate managed by Flinkとして保存します。 Flinkの観点から、変換テーブルはモノリシックのValueStateの1つのチャンクであるか、またはFlink 1.3の場合はMapStatedocs)を使用できます。

関連する問題