学习 Flink(一):初识 Flink

Apache Flink 是在有界(bounded)无界(unbounded)数据流之上进行有状态计算的框架和分布式处理引擎。

有界数据流,有始有终,之上的计算即为批处理。无界数据流,有始无终,之上的计算即为流处理。

Flink 采用了流优先的架构,批处理被作为流处理的特殊情况。

参考:The world beyond batch: Streaming 101

应用在运行基本的业务逻辑的过程中,需要记住事件或中间结果,以便在稍后访问。状态在 Flink 是一级公民,支持内存、文件系统和 RocksDB 后端存储。

组件栈

flink stack

Runtime

Runtime 的核心为 JobGraphJobGraph 是并发 Data Flow 的抽象,包含了操作(JobVertex)中间结果(IntermediateDataSet)。

DataStream API

生成 JobGraph

Table API & SQL

SQL on Streaming

CEP

复杂事件处理