以下文章来源于暴走大数据 ,作者群主王知无
大数据、大数据开发、大数据面试、Flink/Spark/Hadoop/数仓开发、大数据框架、大数据实时计算、大数据离线计算、Java后端、数据仓库、数据科学、数据分析、数据挖掘以及面试经验和职场感悟。
概念和基础篇
POJO类,且没有实现hashCode函数
任意形式的数组类型
窗口操作
使用了KV操作的函数
继承了CheckpointedFunction的函数
当开始做checkpointing的时候,状态会被持久化到checkpoints里来规避数据丢失和状态恢复。选择的状态存储策略不同,会导致状态持久化如何和checkpoints交互。
Flink内部提供了这些状态后端:
MemoryStateBackend
FsStateBackend
RocksDBStateBackend
如果没有其他配置,系统将使用MemoryStateBackend。
进阶篇
上下游的并行度一致
下游节点的入度为1 (也就是说下游节点没有来自其他节点的输入)
上下游节点都在同一个 slot group 中(下面会解释 slot group)
下游节点的 chain 策略为 ALWAYS(可以与上下游链接,map、flatmap、filter等默认是ALWAYS)
上游节点的 chain 策略为 ALWAYS 或 HEAD(只能与下游链接,不能与上游链接,Source默认是HEAD)
两个节点间数据分区方式是 forward(参考理解数据流的分区)
用户没有禁用 chain