跳转至

JOB

该部分的语法是查看一条SQL在AIR中的执行过程产生的相关上下文信息,包括SQL执行过程中各个阶段的耗时分析等信息。

EXPLAIN SQL

用于描述SQL语句的执行计划。since AIR 1.0

  • 语法说明
EXPLAIN [ WITH 'explainKey' ] {sqlStatement}
  • 参数说明
关键字 类型 说明
explainKey SQL字符串,选填 若指定,则表示查看执行计划的具体某一个阶段,若不指定,则查询所有。支持的阶段类型可以参考SHOW JOB INFO返回的结果;
sqlStatement 查询SQL片段,必填 需要解释的查询SQL片段
  • 使用示例
# 展示一条SQL执行的所有信息,目前仅有原始的RelNode信息和修改后的信息
explain select * from tableName;

# 展示查询语句的方言转换
explain with "DIALECT" select * from xxx;

# 展示查询语句的逻辑执行计划
explain with "LOGICAL" select * from xxx;

SHOW JOBS

since AIR 1.0

SQL Job的概要信息查询,通过条件查询,条件之间通过AND 或OR 连接,返回的结果是列表。

  • 语法说明
SHOW JOBS WHERE field1 = 'conditionA' and field2 = 'conditionB' or field3 = 'condition3' | order by ASC  | offset x limit x ... 
  • 参数说明

可以使用where子句来设定查询Job状态的筛选条件,关键字不区分大小写。但不支持分组聚合等其它非where子句的语法。

条件 说明
id jobId
jobState job状态
startTime 开始时间
endTime 结束时间
isAccelerate 是否加速
executionEngine 执行引擎,如果执行引擎为空结果为"NULL"字符串
sqlContent sql语句
client 客户端
nodeId 虚拟化引擎Server端id
clusterId 查询指定clusterId下的Job
externalId 如果当前SQL使用外部引擎执行,且外部引擎能够返回JobID,则externalId为该JobId,用于关联外部引擎的JobID,方便调试和分析。
  • 使用示例
show jobs;
show jobs where id='38cc62f6-ceca-4dec-ae2d-585d51ebbb01';
show jobs where state='COMPLETED' and sqlContent like '%select%'
  • 返回结果
id     | state | startTime | endTime |   isAccelerate | executionEngine | sqlContent 
-------+-------+-----------+---------+----------------+-----------------+-------
_______|_______|___________|_________|________________|_________________|_______

查询状态返回的结果包含7个字段,分别为:

  1. id Sql job id
  2. 执行状态 [state]
  3. 开始时间 [startTime]
  4. 结束时间 [endTime]
  5. 是否命中RP [isAccelerate]
  6. 执行引擎 [executionEngine]
  7. 执行SQL [sql]

SHOW JOB INFO

显示某个SQL JOB执行的明细信息及SQL执行过程中的相关上下文信息,例如各阶段的耗时,是否命中RP,候选RP列表等等,包括SQL异常后的相关异常堆栈信息。

  • 语法说明
SHOW JOB INFO <jobId> 
  • 使用示例
show job info '53f7dc00-748b-4f8c-afd5-677b7cac3dc1'