Javaを使用してApache Beamでストリーミング要素を処理することについて読んでいるときに、
DoFn<InputT, OutputT>
に出会いましたそして、
SimpleFunction<InputT, OutputT>
全体で
。
これらはどちらも私に似ており、違いを理解するのは難しいと感じています。
誰かが素人用語の違いを説明できますか?
回答 1 件
関連記事
- Apache NIFIの@onScheduledと@onTriggerの違いは?
- データ構造としてのリストと配列の違いは何ですか?
- 循環システムで2つの値の違いを見つける最良の方法は?
- sshsftpサーバーでのNewChannelとRequestの違い
- eventvalueとeventtargetvalueの違い
- KeyMarkerとPrefixの違いは何ですか?
- Microsoft Azureの可用性セットのアベイラビリティーゾーンとフォールトドメイン機能の違いは何ですか?
- MQ(RabbitMQ、ActiveMQ…)とネットワークライブラリ(ACE、Asio、libevent…)の違いは何ですか?
- csvによるファイルの読み取りとjuliaでのパイプ読み取りの違いは何ですか?
- d3jsでの選択によって示される「this」の無名関数と矢印関数の違いは何ですか
概念的には、
SimpleFunction
を考えることができますDoFn
の単純なケースです :SimpleFunction<InputT, OutputT>
:出力マッピング関数への単純な入力。
単一入力は単一出力を生成します。
静的に型付けされた、あなたは
@Override
する必要がありますapply()
方法;計算コンテキストに依存しません。
ビーム状態APIを使用できません。
ユースケースの例:
MapElements.via(simpleFunction)
要素を1つずつ変換/変更し、要素ごとに1つの出力を生成します。DoFn<InputT, OutputT>
:ParDo
で実行 ;コンテキスト(タイムスタンプ、ウィンドウペインなど)に公開されます。
副入力を消費できます。
複数の出力を生成することも、まったく出力しないこともできます。
副出力を生成できます。
Beamの永続状態APIを使用できます。
動的に入力されます。
ユースケースの例:ストリームからオブジェクトを読み取り、フィルタリングし、それらを蓄積し、集約を実行し、それらを変換し、異なる出力にディスパッチします。
ParDos
のより具体的な例とユースケースを見つけることができます 開発者ガイドで。この部分は
MapElements
について言及しています 、これはSimpleFunctions
の使用例です