更新时间:2024-08-16 GMT+08:00

提交SQL语句

功能介绍

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

接口约束

无。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

  • URI格式

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

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

    名称

    是否必选

    参数类型

    说明

    project_id

    String

    参数解释:

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

    约束限制:

    不涉及

    取值范围:

    只能由英文字母和数字组成,且长度为[1-64]个字符。

    默认取值:

    不涉及

    cluster_id

    String

    参数解释:

    集群ID。如果指定集群ID,则获取该集群做过补丁更新的最新版本元数据。获取方法,请参见获取集群ID

    约束限制:

    不涉及

    取值范围:

    只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

    默认取值:

    不涉及

请求参数

表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、show和desc语句时才会生成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

参数解释:

错误描述。

取值范围:

不涉及

请求示例

提交一个presto类型的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"
}

状态码

状态码请参见状态码

错误码

请参见错误码