Flink SQL 流批一体:从 SQL 到执行计划,优化器如何工作?Flink SQL 的“流批一体”经常被误解为“同一套 SQL 在流和批上跑出相同的结果”。这个理解只对了一半:语义统一不等于执行统一。这篇文章拆解 Blink Planner 的编译链路,用两个理论锚点(增量视图维护、Exchange 算子)解释流和批为什么必然在物理层分叉,并用四个带完整 EXPLAIN 输出的对照实验回答三个问题:同一条聚合 SQL 的执行计划如何分叉、COUNT(DISTINCT) 在倾斜负载下慢一个数量级的结构性根源到底是什么(本文给出可代入参数的状态基数模型与推演对比表)、以及