2017-04-05 16 views
5

Apache BeamとApache Nifiの使用例は何ですか? 両方ともデータフローエンジンであるようです。どちらも同じようなユースケースを持っている場合、どちらの方が優れていますか?Apache BeamとApache Nifiの相違点

答えて

13

Apache Beamは、Apache Flink、Apache Spark(ストリーミング)、Apache Apex、Apache Stormなどのストリーム処理システムの抽象レイヤーです。標準APIに対してコードを記述し、基盤となるプラットフォームを使用してコードを実行することができます。理論的には、Beam APIに対してコードを書いた場合、そのコードはコード変更なしでFlinkまたはSpark Streaming上で実行できます。

Apache NiFiは、システム間で、MiNiFiを使用する非常に小さなエッジデバイスから、NiFiを使用したより大きなデータセンターに至るまで、システム間でデータを移動することに重点を置くデータフローツールです。 NiFiの焦点は、ビジュアルコマンドとコントロール、データのフィルタリング、データの豊富化、データの提供、セキュリティなどの機能に重点を置いています。 NiFiでは、コードを記述してそれをジョブとしてデプロイするのではなく、各アクションで有効になるUIを介してリビングデータフローを構築しています。

ストリーム処理プラットフォームは、ストリームとウィンドウ操作の結合を含む計算に集中することがよくあります。データフローツールはしばしば無料であり、ソースから処理プラットフォームへのデータフローを管理するために使用されます。

実際にはNiFiとストリーム処理システムの間にいくつかの統合ポイントがあります.NiFiからデータを引き出したり、NiFiにデータをプッシュできるFlink、Spark、Storm、Apexのコンポーネントがあります。別の一般的なパターンはMiNiFi + NiFiを使用してApache Kafkaにデータを取得し、ストリーム処理システムをKafkaから消費させることです。