云服务器内容精选

  • 响应示例 { "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 ] ] }
  • 响应消息 表5 响应参数 参数名称 是否必选 参数类型 说明 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 作业执行模式: async:异步 sync:同步
  • 请求示例 提交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" } ] }
  • 请求消息 表2 请求参数 参数名称 是否必选 参数类型 说明 sql 是 String 待执行的SQL语句。 currentdb 否 String SQL语句执行所在的数据库。当创建新数据库时,不需要提供此参数。 queue_name 否 String 待提交作业的队列名称,名称只能包含数字、英文字母和下划线,但不能是纯数字,且不能以下划线开头。 conf 否 Array of Strings 用户以“key/value”的形式设置用于此作业的配置参数。目前支持的配置项请参考表3。 tags 否 Array of Objects 作业的标签。具体请参考表4。 engine_type 否 String 默认是spark。 表3 conf参数说明 参数名称 默认值 描述 spark.sql.files.maxRecordsPerFile 0 要写入单个文件的最大记录数。如果该值为零或为负,则没有限制。 spark.sql.autoBroadcastJoinThreshold 209715200 配置执行连接时显示所有工作节点的表的最大字节大小。通过将此值设置为“-1”,可以禁用显示。 说明: 当前仅支持运行命令ANALYZE TABLE COMPUTE statistics noscan的配置单元元存储表,和直接根据数据文件计算统计信息的基于文件的数据源表。 spark.sql.shuffle.partitions 200 为连接或聚合过滤数据时使用的默认分区数。 spark.sql.dynamicPartitionOverwrite.enabled false 当前配置设置为“false”时,DLI在覆盖写之前,会删除所有符合条件的分区。例如,分区表中有一个“2021-01”的分区,当使用INSERT OVERWRITE语句向表中写入“2021-02”这个分区的数据时,会把“2021-01”的分区数据也覆盖掉。 当前配置设置为“true”时,DLI不会提前删除分区,而是在运行时覆盖那些有数据写入的分区。 spark.sql.files.maxPartitionBytes 134217728 读取文件时要打包到单个分区中的最大字节数。 spark.sql.badRecordsPath - Bad Records的路径。 spark.sql.legacy.correlated.scalar.query.enabled false 该参数设置为true: 当子查询中数据不重复的情况下,执行关联子查询,不需要对子查询的结果去重。 当子查询中数据重复的情况下,执行关联子查询,会提示异常,必须对子查询的结果做去重处理,比如max(),min()。 该参数设置为false: 不管子查询中数据重复与否,执行关联子查询时,都需要对子查询的结果去重,比如max(),min(),否则提示异常。 表4 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 说明: 标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格,不能以_sys_开头。 value 是 String 说明: 标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格。
  • 功能介绍 该API用于通过执行SQL语句的方式向队列提交作业。 作业包含以下类型:DDL、DCL、IMPORT、QUERY和INSERT。其中,IMPORT与导入数据(废弃)的功能一致,区别仅在于实现方式不同。 另外,用户可使用其他API来对作业进行查询和管理。具体操作有: 查询作业状态 查询作业详细信息 查询作业结果-方式二(废弃) 导出查询结果 查询所有作业 取消作业(推荐) 该API当响应消息中“job_type”为“DCL”时,为同步操作。
  • 示例 请求样例: None 成功响应样例: { "is_success": true, "message": "", "job_id": "ead0b276-8ed4-4eb5-b520-58f1511e7033", "job_type": "QUERY", "row_count": 1, "input_size": 74, "schema": [ { "c1": "int" }, { "c2": "string" } ], "rows": [ [ 23, "sda" ] ] } 调用API出错后,将不会返回上述结果,而是返回错误码和错误信息,详细介绍请参见错误码。
  • 响应消息 表2 响应参数 参数 是否必选 参数类型 说明 is_success 否 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 否 String 系统提示信息,执行成功时,信息可能为空。 job_id 否 String 作业ID。 job_type 否 String 作业类型,包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT、DATA_MIGRATION、UPDATE、DELETE、RESTART_QUEUE、SCALE_QUEUE。 目前仅支持查看“QUERY”类型作业的执行结果。 row_count 否 Integer 作业结果总条数。 input_size 否 long 作业执行过程中扫描的数据量。 schema 否 Array of Map 作业结果列名称和类型。 rows 否 Array of objects 作业结果集。
  • URI URI格式: GET/v1.0/{project_id}/jobs/{job_id}?page-size={size}¤t-page={page_number}&queue-name={queue_name} 参数说明 表1 URI 参数 名称 是否必选 说明 project_id 是 项目编号,用于资源隔离。获取方式请参考获取项目ID。 job_id 是 作业ID。 page-size 否 每页显示的最大结果行数,范围: [1, 100]。默认值为:50。 current-page 否 当前页码,默认为第一页。 queue-name 否 指定获取作业结果的执行队列名称。若不指定则使用默认的系统队列
  • 响应示例 { "is_success": true, "message": "", "job_count": 1, "jobs": [ { "detail": "{\"type\":\"struct\",\"fields\":[{\"name\":\"name\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}},{\"name\":\"age\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}}]}", "duration": 17731, "end_time": 1502349821460, "input_size": 0, "job_id": "37286cc7-0508-4ffd-b636-951c8a5c75de", "job_type": "QUERY", "message": "", "owner": "tenant1", "queue_name": "queue1", "result_count": 3, "start_time": 1502349803729, "statement": "select * from t_json_002", "status": "FINISHED", "with_column_header": false } ] }
  • URI URI格式: GET /v1.0/{project_id}/jobs 参数说明 表1 URI 参数 参数名称 是否必选 参数类型 说明 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 表2 query参数 参数名称 是否必选 参数类型 说明 page-size 否 Integer 每页显示的最大作业个数,范围: [1, 100]。默认值:50。 current-page 否 Integer 当前页码,默认为第一页。 start 否 Long 用于查询开始时间在该时间点之后的作业。时间格式为unix时间戳,单位:毫秒。 end 否 Long 用于查询开始时间在该时间点之前的作业。时间格式为unix时间戳,单位:毫秒。 job-type 否 String 指定查询的作业类型,包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT、DATA_MIGRATION、UPDATE、DELETE、RESTART_QUEUE、SCALE_QUEUE,若要查询所有类型的作业,则传入ALL。 job-status 否 String 指定查询的作业状态。 job-id 否 String 指定查询的作业ID。可通过提交SQL作业(推荐)获取。 queue_name 否 String 指定queue_name作为作业过滤条件,查询在指定queue上运行的作业。 sql_pattern 否 String 指定sql片段作为作业过滤条件,不区分大小写。 order 否 String 指定作业排序方式,默认为start_time_desc(作业提交时间降序),支持duration_desc(作业运行时长降序)、duration_asc(作业运行时长升序)、start_time_desc(作业提交时间降序)、start_time_asc(作业提交时间升序)四种排序方式。 engine-type 否 String 引擎类型。 owner 否 String 提交作业的用户。 tags 否 String 指定作业标签作为过滤条件,支持多标签过滤,格式为“key=value”。 单标签场景: 例如,GET /v1.0/{project_id}/jobs?tags=k1%3Dv1 其中,“=”需要转义为“%3D”,“k1”为标签键,“v1”为标签值。 多标签场景: 如果涉及到多个标签的场景,则多个标签之间需要通过“,”号分隔,“,”号需要转义为“%2C”,例如:GET /v1.0/{project_id}/jobs?tags=k1%3Dv1%2Ck2%3Dv2 其中,“=”需要转义为“%3D”,“k1”为标签键1,“v1”为标签值1,“k2”为标签键2,“v2”为标签值2。 注意:当前只支持所有tags值整体的模糊查询,不支持精确查询。 带入query参数的URL示例如下: GET /v1.0/{project_id}/jobs?page-size={size}¤t-page={page_number}&start={start_time}&end={end_time}&job-type={QUERY}&queue_name={test}&order={duration_desc}
  • 响应消息 表3 响应参数 参数名称 是否必选 参数类型 说明 is_success 是 Boolean 执行请求是否成功。“true”表示请求执行成功。 message 是 String 系统提示信息,执行成功时,信息可能为空。 job_count 是 Integer 作业总个数。 jobs 是 Array of Objects 作业信息。具体参数请参见表4。 表4 jobs参数 参数名称 是否必选 参数类型 说明 job_id 是 String 作业ID。 job_type 是 String 作业类型。 queue_name 是 String 作业提交的队列。 owner 是 String 提交作业的用户。 start_time 是 Long 作业开始的时间。是单位为“毫秒”的时间戳。 duration 是 Long 作业运行时长,单位毫秒。 status 是 String 此作业的当前状态,包含提交(LAUNCHING)、运行中(RUNNING)、完成(FINISHED)、失败(FAILED)、取消(CANCELLED)。 input_row_count 否 Long Insert作业执行过程中扫描的记录条数。 bad_row_count 否 Long Insert作业执行过程中扫描到的错误记录数。 input_size 是 Long 作业执行过程中扫描文件的大小。 result_count 是 Integer 当前作业返回的结果总条数或insert作业插入的总条数。 database_name 否 String 记录其操作的表所在的数据库名称。类型为Import和Export作业才有“database_name”属性。 table_name 否 String 记录其操作的表名称。类型为Import和Export作业才有“table_name”属性。 with_column_header 否 Boolean Import类型的作业,记录其导入的数据是否包括列名。 detail 是 String SQL查询的相关列信息的Json字符串。 statement 是 String 作业执行的SQL语句。 message 否 String 系统提示信息。 end_time 否 Long 作业结束的时间。是单位为“毫秒”的时间戳。 tags 否 Array of Objects 作业标签。具体请参考表5。 output_byte 否 String 作业的输出字节数。 cpu_cost 否 String 作业的CPU累计使用量。 表5 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 value 是 String 标签的值。
  • 响应示例 { "is_success": true, "message": "", "job_id": "208b08d4-0dc2-4dd7-8879-ddd4c020d7aa", "job_type": "QUERY", "job_mode":"async", "queue_name": "default", "owner": "test", "start_time": 1509335108918, "duration": 2523, "status": "FINISHED", "input_size": 22, "result_count": 4, "database_name":"dbtest", "table_name":"tbtest", "detail": "{\"type\":\"struct\",\"fields\":[{\"name\":\"id\",\"type\":\"integer\",\"nullable\":true,\"metadata\":{}},{\"name\":\"name\",\"type\":\"string\",\"nullable\":true,\"metadata\":{}}]}", "statement": "select * from t1" }
  • 响应消息 表2 响应参数 参数名称 参数类型 说明 is_success Boolean 执行请求是否成功。“true”表示请求执行成功。 message String 系统提示信息,执行成功时,该值为空。 job_id String 作业ID。可通过提交SQL作业(推荐)获取。 job_type String 作业类型。包含DDL、DCL、IMPORT、EXPORT、QUERY、INSERT、DATA_MIGRATION、UPDATE、DELETE、RESTART_QUEUE、SCALE_QUEUE。 job_mode String 作业执行模式: async:异步 sync:同步 queue_name String 队列名称,用于显示作业是在该队列中提交的。 owner String 提交作业的用户。 start_time Long 作业开始的时间。是单位为“毫秒”的时间戳。 duration Long 作业运行时长,单位毫秒。 status String 此作业的当前状态,包含运行中(RUNNING)、规格变更中(SCALING)、提交中(LAUNCHING)、已完成(FINISHED)、已失败(FAILED)、已取消(CANCELLED)。 input_row_count Long Insert作业执行过程中扫描记录条数。 bad_row_count Long Insert作业执行过程中扫描到的错误记录数。 input_size Long 作业执行过程中扫描文件的大小,单位字节。 result_count Integer 当前作业返回的结果总条数或insert作业插入的总条数。 database_name String 记录其操作的表所在的数据库名称。类型为IMPORT、EXPORT和QUERY的作业才有“database_name”属性。 table_name String 记录其操作的表名称。类型为IMPORT、EXPORT和QUERY的作业才有“table_name”属性。 detail String 相关列信息的Json字符串。 statement String 作业执行的SQL语句。 tags Array of objects 作业的标签。具体请参考表3。 user_conf String SQL查询的相关列信息的Json字符串。 result_format String 作业结果的存储格式,当前只支持csv。 result_path String 作业结果的OBS路径。 表3 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 value 是 String 标签的值。