目录
语法
EXPLAIN [EXTENDED|CBO|AST|DEPENDENCY|AUTHORIZATION|LOCKS|VECTORIZATION|ANALYZE] query
AUTHORIZATION 从 HIVE 0.14.0 通过 HIVE-5961开始支持,VECTORIZATION 从 Hive 2.3.0 通过HIVE-11394开始支持. LOCKS is supported from Hive 3.2.0 via HIVE-17683.
执行计划(最多)一共有三个部分:
- 这个语句的抽象语法树
- 这个计划不同阶段之间的依赖关系
- 对于每个阶段的详细描述
基本信息
在查询sql前面添加EXPLAIN关键字,即可以展示sql基本信息,包含:
- 作业的依赖关系图,即STAGE DEPENDENCIES;
- 每个作业的详细信息,即STAGE PLANS。
例如sql:
EXPLAIN
SELECT default_pay_class_name,
default_sub_pay_class_name,
COUNT(1)
FROM mart_fspinno.rpt_maiton_cashier_pay_d
WHERE partition_date='2020-01-18'
AND default_pay_class_name='xx'
GROUP BY 1,2
执行计划如下:
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1
STAGE PLANS:
Stage: Stage-1
Map Reduce // 当前的计算引擎,为MR
Map Operator Tree: // Map阶段操作
TableScan // 表扫描操作
alias: rpt_maiton_cashier_pay_d // 表示对表rpt_maiton_cashier_pay_d 进行扫描
Statistics: Num rows: 4973 Data size: 994632 Basic stats: COMPLETE Column stats: NONE // 预估的统计信息
Filter Operator // 过滤操作
predicate: (default_pay_class_name = 'xx') (type: boolean)
Statistics: Num rows: 2486 Data size: 497215 Basic stats: COMPLETE Column stats: NONE
Select Operator // 列选择,之前操作结果上进行投影
expressions: default_pay_class_name (type: string), default_sub_pay_class_name (type: string) // 需要投影的列
outputColumnNames: _col0, _col1
Statistics: Num rows: 2486 Data size: 497215 Basic stats: COMPLETE Column stats: NONE
Group By Operator // 之前执行结果进行分组聚合
aggregations: count(1)
keys: _col0 (type: string), _col1 (type: string) // 分组的列
mode: hash
out

本文介绍了Hive的执行计划,包括语法、基本信息、扩展信息和依赖信息。通过添加EXPLAIN关键字,可以查看查询的依赖关系图和详细阶段计划。扩展信息提供了每个表的HDFS读取路径和表配置等更多细节。了解这些有助于优化Hive查询性能。
最低0.47元/天 解锁文章
1552

被折叠的 条评论
为什么被折叠?



