我需要开始一个新项目,我不知道Spark和Flink会更好。目前,该项目需要微批处理,但以后也可能需要流事件处理。
假设Spark是最好的,那么使用Beam并选择Spark/Flink作为运行器/引擎有什么缺点吗?
Beam 是否会增加任何开销或缺少 Spark/Flink 中可用的某些 API/功能?
要回答您的部分问题:
首先,Beam定义了用于数据处理编程的API。要采用它,您必须首先了解其编程模型,并确保其模型符合您的需求。
假设你已经相当了解 Beam 能帮助你什么,并且你打算选择 Spark 作为执行运行器,你可以查看运行器功能矩阵[1],了解 Spark 上的 Beam API 支持。
关于在Spark上运行Beam的开销。您可能需要 user@beam.apache.org 或 dev@beam.apache.org 询问。运行器开发人员可以对此有更好的答案。
[1] https://beam.apache.org/documentation/runners/capability-matrix/