- Blink做到了真正的流批统一,即将批看做是特殊的流,把处理批的API和处理流的API做成了一样的。也就是说不管是批数据还是流数据,底层统统都是DataStream。所以使用Blink作为table planner的程序,Table和DataSet是不能相互转换的。
- 由于第一条原因的关系,Blink planner是不支持BatchTableSource的,它只支持StreamTableSource。
- Blink Planner和Old Planner的FilterableTableSource是不兼容的。Old Planner会下推
PlannerExpression到FilterableTableSource。而Blink planner下推的是Expression。 - 基于String的键值对配置项只能用于Blink Planner
- 两种planner的PlannerConfig是不同的。
- Blink Planner会优化多个sink到同一个TableEnvironment和StreamTableEnvironment。而Old Planner会为不同的sink优化到自己的DAG中,也就是说有几个sink就有几个DAG。
- Old Planner 不支持 catalog统计,Blink支持。
- Old Planner 不支持版本表(versioned Table)。版本表类似HBASE中版本表的意思,每个key可以记住过去的几个值。
以上翻译自Flink1.12官网,仅供参考。
Flink中Blink Planner与Old Planner对比
博客介绍了Flink中Blink做到流批统一,底层均为DataStream,使用Blink作为table planner时Table和DataSet不能相互转换。还对比了Blink Planner和Old Planner在多方面的差异,如对TableSource的支持、FilterableTableSource兼容性、配置项、PlannerConfig、sink优化、catalog统计及版本表支持等。
673





