更新时间:2024-03-18 GMT+08:00

创建脚本

功能介绍

创建一个新脚本,当前支持的脚本类型有DLI SQL、Flink SQL、RDS SQL、Spark SQL、Hive SQL、DWS SQL、Shell、Presto SQL、ClickHouse SQL、HetuEngine SQL、Python、Spark Python和Impala SQL。

URI

  • URI格式

    POST /v1/{project_id}/scripts

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

    参数名

    是否必选

    参数类型

    说明

    project_id

    String

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

请求参数

表2 请求Header参数

参数名

是否必选

参数类型

说明

workspace

String

工作空间id。

  • 如果不设置该参数,默认查询default工作空间下的数据。
  • 如果需要查询其他工作空间的数据,需要带上该消息头。
表3 Script参数说明

参数名

是否必选

参数类型

说明

name

String

脚本名称,只能包含五种字符:英文字母、数字、中文、中划线和点号,且长度小于等于128个字符。脚本名称不能重复。

type

String

脚本类型,包含:

  • FlinkSQL
  • DLISQL
  • SparkSQL
  • HiveSQL
  • DWSSQL
  • RDSSQL
  • Shell
  • PRESTO
  • ClickHouseSQL
  • HetuEngineSQL
  • PYTHON
  • ImpalaSQL
  • SparkPython

content

String

脚本内容,最大支持4M。

directory

String

脚本所在目录路径。

通过DataArts Studio管理控制台 > 数据开发,左侧列表选择数据开发 > 脚本开发。在脚本的目录树上,可以查看到当前已经创建的目录,默认在根目录/。

connectionName

String

脚本关联的连接名称。当type参数值为DLISQL、SparkSQL、HiveSQL、DWSSQL、Shell、PRESTO、ClickHouseSQL、HetuEngineSQL、RDSSQL、ImpalaSQL、PYTHON、SparkPython其中之一时,这个参数是必选的。用户可以通过查询连接列表(待下线)接口获取当前系统中已经存在的连接。默认值为空。

database

String

执行SQL语句所关联的数据库,当type参数值为DLISQL、SparkSQL、HiveSQL、DWSSQL、PRESTO、ClickHouseSQL、ImpalaSQL、HetuEngineSQL、RDSSQL其中之一时,才支持此参数。

  • type为DLI SQL时,可以通过《数据湖探索 API参考》的“查询所有数据库”接口获取数据库信息。
  • type为其他类型的时候,必选。

queueName

String

DLI资源队列名称,当type参数值为DLI SQL时,才支持此参数。可以通过《数据湖探索 API参考》的“查询队列列表接口”获取队列信息。默认值为空。

configuration

map <String,Object>

用户定义适用于此作业的配置参数,当type参数值为DLI SQL时,才支持此参数。当前支持的配置项列表请参考《数据湖探索 API参考》的“提交SQL作业接口”的conf参数说明。默认值为空。

description

String

描述,长度不能超过255个字符。

owner

String

责任人名称

targetStatus

String

在开启审批开关后,需要填写该字段。表示创建脚本的目标状态,有三种状态:SAVED、SUBMITTED和PRODUCTION,分别表示脚本创建后是保存态,提交态,生产态。

  • 保存态表示脚本仅保存,无法调度运行,需要提交并审核通过后才能运行。
  • 提交态表示脚本保存后会自动提交,需要审核通过才能运行。
  • 生产态表示脚本跳过审批环节,创建后可以直接运行。注意:只有工作空间的管理员用户才能创建生产态的脚本。

approvers

List<JobApprover>

在开启审批开关后,需要填写该字段,表示脚本审批人,参考表4

表4 审批人属性说明

参数名

是否必选

参数类型

说明

approverName

String

审批人名称。

响应参数

请求示例

创建一个脚本名称为echoTimeShell的脚本,脚本类型为Shell,脚本内容为echo a,脚本关联的连接名称为con。
POST /v1/b384b9e9ab9b4ee8994c8633aabc9505/scripts
{
    "name": "echoTimeShell",
    "type": "Shell",
    "content": "echo a",
    "queueName": "default",
    "connectionName": "con"
}
开启审批开关情况下,创建一个脚本。
POST /v1/b384b9e9ab9b4ee8994c8633aabc9505/scripts
{
    "name": "echoTimeShell",
    "type": "Shell",
    "content": "echo a",
    "queueName": "default",
    "connectionName": "con",
    "targetStatus":"SUBMITTED",
    "approvers": [
      {
        "approverName": "userName1"
      },
      {
        "approverName": "userName2"
      }
    ]
}

响应示例

  • 成功响应

    HTTP状态码 204

  • 失败响应

    HTTP状态码 400

    {
        "error_code":"DLF.6247",
        "error_msg":"The script type is not specified."
    }

状态码

状态码请参见状态码