Flink SQL 的执行流程是一个将声明式 SQL 语句转化为 Flink Runtime 可执行代码的过程。这个过程主要依赖于 Apache Calcite 框架以及 Flink 自研的优化规则(Blink Planner)。 整个流程可以概括为以下几个核心步骤: SQL -> 解析 (Parser) -> 验证 (Validator) -> 优化 (Optimizer) -> 代码生成/转换 (CodeGen/Translation) -> 执行图 (JobGraph) -> 提交运行 下面是详细的流程图解和步骤解析: --- 1. 整体流程图 (High-Level) --- 2. 详细步骤解析 第一步:SQL 解析 (Parser) 输入:用户编写的 SQL 字符串。 工具:Apache Calcite Parser。 动作:进行词法分析和语法分析。 检查 SQL 语法是否正确(例如关键字拼写、逗号位置等)。 输出:AST (抽象语法树),在 Calcite 中表现为 树。此时 Flink 还不理解表名或列名的具体含义,只知道这是一个查询结构。 第二步:SQL 验证 (...