Help Center> MapReduce Service> API Reference> API V2> SQL APIs> Submitting an SQL Statement

Submitting an SQL Statement

Function

This API is used to submit and execute an SQL statement in an MRS cluster. MRS 1.9.2 or later supports this API.

URI

  • Format

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

  • Parameter description
    Table 1 URI parameter description

    Parameter

    Mandatory

    Description

    project_id

    Yes

    Project ID. For details on how to obtain the project ID, see Obtaining a Project ID.

    cluster_id

    Yes

    Cluster ID. For details on how to obtain the cluster ID, see Obtaining a Cluster ID.

Request

Table 2 Request parameter description

Parameter

Mandatory

Type

Description

sql_type

Yes

String

SQL type. Currently, only the SQL of the presto type is supported.

NOTE:

The SQL of the presto type can be submitted and executed only in clusters containing the Presto component.

sql_content

Yes

String

SQL statement to be executed

NOTE:

Currently, only a single SQL statement can be executed at a time, and the statement cannot contain a semicolon (;).

database

No

String

Database where the SQL statement to be executed resides. The default value is default.

archive_path

No

String

Directory for storing the dumped SQL execution results.

NOTE:

Only the select statement dumps query results. Currently, the query results can be dumped only to OBS.

Response

Table 3 Response parameter description

Parameter

Type

Description

sql_id

String

SQL ID

message

String

Error message

statement

String

Executed SQL statement

status

String

SQL execution status

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

result_location

String

Path for archiving the final results of the SQL query statement.

NOTE:

Only the select statement dumps the SQL execution results to result_location.

content

Array

SQL execution result

NOTE:

Only non-select statements return results in content. If the SQL statement does not return results, content is empty.

Example

  • Example request
    {
        "sql_type":"presto", 
        "sql_content":"show tables", 
        "database":"default", 
        "archive_path":"obs://my-bucket/path"
     }
  • Example response
    • Example of a successful response
      {
          "sql_id":"20190909_011820_00151_xxxxx", 
          "statement":"show tables",
          "status":"FINISHED",
          "result_location":" obs://my_bucket/uuid_date/xxxx.csv",  
          "content":[
             ["t1"],["t2"],["t3"]   
            ] 
       }
    • Example of a failed response
      { 
          "sql_id":"20190909_011820_00151_xxxxx", 
          "message":"line 1:1: Table 'hive.default.t1' already exists",
          "statement":"show tables",
          "status":"FAILED"
       }

Status Code

For details about status codes, see Status Codes.