概要

EXPLAIN [ ( option [, ...] ) ] statement

这里Option可以时如下几个:

    FORMAT { TEXT | GRAPHVIZ }
    TYPE { LOGICAL | DISTRIBUTED | VALIDATE }

描述

根据选项不同,可以实现如下几个功能:

  • 显示查询语句的逻辑计划
  • 显示查询语句的分布式执行计划
  • 验证一个查询语句的合法性

使用TYPE DISTRIBUTED选项来显示计划分片。每个计划分片都在单个或多个 Presto 节点上执行。分片之间的间隔表示 Presto 节点间的数据交换。分片类型说明分片是如何被 Presto 节点执行的,以及数据是如何在分片间分布的。 分片类型如下:

  • SINGLE, 分片在单个节点上执行;
  • HASH,分片在固定个数的节点上执行,输入数据在这些节点上通过 Hash 函数分布;
  • ROUND_ROBIN,分片在固定个数的节点上执行,输入数据在这些节点上通过ROUND_ROBIN的模式分布;
  • BROADCAST,分片在固定个数的节点上执行,处理数据通过广播的方式分发到所有节点;
  • SOURCE,分片在存储数据的节点上执行。

示例

  • 示例 1:
    PREPARE my_select1 FROM
    SELECT name FROM nation;
    --- 执行预编译查询
    EXECUTE my_select1;
    示例2
  • 示例 2:
    PREPARE my_select2 FROM
    SELECT name FROM nation WHERE regionkey = ? and nationkey < ?;
    --- 执行预编译查询
    EXECUTE my_select2 USING 1, 3; 
    --- 上述语句等价与执行如下查询:
    SELECT name FROM nation WHERE regionkey = 1 AND nationkey < 3;