Impala 查询快,不是因为它省略了 SQL 优化,也不是简单地“绕过 MapReduce”。真正的区别在执行形态:Daemon 常驻、元数据常驻、查询被切成并行 Fragment,数据通过 Exchange 在节点间流动,Scan、Join 和 Aggregate 尽可能组成流水线,并由 Runtime Filter 在运行期缩小扫描范围。
本文以 Impala 4.5.0 为基线,从一条 SQL 进入 impalad 开始,追到 RowBatch 穿过执行树并回到客户端。源码路径均相对于 Impala 仓库。
先建立进程视图
Impala 集群的核心角色不是传统意义上...