跳转至

导出任务接口

本章介绍导出任务的查询、执行、重跑和取消接口。页面配置参见数据导出。

通用响应与任务字段

接口响应包含 data、errorCode、errorMsg 和 success。success 表示本次接口请求是否成功;对于执行、重跑等异步操作,不表示导出已经完成。应继续查询运行记录确认导出结果。

下文使用示例名称和 ID;实际调用时替换为环境中的值。查询参数中的表 GUID 保留各级名称的双引号,例如 "catalog"."schema"."table",作为 URL 参数传递时应进行 URL 编码。列表参数可通过重复参数名传入,例如 task_ids=task-001&task_ids=task-002。

任务对象

列表、详情和分页查询返回相同的任务对象结构。

字段 类型 说明
id / name / description string 任务 ID、名称和描述。
datasetGuid string 来源表或视图的 GUID。
sourceTablePathList string[] 来源对象的完整路径,各级名称分别存放。
sourceCatalogName / sourceSchemas / sourceTableName string / string[] / string 来源 catalog、schema 路径和表名。
state string 任务状态:ENABLE(启用)、DISABLE(停用)。
target object 目标配置,字段见“目标配置”。
columnMappings object[] 字段映射;每项包含 sourceColumnName 和 targetColumnName。
scheduleConfig object type 为 MANUAL、AUTO 或 SCHEDULE;cronTab 为自定义调度的 Cron 表达式。
owner object 负责人信息:userId、username、userRemoved。
createTime / updateTime / latestExecuteTime long 创建、更新、最近执行的时间戳,单位为毫秒;尚未执行时最近执行时间可能为空。

columnMappings、scheduleConfig、owner 和时间字段与 target 同级,不在 target 对象内。

目标配置

以下字段位于任务对象的 target 内,不适用的字段可能为空。

字段 类型 说明
datasourceGuid / schemaGuid / tableGuid string 目标 catalog、schema 和表的 GUID。
catalogName / schemas / table string / string[] / string 目标 catalog、schema 路径和表名。
catalogType string 目标 catalog 类型,数据空间为 INTERNAL,外部数据源为 EXTERNAL。
needCreateTable boolean 是否需要新建目标表。
writeMode string 表写入方式:APPEND(追加)、OVERWRITE(覆盖)。
isPartition boolean 是否按分区配置写入。
fileName / fileFormat / fileSeparator string 文件目标的名称、格式和字段分隔符;格式如 json、csv、orc、parquet,以目标支持范围为准。
duplicatedFileHandleMethod string 同名文件处理方式:IGNORE(忽略)、OVERWRITE(覆盖)。
options object 高级配置键值对,适用参数取决于目标类型及文件格式。
partitionConfig object 分区配置,包含 partitionField(目标分区字段)、partitionValue(分区值)、valueType(取值方式)和 partitionMappingField(映射的源字段)。valueType 为 CONSTANT、VARIABLE 或 MAPPING。

查询表下所有导出任务列表

请求方式与地址:GET /api/v1/tableExportTask/list

参数 位置 必填 类型 说明
dataset_guid query 是 string 来源表或视图的 GUID。

请求示例(GUID 已进行 URL 编码):

GET /api/v1/tableExportTask/list?dataset_guid=%22air_space%22.%22default%22.%22date_table%22

响应的 data 是任务对象数组;每项的完整字段见下节详情示例。没有任务时为 []。以下只展示部分任务字段:

{
  "data": [
    {
      "id": "task-001",
      "name": "export_date_table",
      "state": "ENABLE"
    }
  ],
  "errorCode": "",
  "errorMsg": "",
  "success": true
}

根据任务 ID 查询单个导出任务详情

请求方式与地址:GET /api/v1/tableExportTask/detail

参数 位置 必填 类型 说明
dataset_guid query 是 string 来源表或视图的 GUID。
task_id query 是 string 导出任务 ID。

请求示例:

GET /api/v1/tableExportTask/detail?dataset_guid=%22air_space%22.%22default%22.%22date_table%22&task_id=task-001

响应示例:AIR 内表以非分区覆盖方式导出到 JDBC 目标,任务已启用。文件和分区相关字段在此示例中不适用。

{
  "data": {
    "id": "task-001",
    "name": "export_date_table",
    "description": "日期表导出副本",
    "datasetGuid": "\"air_space\".\"default\".\"date_table\"",
    "sourceTablePathList": ["air_space", "default", "date_table"],
    "sourceCatalogName": "air_space",
    "sourceSchemas": ["default"],
    "sourceTableName": "date_table",
    "state": "ENABLE",
    "target": {
      "datasourceGuid": "\"target_jdbc\"",
      "schemaGuid": "\"target_jdbc\".\"analytics\"",
      "tableGuid": "\"target_jdbc\".\"analytics\".\"date_copy\"",
      "catalogName": "target_jdbc",
      "catalogType": "EXTERNAL",
      "schemas": ["analytics"],
      "table": "date_copy",
      "fileName": null,
      "needCreateTable": false,
      "writeMode": "OVERWRITE",
      "isPartition": false,
      "fileFormat": null,
      "fileSeparator": null,
      "duplicatedFileHandleMethod": null,
      "options": {},
      "partitionConfig": null
    },
    "columnMappings": [
      {
        "sourceColumnName": "day_col",
        "targetColumnName": "day_col"
      }
    ],
    "scheduleConfig": {
      "type": "MANUAL",
      "cronTab": null
    },
    "owner": {
      "userId": 1001,
      "username": "example_user",
      "userRemoved": false
    },
    "createTime": 1756207752111,
    "updateTime": 1756280458537,
    "latestExecuteTime": 1760354441190
  },
  "errorCode": "",
  "errorMsg": "",
  "success": true
}

查询所有导出任务列表接口

请求方式与地址:GET /api/v1/tableExportTask/query

参数 位置 必填 类型 说明
search_value query 否 string 按任务名称或来源表、视图名称模糊搜索。
states query 否 string[] 任务状态:ENABLE、DISABLE。
owners query 否 string[] 负责人 userId 列表。
create_time query 否 long 创建时间下限,毫秒时间戳,包含该时间。
order_type query 否 string ASC 或 DESC;指定排序字段时同时传入。
order_field query 否 string 排序字段,如 latestExecuteTime(最近执行时间)、updateTime(最近编辑时间)、createTime(创建时间)。
page_number query 否 int 页码,默认 1。
page_size query 否 int 每页条数,默认 20。

未指定排序时按创建时间降序。请求参数名使用 create_time、order_type、order_field,不是响应字段的驼峰命名。

GET /api/v1/tableExportTask/query?states=ENABLE&order_field=latestExecuteTime&order_type=DESC&page_number=1&page_size=20

响应中 data.list 的每项为任务对象。以下只展示部分任务字段:

{
  "data": {
    "hasNextPage": false,
    "list": [
      {
        "id": "task-001",
        "name": "export_date_table",
        "state": "ENABLE"
      }
    ],
    "pageNumber": 1,
    "pageSize": 20,
    "total": 1
  },
  "errorCode": "",
  "errorMsg": "",
  "success": true
}

查询最近任务运行状态

请求方式与地址:GET /api/v1/tableExportTask/taskRecords/queryByGuid

根据来源表 GUID 查询各导出任务最近一次运行状态。省略 names 时查询该表下所有导出任务的最近运行记录。

参数 位置 必填 类型 说明
dataset_guid query 是 string 来源表或视图的 GUID。
names query 否 string[] 导出任务名称列表。
GET /api/v1/tableExportTask/taskRecords/queryByGuid?dataset_guid=%22air_space%22.%22default%22.%22date_table%22&names=export_date_table
{
  "data": [
    {
      "id": "record-001",
      "taskId": "task-001",
      "state": "SUCCESS"
    }
  ],
  "errorCode": "",
  "errorMsg": "",
  "success": true
}

记录的 id 可用于重跑和取消接口。运行状态为 RUNNING(运行中)、SUCCESS(成功)、FAILED(失败)或 CANCELED(已取消),与任务启用状态不同。

也可以按任务 ID 查询:

请求 参数 响应 data
GET /api/v1/tableExportTask/{taskId}/recentRecord path 中的 taskId 必填。 单个最近运行记录对象。
GET /api/v1/tableExportTask/taskRecords/query query 中的 task_ids 必填,类型为 string[]。 各任务最近运行记录的数组。

执行导出任务

请求方式与地址:POST /api/v1/tableExportTask/{taskId}/run

按任务 ID 提交一次手动执行。请求体为 JSON 对象。

参数 位置 必填 类型 说明
taskId path 是 string 导出任务 ID。
name body 是 string 导出任务名称,用于记录本次操作。
partitionValue body 否 string 本次执行的分区值,多个值用逗号分隔;非分区任务不传。

请求示例:

POST /api/v1/tableExportTask/task-001/run
Content-Type: application/json
{
  "name": "export_date_table"
}

分区任务的请求体示例:

{
  "name": "export_partition_table",
  "partitionValue": "2026-09-22,2026-09-23"
}

成功响应如下。执行完成情况需通过最近运行记录查询。

{
  "data": null,
  "errorCode": "",
  "errorMsg": "",
  "success": true
}

重跑导出任务

请求方式与地址:POST /api/v1/tableExportTask/{taskId}/record/{recordId}/rerun

根据任务 ID 和已有运行记录 ID 重跑。

参数 位置 必填 类型 说明
taskId path 是 string 导出任务 ID。
recordId path 是 string 运行记录 ID。
name query 是 string 导出任务名称;不放在 JSON 请求体中。
POST /api/v1/tableExportTask/task-001/record/record-001/rerun?name=export_date_table

成功响应与“执行导出任务”相同,data 为 null。重跑结果需继续查询运行记录。

取消导出任务

请求方式与地址:POST /api/v1/tableExportTask/{taskId}/record/{recordId}/cancel

取消指定的任务运行实例。

参数 位置 必填 类型 说明
taskId path 是 string 导出任务 ID。
recordId path 是 string 需要取消的运行记录 ID。
name query 是 string 导出任务名称;不放在 JSON 请求体中。
POST /api/v1/tableExportTask/task-001/record/record-001/cancel?name=export_date_table

成功响应与“执行导出任务”相同,data 为 null。最终运行状态需通过运行记录确认。

错误处理

请求失败时检查 success、errorCode 和 errorMsg。常见业务错误包括来源表不存在(DWS_24_0001)和导出任务不存在(DWS_24_0003)。权限不足、目标数据源连接或引擎执行异常,应结合实际错误信息排查。

接口请求成功后,导出仍可能在后续执行中失败。调用方应判断运行记录的 state,不能仅凭 success: true 判断数据已就绪。跨源映射在平台管理中手动配置,与导出任务接口独立。