批量执行Spark SQL。
接口说明
- 地域的公网接入地址:
adb.<region-id>.aliyuncs.com
。示例:adb.cn-hangzhou.aliyuncs.com
。 - 地域的 VPC 接入地址:
adb-vpc.<region-id>.aliyuncs.com
。示例:adb-vpc.cn-hangzhou.aliyuncs.com
。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
adb:ExecuteSparkWarehouseBatchSQL | none | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Agency | string | 否 | 客户标记提交的客户端类型,可以是任意合法的纯英文字符串,如 Aliyun Dataworks。 | Dataworks。 |
DBClusterId | string | 是 | 集群 ID。 | amv-bp11q28kvl688**** |
ResourceGroupName | string | 是 | 资源组名称。 | test |
Query | string | 是 | 需要批量执行的 SQL 语句。多个 SQL 之间用英文分号(;)分隔。 执行引擎会按照顺序在同一个会话中依次执行这些 SQL。 | CREATE TABLE user(id INT, name STRING); INSERT INTO t VALUE(1, 'Bob'); SELECT * FROM t; |
Schema | string | 否 | 数据库名称。 | adb_demo |
ExecuteResultLimit | long | 否 | 抽取部分数据写入 OSS。单位为 MB,默认值为 4096。由于压缩后文件的大小难以准确估计,实际写入到 OSS 中的数据会小于此处的配置值。 | 4096 |
ExecuteTimeLimitInSeconds | long | 否 | 最大允许可执行时长,单位为秒(s)。如果一组 SQL 在提交后长时间未能执行成功,会被标记为超时失败。默认值为 360000 秒即为 100 小时。 | 3600000 |
RuntimeConfig | string | 否 | 执行 SQL 时的额外运行参数,输入结构需要是一个 JSON 字符串。 这里允许写入所有 Apache Spark 官方文档中的运行时 SQL 配置。 同时此处还包含了用于当前 API 的控制参数,对写 OSS 的行为进行控制,说明如下: ‒ ‒ ‒ ‒ | { "OSSURL": "oss://testBucketname/" } |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "CBE843D8-964D-5EA3-9D31-822125611B6E",
"Data": {
"QueryId": "sq172352176****",
"QueryState": "RUNNING",
"QuerySubmissionTime": 1723521767000,
"QueryStartTime": 1723521767000,
"QueryEndTime": 1723521767000,
"Schema": "default",
"Uid": 0,
"DBClusterId": "amv-bp17s73f016****",
"ResourceGroupName": "spark_rg",
"Query": "SELECT * FROM db.tb",
"Statements": [
{
"ResultUri": "oss://yourbucket/result.json",
"EndTime": 1723521767000,
"AppId": "s20240122jsdx****",
"StatementId": "sq1723521767****-0001",
"State": "RUNNING",
"StartTime": 1723521767000,
"Error": "table is not found",
"Code": "SELECT 100",
"Result": "+---+-----+\n|age| name|\n+---+-----+\n| 14| Tom|\n| 23|Alice|\n+---+-----+"
}
],
"ErrMessage": "schema is not found"
}
}
错误码
HTTP status code | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | Spark.InvalidParameter | Invalid parameter value: %s | 输入参数不正确: %s。 |
400 | Spark.InvalidState | The object of the operation is in an invalid state: %s | 操作对象处于非合法状态。 |
404 | Spark.ObjectNotFound | The object is not found. More information: %s | 操作对象不存在。关联信息:%s。 |
500 | Spark.ServerError | The Spark control component system encountered an error, please create a ticket to solve the problem or concat the supported engineer on duty. Error message: %s | Spark管控组件系统遇到错误,请提交工单,或联系值班工程师。 |
访问错误中心查看更多错误码。