Transformation 是 Flink操作的底層實現,無論是map還是Flatmap。
DataStream類中包含兩個變量:
- StreamExecutionEnvironment
- Transformation
或者說DataStream類的所有操作都是圍繞着兩個變量進行。
每一次操作(map、flatmap等)都是在新建一個Transformation並將當前Transformation與下一個建立鏈接的關系。
Transformation中重要的變量
- id
- name
- parallelism
- outputType
重點說說PhysicalTransformation,它包含四個子類
- OneInputTransformation
- TwoInputTransformation
- SourceTransformation
- SinkTransformation
其中都包含變量StreamOperatorFactory用於記錄操作的用戶方法。除開SourceTransformation之外,其他三個中都包含Transformation input,表示上一級的Transformation。