Apache Beam 和 Apache Nifi 之间的区别

Difference between Apache Beam and Apache Nifi

Apache Beam 和 Apache Nifi 有哪些用例? 看起来它们都是数据流引擎。如果两者有相似的用例,两者哪个更好?

Apache Beam 是 Apache Flink、Apache Spark(流)、Apache Apex 和 Apache Storm 等流处理系统的抽象层。它允许您针对标准 API 编写代码,然后使用任何底层平台执行代码。因此理论上,如果您针对 Beam API 编写代码,则该代码可以 运行 在 Flink 或 Spark Streaming 上 运行 而无需任何代码更改。

Apache NiFi 是一种数据流工具,专注于在系统之间移动数据,从使用 MiNiFi 的非常小的边缘设备一直到使用 NiFi 的大型数据中心。 NiFi 的重点是视觉命令和控制、数据过滤、数据丰富、数据来源和安全性等功能,仅举几例。使用 NiFi,您不是在编写代码并将其部署为一项工作,而是通过 UI 构建实时数据流,每个操作都会生效。

流处理平台通常专注于涉及流连接和窗口操作的计算。数据流工具通常是免费的,用于管理从源到处理平台的数据流。

NiFi 和流处理系统之间实际上有几个集成点...有 Flink、Spark、Storm 和 Apex 的组件可以从 NiFi 拉取数据,或将数据推回 NiFi。另一种常见的模式是使用 MiNiFi + NiFi 将数据输入 Apache Kafka,然后让流处理系统从 Kafka 消费。