提交SQL作业(推荐)
功能介绍
该API用于通过执行SQL语句的方式向队列提交作业。
作业包含以下类型:DDL、DCL、IMPORT、QUERY和INSERT。其中,IMPORT与导入数据(废弃)的功能一致,区别仅在于实现方式不同。
另外,用户可使用其他API来对作业进行查询和管理。具体操作有:

该API当响应消息中“job_type”为“DCL”时,为同步操作。
调试
您可以在API Explorer中调试该接口。
URI
- URI格式:
- 参数说明
表1 URI参数 参数名称
是否必选
参数类型
说明
project_id
是
String
参数解释:
项目编号,用于资源隔离。获取方式请参考获取项目ID。
示例: 48cc2c48765f481480c7db940d6409d1
约束限制:
无
取值范围:
只能由英文字母和数字组成,且长度为[1-64]个字符。
默认取值:
无
请求消息
参数名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
sql |
是 |
String |
参数解释: 待执行的SQL语句。 约束限制: 无 取值范围: 无 默认取值: 无 |
currentdb |
否 |
String |
参数解释: SQL语句执行所在的数据库。当创建新数据库时,不需要提供此参数。 约束限制: 无 取值范围: 只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 默认取值: 无 |
current_catalog |
否 |
String |
参数解释: 待提交作业的表的默认catalog。不填时默认使用DLI catalog。 约束限制: 无 取值范围: 只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 默认取值: dli:默认使用DLI catalog。 |
queue_name |
否 |
String |
参数解释: 待提交作业的队列名称。 约束限制: 无 取值范围: 名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 默认取值: 无 |
conf |
否 |
Array of Strings |
参数解释: 用户以“key/value”的形式设置用于此作业的配置参数。 约束限制: 无 取值范围: 目前支持的配置项请参考表3。 默认取值: 无 |
tags |
否 |
Array of Objects |
参数解释: 作业的标签。具体请参考表4。 约束限制: 无 取值范围: 无 默认取值: 无 |
engine_type |
否 |
String |
参数解释: 选择执行作业的引擎类型。 约束限制: 无 取值范围: 可以选择spark引擎或hetuEngine。默认是spark。
了解引擎的详细类型和说明请参考DLI简介。 默认取值: spark |
响应消息
参数名称 |
是否必选 |
参数类型 |
说明 |
---|---|---|---|
is_success |
是 |
Boolean |
参数解释: 请求执行是否成功。“true”表示请求执行成功。 取值范围: 无 |
message |
是 |
String |
参数解释: 系统提示信息,执行成功时,信息可能为空。 取值范围: 无 |
job_id |
是 |
String |
参数解释: 此SQL语句将生成并提交一个新作业,返回此作业的ID,可用于获取作业状态和作业结果。 取值范围: 无 |
job_type |
是 |
String |
参数解释: 作业类型。 取值范围: 包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT。 |
schema |
否 |
Array of Map |
参数解释: 当语句类型为DDL时,返回其结果的列名称及类型。 取值范围: 无 |
rows |
否 |
Array of objects |
参数解释: 当语句类型为DDL,且dli.sql.sqlasync.enabled=false时,直接返回其执行结果。但是最多只能返回1000行。 如果超过1000行,请通过异步方式获取结果。即,提交作业时配置 xxxx = true, 然后从DLI配置的作业桶中获取结果。结果在作业桶上的路径可以通过ShowSqlJobStatus接口返回值中的result_path来获取。结果的全量数据会自动导出到作业桶。 取值范围: 无 |
job_mode |
否 |
String |
参数解释: 作业执行模式:
取值范围: 无 |
请求示例
提交SQL作业,该作业执行的数据库为db1、队列为default,并为该作业设置标签workspace=space1;jobName=name1。
{ "currentdb": "db1", "sql": "desc table1", "queue_name": "default", "conf": [ "dli.sql.shuffle.partitions = 200" ], "tags": [ { "key": "workspace", "value": "space1" }, { "key": "jobName", "value": "name1" } ] }
响应示例
{ "is_success": true, "message": "", "job_id": "8ecb0777-9c70-4529-9935-29ea0946039c", "job_type": "DDL", "job_mode":"sync", "schema": [ { "col_name": "string" }, { "data_type": "string" }, { "comment": "string" } ], "rows": [ [ "c1", "int", null ], [ "c2", "string", null ] ] }
错误码
调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码。