Flink内核原理与实现
上QQ阅读APP看书,第一时间看更新

第3章 核心抽象

Flink API提供了开发的接口,此外,为了实现业务逻辑,还必须为开发者提供自定义业务逻辑的能力。Flink中设计了用户自定义函数体系(User Defined Function,UDF),开发人员实现业务逻辑就是开发UDF,为了更加精确清晰地表达概念,本书的后续章节使用UDF来表示用户自定义函数。

Flink的应用采用流水线的形式,而用户编写的UDF表达的是业务逻辑处理,并不关心数据的上下游关系,为了表达上下游的关系,Flink引入了Transformation的概念,Transformation中记录了上游的数据来源,将用户处理逻辑组织成流水线。Transformation是一个逻辑概念,并不关心数据的物理来源、序列化、数据转发等一系列执行时刻的问题,所以在运行时Flink引入了算子,从上游获取数据、交给UDF执行并将UDF执行结果交给下游,同时还提供了容错方面的支持。

有了Flink开发接口、函数体系,Flink运行时的体系还有一个比较重要的抽象:环境对象。环境对象提供了开发的入口、配置信息的传递等,在作业提交、部署、运行时可以获取这些配置信息。