我运行了impala查询的“explain”,得到了以下结果。我试图理解:执行命令是自下而上的吗?如果不是执行顺序,那么数字是什么意思?谢谢!
Estimated Per-Host Requirements: Memory=2.08GB VCores=2
WARNING: The following tables are missing relevant table and/or column statistics.
my_db.v1, my_db.v2
10:EXCHANGE [UNPARTITIONED]
|
06:ANALYTIC
| functions: last_value(my_v_id), last_value(my__arrival_ts), last_value(version)
| partition by: id, trunc(my__arrival_ts, 'D')
| order by: my__arrival_ts ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
|
05:SORT
| order by: id ASC NULLS FIRST, trunc(my__arrival_ts, 'D') ASC NULLS FIRST, my__arrival_ts ASC
|
09:EXCHANGE [HASH(id,trunc(my__arrival_ts, 'D'))]
|
04:ANALYTIC
| functions: last_value(build)
| partition by: version
| order by: my__arrival_day ASC
| window: RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
|
03:SORT
| order by: version ASC NULLS FIRST, my__arrival_day ASC
|
08:EXCHANGE [HASH(version)]
|
02:HASH JOIN [INNER JOIN, BROADCAST]
| hash predicates: v1__fk = v1.id
| runtime filters: RF000 <- v1.id
|
|--07:EXCHANGE [BROADCAST]
| |
| 00:SCAN HDFS [my_db.v1]
| partitions=1791/2994 files=1956 size=125.30MB
| predicates: my__is_external
|
01:SCAN HDFS [my_db.vm]
partitions=2058/2058 files=2094 size=9.98GB
runtime filters: RF000 -> v1__fk
1条答案
按热度按时间dwthyt8l1#
这些数字只是计划员使用的plannodeid。执行顺序在逻辑上是自底向上的,但在运行时,整个计划树被分解为多个计划片段,这些片段由一个协调器并发执行,并且希望是分布式执行。您可以参考impala的配置文件网页,默认情况下,该网页监听端口25000以查看动态执行过程。
set explain_level=3;
得到完整的计划结果。