web-dev-qa-db-ja.com

ApacheBeamとApacheNifiの違い

ApacheBeamとApacheNifiのユースケースは何ですか?どちらもデータフローエンジンのようです。両方のユースケースが類似している場合、どちらが優れていますか?

10
sanjay

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

Apache NiFiは、MiNiFiを使用した非常に小さなEdgeデバイスから、NiFiを使用した大規模なデータセンターに至るまで、システム間でデータを移動することに焦点を当てたデータフローツールです。 NiFiの焦点は、ほんの数例を挙げると、視覚的なコマンドアンドコントロール、データのフィルタリング、データの強化、データの出所、セキュリティなどの機能にあります。 NiFiを使用すると、コードを記述してジョブとしてデプロイするのではなく、各アクションで有効になるUIを介して生きたデータフローを構築します。

ストリーム処理プラットフォームは、多くの場合、ストリームの結合とウィンドウ処理を含む計算に重点を置いています。一方、データフローツールは補完的であり、ソースから処理プラットフォームへのデータフローを管理するために使用されることがよくあります。

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

25
Bryan Bende