更新时间:2022-12-14 GMT+08:00

提交SQL语句

功能介绍

在MRS集群中提交并执行一条SQL语句。

URI

  • URI格式

    POST /v2/{project_id}/clusters/{cluster_id}/sql-execution

  • 参数说明
    表1 URI参数说明

    名称

    是否必选

    参数类型

    说明

    project_id

    String

    项目编号。获取方法,请参见获取项目ID

    cluster_id

    String

    集群ID。获取方法,请参见获取集群ID

请求消息

表2 请求参数说明

参数名

是否必选

参数类型

说明

sql_type

String

SQL类型。目前仅支持“presto”类型的SQL。

说明:
  • 只有包含Presto组件的集群才能提交执行“presto”类型的SQL。
  • 仅MRS 2.0.6版本的MRS 2.0.6.1补丁、MRS 2.1.0版本的MRS 2.1.0.7补丁、MRS 3.1.2及之后版本集群支持。

sql_content

String

待执行的SQL语句。

说明:

目前仅支持执行单条语句,语句中不包含“;”。

database

String

执行SQL所在的数据库,默认为default。

archive_path

String

SQL执行结果的转储文件夹。

说明:

只有select语句才会转储查询的结果。当前仅支持转储到OBS中。

响应参数

状态码: 200

表3 响应参数说明

参数名

参数类型

说明

id

String

SQL的执行ID。执行select、showdesc语句时才会生成ID,其他操作ID为空。

message

String

错误信息。

statement

String

执行的SQL语句。

status

String

SQL的执行状态。

  • QUEUED
  • WAITING_FOR_RESOURCES
  • PLANNING
  • STARTING
  • RUNNING
  • FINISHING
  • FINISHED
  • FAILED

result_location

String

SQL查询语句的最终结果归档路径。

说明:

只有select的语句才会将SQL的执行结果转储到result_location中。

content

Array<Array<String>>

SQL的执行结果。

说明:

只有非select的语句才会在content中返回结果,如果SQL中没有结果,content为空。

状态码: 400

表4 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

请求示例

提交SQL语句请求示例

POST https://{endpoint}/v2/{project_id}/clusters/{cluster_id}/sql-execution

{
  "sql_type" : "presto",
  "sql_content" : "show tables",
  "database" : "default",
  "archive_path" : "obs://my-bucket/path"
}

响应示例

状态码: 200

提交SQL语句成功

{
  "id" : "20190909_011820_00151_xxxxx",
  "statement" : "show tables",
  "status" : "FINISHED",
  "result_location" : " obs://my_bucket/uuid_date/xxxx.csv",
  "content" : [ [ "t1", null ], [ null, "t2" ], [ null, "t3" ] ]
}

状态码: 400

提交SQL语句失败

{
  "error_code" : "MRS.0011",
  "message" : "提交SQL到Executor上失败,集群ID为xxxx"
}

状态码

状态码请参见状态码

错误码

请参见错误码