2017-11-28 4 views
1

私はApache Flinkを初めて使用しています。私は、DataStreamを作成し、別のシステムからの値でフィードしたいと思います。Apache Flink DataStreamのフィード方法

"SourceFunctions"を追加する方法を知りました。その関数では、ソースから値を待ってから、これらの値をFlinkに発行してctx.collectを呼び出してから、再度ポーリングします。

しかし、値が到着(async)したときに関数を呼び出すデータソースがあります。だから、私は何をしたいのですか?この非同期呼び出しが発生したときに、値をFlink DataStreamに入れたいと思います。擬似コード:

mysystem.connect_to_values(value)=> {myflinkdatastream.put(value.toString)} )

これはできますか?それ以外の場合は、SourceFunctionで接続とコールバックを実行してから、後でスリープするループを実行する必要があります。

「外部データ用の非同期I/O Flinkで "Access"を使用していますが、それでもSourceFunctions(Poll/Loop)を使用したフィードであるソースストリームが必要です。

答えて

0

ストリーミングジョブにSourceFunctionを追加しない場合は、非同期ソースからデータを送信できるKafkaまたはその他のメッセージキューを使用し、Flink Streaming Jobをメッセージキューに接続することをおすすめします。

+0

ありがとうございますが、その場合は追加のシステムを追加したくありません。しかし、それは非同期的な方法がない場合、私はポーリングスタイルでそれを行うことは重要ではない... –

関連する問題