APIs
移除 ExecutionConfig 中的过期方法 FLINK-19084[1]
•已移除过期方法 ExecutionConfig#isLatencyTrackingEnabled
,可以使用方法 ExecutionConfig#getLatencyTrackingInterval
代替•已移除过期和无效方法 ExecutionConfig#enable/disableSysoutLogging
,ExecutionConfig#set/isFailTaskOnCheckpointError
•CLI 移除 -q
参数选项
移除过期的 RuntimeContext#getAllAccumulators
方法 FLINK-19032[2]
已移除过期方法 RuntimeContext#getAllAccumulators
,可以使用方法 RuntimeContext#getAccumulator
代替
因为数据丢失风险,过期 CheckpointConfig#setPreferCheckpointForRecovery
方法 FLINK-20441[3]
方法 CheckpointConfig#setPreferCheckpointForRecovery
已经被过期,因为在作业恢复时,如果使用较旧的 CheckPoint 而不使用较新的 SavePoint 时可能会导致数据丢失
FLP-134:DataStream API 的批处理执行
•允许 KeyedStream.intervalJoin()
上配置时间属性 FLINK-19479[4]•过期 DataStream API 上的 timeWindow()
算子 FLINK-19318[5] 在 Flink1.12 版本,timeWindow()
算子被标注为过期,推荐使用 window(WindowAssigner)
,从 TumblingEventTimeWindows
,SlidingEventTimeWindows
,TumblingProcessingTimeWindows
或者 SlidingProcessingTimeWindows
自主选择 WindowAssigner•过期 StreamExecutionEnvironment.setStreamTimeCharacteristic()
和 TimeCharacteristic
FLINK-19319[6]
•在 Flink1.12 版本,默认的时间特性已经从 ProcessingTime 变为 EventTime,因此不再需要调用该方法去设置 EventTime。•在 EventTime 模式下,使用 ProcessingTime 的 windows 和 times 也是有效的。•如果需要禁止 Watermarks,使用 ExecutionConfig.setAutoWatermarkInterval(long)
。•如果使用 IngestionTime
,需要手动设置一个合理的 WatermarkStrategy
。•如果使用基于时间特征更改行为的通用 time window
算子(例如 KeyedStream.timeWindow()
),请明确指定处理时间或事件时间。
•允许 CEP PatternStream 配置时间属性 FLINK-19326[7]
API 清理
•移除 UdfAnalyzer 配置 方法 ExecutionConfig#get/setCodeAnalysisMode
和 SkipCodeAnalysis
类被移除•移除过期方法 DataStream#split
算子 DataStream#split()
已经被多个版本标注为过期,该版本已经被删除;使用 Side Outputs 来代替•移除过期方法 DataStream#fold()
以及相关的类 在 1.12 版本移除了过期方法 DataStream#fold
,推荐使用其他性能更好的算子,如 DataStream#reduce
Connectors and Formats
移除 Kafka 0.10.x 和 0.11.x 连接器 FLINK-19152[8]
在 Flink1.12 版本,Kafka 0.10.x 和 0.11.x 连接器已经被移除了,推荐使用统一的 Kafka Connector(使用 0.10.2.x 之后的任何 Kafka 集群)
CSV 序列化 Schema 包含行分隔符
csv.line-delimiter
选项已经从 CSV format 中移除了,因为行分隔符应该由 Connector 定义而不是由 format 定义。如果用户在以前的 Flink 版本中一直使用了该配置,则升级到 Flink 1.12 时,应该删除该配置。
References
[1]
FLINK-19084: https://issues.apache.org/jira/browse/FLINK-19084
[2]
FLINK-19032: https://issues.apache.org/jira/browse/FLINK-19032
[3]
FLINK-20441: https://issues.apache.org/jira/browse/FLINK-20441
[4]
FLINK-19479: https://issues.apache.org/jira/browse/FLINK-19479
[5]
FLINK-19318: https://issues.apache.org/jira/browse/FLINK-19318
[6]
FLINK-19319: https://issues.apache.org/jira/browse/FLINK-19319
[7]
FLINK-19326: https://issues.apache.org/jira/browse/FLINK-19326
[8]
FLINK-19152: https://issues.apache.org/jira/browse/FLINK-19152