数据仓库与 OLAPExecution Engine
执行引擎 是什么?
Hive 只负责解析和优化,真正跑的是 MR / Tez / Spark
类比:设计师出图纸,施工队负责盖楼
三种引擎
同一套 SQL,换引擎性能差好几倍。
- MapReduce:最老,每个阶段都落盘,慢但稳,现在基本不用
- Tez:把多个 MR 合成一个 DAG,中间结果不落 HDFS,Hive 3.x 默认
- Spark:内存计算,复杂多步查询最快,很多团队直接切到 Spark SQL
Hive 自己做了什么
解析 SQL → 生成逻辑计划 → 优化(分区裁剪、谓词下推、join 重排、列裁剪)→ 生成物理计划。这部分工作在 `hive.execution.engine` 换引擎时是不变的,所以 SQL 写法对性能的影响是通用的。
怎么选
还在用 Hive 的老集群,把引擎从 MR 换成 Tez 通常能快 2~3 倍,是性价比最高的优化。新项目一般直接用 Spark SQL 或 Trino,Hive 只留 Metastore。