Flink 1.9改进批次作业恢复功能,工作进度将不再全部重来,可针对单一故障转移区域进行批次恢复工作,不会影响其他区域的工作进度。
Apache Flink发布了1.9.0版本,重要新功能包括改进批次恢复,以及加入新的状态处理器API,而Apache Flink与阿里巴巴贡献的Blink查询引擎整合工作,也从这个版本开始,另外,Flink 1.9还使用最新的Angular稳定版,来重新建置WebUI。
以新版Flink来执行任务失败后的批次工作恢复,使用者将会明显感受到时间缩短,在之前的版本,批次处理作业的恢复功能,会取消所有任务并重新开始所有工作,而在Flink 1.9中,使用者可以配置Flink,限制恢复工作仅限在同一个故障转移区域(Failover Region)进行。故障转移区域是指,由工作管线的资料交换所相连接的一系列任务。
Flink 1.9还加入了一个全新的函式库,可以使用批次处理DataSet API读取、写入和修改状态快照(Snapshot),而这代表使用者现在可从外部系统,像是外部资料库读取Flink资料,并将其转换成储存点,用于引导Flink工作状态。而储存点中的状态,可以使用任何Flink批次API查询,使用者可以分析状态模式或是状态的不一致,以审核或是除错应用程式。
另外,阿里巴巴将内部的Flink专案Blink贡献给Apache Flink之后,Flink专案现在正进行整合Blink查询最佳化程式(Optimizer)以及Runtime的工作,目前社群正将flink-table模组重构成更小的模组,而这将明确分离Java、Scala API模组,以及最佳化程式、Runtime模组,让之间有更明确定义的介面。
Flink 1.9现在同时存在两个可插拔的查询处理器,以执行Table API以及SQL叙述,分别为Flink之前版本的处理器以及基于Blink的查询处理器,虽然Blink查询处理器提供更好的SQL支援以及功能,但是由于整合尚未完成,Flink 1.9目前的预设仍然使用旧的处理器,官方也建议在正式生产环境,先不要使用Blink的查询处理器。
经过社群讨论之后,Flink WebUI使用Angular最新的稳定版重新建置,从Angular的版本从1.x大跳跃到了7.x,Flink 1.9预设使用新的WebUI,但是用户想使用旧版本,Flink 1.9中也有提供连结可供切换。