1.简介
简单地说,Apache Beam是一个实时处理、流处理的大数据框架,由Google DataFlow贡献给 Apache 基金会孵化而来。
2.应用场景
以下为应用场景的几个例子:
1.Beam 可以用于 ETL Job 任务
Beam 的数据可以通过 SDKs 的 IO 接入,通过管道可以用后面的 Runners 做清洗。
2.Beam 数据仓库快速切换、跨仓库
由于 Beam 的数据源是多样 IO,所以用 Beam 可以快速切换任何数据仓库。
3.Beam 计算处理平台切换、跨平台
Runners 目前提供了 3-4 种可以切换的平台,如Hadoop,Spark,Flink
3.数据处理流程
3.1Modes
Modes 是 Beam 的模型或叫数据来源的 IO,它是由多种数据源或仓库的 IO 组成,数据源支持批处理和流处理。
Modes要处理的问题有两个,一个是数据源类型,大致分为两类,有界的数据集(如数据库数据)和无界的数据流(如消息中间件)。
第二个是时间处理,有两种,一种是全量计算,另一种是部分增量计算。Beam Model 处理的目标数据是无界的时间乱序数据流,不考虑时间顺序或有界的数据集可看做是无界乱序数据流的一个特例。
3.2 Pipeline
Pipeline 是 Beam 的管道,所有的批处理或流处理都要通过这个管道把数据传输到后端的计算平台。这个管道现在是唯一的。数据源可以切换多种,计算平台或处理平台也支持多种。需要注意的是,管道只有一条,它的作用是连接数据和 Runtimes 平台。
3.3 Runtimes
Runtimes 是大数据计算或处理平台,目前支持 Apache Flink、Apache Spark、Dir