Apache Beam和Apache Nifi之间的区别

时间:2017-04-05 12:32:31

标签: apache-nifi apache-beam

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

1 个答案:

答案 0 :(得分:24)

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中消耗。