Streams
流分为无界流(unbounded streams)和有界流(bounded streams)。有界流有固定大小,明确开始、结束边界;无界流数据持续产生,有明确开始边界,无明确结束边界。
Flink应用程序由流和转换构成,这些流式dataflows形成了有向无环图(DAG),以一个或多个源(source)开始,并以一个或多个汇(sink)结束,streams连接在不同算子之间。
通常,程序代码中的transformation和dataflow中的算子(operator)之间是一一对应的。但有时也会出现一个transformation包含多个算子的情况,如上图所示。
State
状态(State)是在流计算中缓存在内存或存储系统上的中间数据,具有一定的容错恢复能力,并支持持久化,是实现Exactly-once语义的前提。
两种类型状态:算子状态(Operator State)、键控状态(Keyed State)
状态后端(State Backend)负责将任务的状态检查点(CheckPoint)写入远程的持久存储。可以是分布式文件系统,