2016-11-07 17 views
0

Impalaクエリの「Explain」を実行し、次の結果が得られました。私はそれを理解しようとしている:実行順序はちょうどボトムアップですか?次に、実行順序でない場合の数字の意味は何ですか?ありがとう!Impalaクエリの実行順序

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 

答えて

0

数値は、プランナーが使用する単なるPlannodeIdです。実行順序は論理的にボトムアップですが、実行時にプラン・ツリー全体がプラン・フラグメントの断片に分割され、同時に1つのコーディネーターによって分散されて並行して実行されます。インパラのプロファイルWebページを参照すると、デフォルトでポート25000をリッスンして動的実行プロセスを確認できます。

set explain_level=3;は完全に細分化された計画結果を得ます。