2017-04-05 2 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를 사용하게하는 것입니다.