更新时间:2022-12-07 GMT+08:00

导出查询结果

功能介绍

该API用于将SQL语句的查询结果导出到OBS对象存储中,只支持导出“QUERY”类型作业的查询结果。

  • 该API为异步操作。
  • 目前只支持导出数据到OBS中,且导出的路径必须指定到文件夹级别。OBS路径中不支持逗号,且其中的桶名不能以正则格式“.[0-9]+(.*)”结尾,即,若桶名包含“.”, 则最后一个“.”不能以数字开头(例如:**.12abc 或 **.12)。

URI

  • URI格式:

    POST /v1.0/{project_id}/jobs/{job_id}/export-result

  • 参数说明
    表1 URI 参数

    参数名称

    是否必选

    参数类型

    说明

    project_id

    String

    项目编号,用于资源隔离。获取方式请参考获取项目ID

    job_id

    String

    作业ID。

请求消息

表2 请求参数

参数名称

是否必选

参数类型

说明

data_path

String

导出结果存储的路径(当前仅支持将数据存储在OBS上)。另外,该路径下的文件夹须不存在,如请求样例中的“path”文件夹。

compress

String

导出数据的压缩格式,目前支持gzip,bzip2和deflate压缩方式; 默认值为none,表示不压缩。

data_type

String

导出数据的存储格式,目前API支持csv和json格式。

queue_name

String

指定执行该任务的队列。若不指定队列,将采用default队列执行操作。

export_mode

String

导出模式,目前支持“ErrorIfExists”“Overwrite”,不指定“export_mode”则默认为“ErrorIfExists”

  • “ErrorIfExists”:存在即报错。指定的导出目录必须不存在,如果指定目录已经存在,系统将返回错误信息,无法执行导出操作。
  • “Overwrite”:覆盖。在指定目录下新建文件,会删除已有文件。

with_column_header

Boolean

导出csv和json格式数据时,是否导出列名。

  • 设置为“true”,表示导出列名。
  • 设置为“false”,表示不导出列名。
  • 若为空,默认为“false”。

limit_num

Integer

需要导出的数据数量,默认值为“0”,表示全部导出。

encoding_type

String

导出数据的编码格式。支持"utf-8","gb2312","gbk"三种,如果不填写默认为"utf-8"。

响应消息

表3 响应参数

参数名称

是否必选

参数类型

说明

is_success

Boolean

请求发送是否成功。“true”表示请求发送成功。

message

String

系统提示信息,执行成功时,信息可能为空。

job_id

String

提交请求成功时,生成并提交一个新的作业,返回作业ID。用户可以使用作业ID来查询作业状态和获取作业结果。

job_mode

String

作业执行模式:

  • async:异步
  • sync:同步

请求示例

{
  "data_path": "obs://obs-bucket1/path",
  "data_type": "json",
  "compress": "gzip",
  "with_column_header": "true",
  "queue_name": "queue2",
  "limit_num": 10
}

响应示例

{
  "is_success": true,
  "message": "",
  "job_id": "37a40ef9-86f5-42e6-b4c6-8febec89cc20",
  "job_mode":"async"
}

状态码

状态码如表4所示。

表4 状态码

状态码

描述

200

导出成功。

400

请求错误。

500

内部服务器错误。

错误码

调用接口出错后,将不会返回上述结果,而是返回错误码和错误信息,更多介绍请参见错误码