导出任务接口
本章介绍导出任务的查询、执行、重跑和取消接口。页面配置参见数据导出。
通用响应与任务字段
接口响应包含 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 编码):
响应的 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/{taskId}/record/{recordId}/rerun
根据任务 ID 和已有运行记录 ID 重跑。
| 参数 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
| taskId | path | 是 | string | 导出任务 ID。 |
| recordId | path | 是 | string | 运行记录 ID。 |
| name | query | 是 | string | 导出任务名称;不放在 JSON 请求体中。 |
成功响应与“执行导出任务”相同,data 为 null。重跑结果需继续查询运行记录。
取消导出任务
请求方式与地址:POST /api/v1/tableExportTask/{taskId}/record/{recordId}/cancel
取消指定的任务运行实例。
| 参数 | 位置 | 必填 | 类型 | 说明 |
|---|---|---|---|---|
| taskId | path | 是 | string | 导出任务 ID。 |
| recordId | path | 是 | string | 需要取消的运行记录 ID。 |
| name | query | 是 | string | 导出任务名称;不放在 JSON 请求体中。 |
成功响应与“执行导出任务”相同,data 为 null。最终运行状态需通过运行记录确认。
错误处理
请求失败时检查 success、errorCode 和 errorMsg。常见业务错误包括来源表不存在(DWS_24_0001)和导出任务不存在(DWS_24_0003)。权限不足、目标数据源连接或引擎执行异常,应结合实际错误信息排查。
接口请求成功后,导出仍可能在后续执行中失败。调用方应判断运行记录的 state,不能仅凭 success: true 判断数据已就绪。跨源映射在平台管理中手动配置,与导出任务接口独立。