Hive提供EXPLAIN命令,显示查询的执行计划。语法如下:
EXPLAIN [EXTENDED] query
EXPLAIN语句使用EXTENDED,提供执行计划关于操作的额外的信息。这是典型的物理信息,如文件名。
Hive查询被转换成序列(这是一个有向无环图)阶段。这些阶段可能是mapper/reducer阶段,或者做metastore或文件系统的操作,如移动和重命名的阶段。 EXPLAIN的输出包括三个部分:
查询的抽象语法树
执行计划计划的不同阶段之间的依赖关系
每个场景的描述
场景的描述,显示了与元数据相关操作的操作序列。元数据会包括FilterOperator的过滤器表达式,或SelectOperator的查询表达式,或FileSinkOperator的文件输出名字。
例子
考虑下面的EXPLAIN查询:
EXPLAIN
FROM src INSERT OVERWRITE TABLE dest_g1 SELECT src.key, sum(substr(src.value,4)) GROUP BY src.key;
语句的输出包含下面的部分
抽象语法树