目录
语法
EXPLAIN [EXTENDED|DEPENDENCY|AUTHORIZATION] query
执行计划一共有三个部分:
- 这个语句的抽象语法树
- 这个计划不同阶段之间的依赖关系
- 对于每个阶段的详细描述
基本信息
在查询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
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 2486 Data size: 497215 Basic stats: COMPLETE Column stats: NONE
Reduce Output Operator
key expressions: _col0 (type: string), _col1 (type: string)
sort order: ++ // 是否排序 +表示正序,- 表示倒序
Map-reduce partition columns: _col0 (type: string), _col1 (type: string)
Statistics: Num rows: 2486 Data size: 497215 Basic stats: COMPLETE Column stats: NONE
value expressions: _col2 (type: bigint)
Reduce Operator Tree: // Reduce阶段操作
Group By Operator
aggregations: count(VALUE._col0)
keys: KEY._col0 (type: string), KEY._col1 (type: string)
mode: mergepartial
outputColumnNames: _col0, _col1, _col2
Statistics: Num rows: 1243 Data size: 248607 Basic stats: COMPLETE Column stats: NONE
File Output Operator
compressed: false // 是否压缩
Statistics: Num rows: 1243 Data size: 248607 Basic stats: COMPLETE Column stats: NONE
table:
input format: org.apache.hadoop.mapred.TextInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe // 序列化与反序列化类型
Stage: Stage-0
Fetch Operator
limit: -1
Processor Tree:
ListSink