此手册用于记录大数据开发与管理平台中,任务运维产品所有对外开放的OpenAPI,阅读此手册,你将了解任务运维产品开放的OpenAPI能力与调用方法。

一、公共参数

1.1 响应格式

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时,单位:ms
msg String 响应消息
result Object 响应结果

1.2 异常响应码

1.2.1 公共响应码
响应码 说明
0 请求成功
-1 服务器错误,空指针、数组越界等非业务逻辑抛出异常。
-2 非法请求,参数异常、参数格式错误等接口的请求非法性抛出的通用错误
-3 用户不在当前项目
1.2.2 业务响应码
响应码 说明
1001 任务flow不存在
1002 任务project不存在
1003 用户不存在
1004 yarn队列不存在
1005 报警通道不存在
1006 报警组不存在
1007 监控任务不存在
1008 flow实例不存在
1009 标签不存在
2001 实例当前状态不支持终止操作
2002 实例当前状态不支持重跑操作
2003 重跑冲突,实例已在重跑中
2100 job实例日志不存在
2500 补数据任务不存在
2501 补数据名不能重复
2502 补数据不能同时创建调度类型任务和非调度类型任务
2503 补数据创建非调度任务需要设置周期值、yarn队列
2504 补数据任务不支持“终止”操作
3001 无报警规则修改权限
3002 无重跑权限
3003 无终止权限
3004 无补数据创建权限
3005 无补数据终止权限

1.3 枚举列表

1.3.1 ExecJobStatusEnum
枚举值 类型 描述
SUCCEEDED String 成功
FAILED String 失败
RUNNING String 运行中
READY String 就绪中
CANCELLED String 撤销
KILLED String 终止
QUEUED String 队列等待
UNSUBMIT String 未就绪
1.3.2 ExecFlowStatusEnum
枚举值 类型 描述
SUCCEEDED String 成功
FAILED String 失败
RUNNING String 运行中
PREPARING String 就绪中
FAILED_FINISHING String 运行中异常
KILLED String 终止
KILLING String 终止中
PAUSED String 暂停
UNSUBMIT String 未就绪
1.3.3 JobTypeEnum

描述:节点类型

枚举值 类型 描述
hive_jdbc_sql String SQL节点,执行引擎为Hive,运行方式为JDBC
hive_client_sql String SQL节点,执行引擎为Hive,运行方式为Client
spark_cluster_sql String SQL节点,执行引擎为Spark,运行方式为Cluster
spark_client_sql String SQL节点,执行引擎为Spark,运行方式为Client
ndi String 数据同步节点
spark String Spark节点
script String script节点或cube节点(cube节点本质上是script节点的特例)
vertical_sql String verticalSQL节点
mysql String MySQL节点
oracle_sql String OracleSQL节点
gp_sql String GPSQL节点
ai_innerflow String AI2.0节点
innerflow String 嵌套流节点
noop String 虚拟节点
decision String 选择节点
mr String MR节点
dqc String 数据质量任务
1.3.4 ScheduleTypeEnum
枚举值 类型 描述
PERIOD String 周期调度
CRON String crontab调度
1.3.5 SchedulePeriodEnum
枚举值 类型 描述
MONTH String
WEEK String 星期
DAY String
HOUR String 小时
MINUTE String 分钟
1.3.6 ExecTypeEnum
枚举值 类型 描述
SCHEDULE String 周期执行
RERUN String 重跑
LINKED_BACKFILL_EXECUTE String 补数据
LINKED_BACKFILL_RERUN String 补数据重跑
DEV_EXECUTE String 开发模式下立即运行
EXECUTE String 线上模式下立即执行
1.3.7 AlertRuleTypeEnum
枚举值 类型 描述
JOB_FAIL String 节点失败
JOB_TIMEOUT String 节点超时
FLOW_FAIL String 任务失败
FLOW_TIMEOUT String 任务超时。任务从“就绪”开始计时,节点从“运行中”开始计时,多久之后还未运行结束;
DQC_FAIL String dqc检测失败
DQC_ERROR String dqc异常
1.3.8 ExecConcurrentOptionEnum
枚举值 类型 描述
CONCURRENT_OPTION_SKIP String 跳过
CONCURRENT_OPTION_PIPELINE String 顺序执行
CONCURRENT_OPTION_IGNORE String 忽略
1.3.9 ExecFailureActionEnum
枚举值 类型 描述
FINISH_CURRENTLY_RUNNING String 继续执行运行中
CANCEL_ALL String 停止
FINISH_ALL_POSSIBLE String 继续执行所有
1.3.10 RerunNofityConditionEnum
枚举值 类型 描述
SUCCEEDED String 运行成功
FAILED String 运行失败
1.3.11 CalendarEffectModeEnum

描述:交易日日历生效方式

枚举值 类型 描述
currentDay String 当日生效
nextDay String 次日生效
1.3.12 CalendarStatusEnum

描述:交易日日历状态

枚举值 类型 描述
0 Number 关闭
1 Number 开启
1.3.13 BackfillNofityConditionEnum
枚举值 类型 描述
SUCCEEDED String 补数据成功
FAILED String 实例失败
CANCELED String 补数据终止
1.3.14 BackfillStatusEnum
枚举值 类型 描述
SUCCEEDED String 成功
CANCELING String 终止中
CANCELED String 终止
PAUSING String 暂停中
PAUSED String 暂停
RUNNING_EXCEPTION String 运行中异常
RUNNING String 运行中
NOT_START String 未开始
1.3.15 YarnApplicationTypeEnum

描述:yarn任务类型,开发平台提交的yarn类型默认为以下3种:

枚举值 类型 描述
FLINK String flink任务(暂不支持)
SPARK String spark任务
MAPREDUCE String MR任务
1.3.16 ExecSourceEnum

描述:yarn任务来源

枚举值 类型 描述
OFFLINE_SCHEDULE String 离线调度任务
STREAM_SCHEDULE String 实时调度任务(暂不支持)
DQC String 数据质量任务
MASK String 脱敏任务
NDI String 数据传输任务
DATA_COMPARE String 数据比对

1.4 响应实体列表

1.4.1 PageResult

分页查询结果

字段 类型 必选 描述
pageSize Number 每页显示条数
pageNum Number 页数
totalCount Number 总条数
list Array<Object> 当前页结果
1.4.2 ExecOverview

实例统计概览

字段 类型 必选 描述
scheduleTaskNum Number 调度任务数,不包括未调度
totalTaskNum Number 总任务数,包括未调度
planExecTaskNum Number 计划任务执行数
planExecInstanceNum Number 计划实例执行数(一个任务一天有多个实例)
execInstanceSuccessNum Number 实例执行成功数(包括失败实例重跑成功)
execInstanceFailNum Number 实例执行失败数(不算重跑实例)
execInstanceRerunSuccessNum Number 实例执行重跑成功数(一个实例重跑成功多次只算一个)
estimatedFinishTime Number 预计完成时间
1.4.3 AlertRule
名称 类型 必选 描述
id Number 规则主键
ruleType AlertRuleTypeEnum 规则类型
alertObject AlertRuleObject 报警对象
channels Array<AlertChannelConf> 报警通道列表
timeout Number 超时时间,毫秒。如果ruleType是超时类型,有该字段。
recycleSetting RecycleSetting 是否循环报警
customUserInfos Array<UserInfo>
自定义接收人列表
flowOwner Boolean 是否发给任务负责人
groupIds Array<Number> 告警组列表
1.4.4 AlertRuleObject
名称 类型 必选 描述
flowAliasName String 任务名称,任务类型规则会返回该值
flow String 任务标识,任务类型规则会返回该值
jobAliasName String 节点名称,节点、dqc类型规则会返回该值
job String 节点标识,节点、dqc类型规则会返回该值
taskId Number DQC任务id,dqc类型规则会返回该值
1.4.5 UserInfo
名称 类型 必选 描述
fullName String 姓名
user String 邮箱
1.4.6 ExecFlow
名称 类型 必选 描述
execId Number 实例id(未就绪无该字段)
execStatus ExecFlowStatusEnum 实例状态
scheduleTime Number 调度时间
submitTime Number 就绪时间(如果已经就绪)
startTime Number 开始执行时间(如果已经执行)
endTime Number 执行结束时间(如果已经执行)
owner UserInfo 任务负责人
flow String 任务flow标识
project String 任务project标识
flowAliasName String 任务名
yarnQueue String yarn队列
yarnId String yarn集群id
highPriority Boolean 是否高优先级队列,非网易自研队列默认false
execType ExecTypeEnum 执行类型
periodInfo SchedulePeriodInfo 调度周期信息
calendarInfo ScheduleCalendar 交易日日历
1.4.7 ExecFlowDetail
名称 类型 必选 描述
executionSetting ExecFlowSetting 运行设置
execJobs Array<ExecFlowJob> 执行节点列表
execId Number 实例id(未就绪无该字段)
execStatus ExecFlowStatusEnum 实例状态
scheduleTime Number 调度时间
submitTime Number 就绪时间(如果已经就绪)
startTime Number 开始执行时间(如果已经执行)
endTime Number 执行结束时间(如果已经执行)
owner UserInfo 任务负责人
flow String 任务flow标识
project String 任务project标识
flowAliasName String 任务名
execType ExecTypeEnum 执行类型
periodInfo SchedulePeriodInfo 调度周期信息
calendarInfo ScheduleCalendar 交易日日历
1.4.8 ExecFlowSetting
名称 类型 必选 描述
failureAction ExecFailureActionEnum 失败策略
retrySetting RetrySetting 是否自动重试
parameters Map<String,String> 任务自定义参数
yarnQueue String yarn队列
yarnId String yarn集群id
highPriority Boolean 是否高优先级队列,非网易自研队列默认false
1.4.9 ExecFlowJob
名称 类型 必选 描述
job String 节点唯一标识
jobAliasName String 节点名称
type JobTypeEnum 节点类型
attempt Number 当前重试次数。未就绪状态无该值
startTime Number 开始时间,毫秒。未就绪状态无该值
endTime Number 结束时间,毫秒。未就绪状态无该值
status ExecJobStatusEnum 节点执行状态。
1.4.10 ExecFlowJobLog
名称 类型 必选 描述
offset Number 当前内容起始offset
data String 日志内容
length Number 日志实际长度。下次请求的offset=offset+length
1.4.11 ExecFlowRerunResult
名称 类型 必选 描述
execId Number 重跑实例id
1.4.12 AlertChannelConf
名称 类型 必选 描述
id Number 通道id
name String 通道展示名
1.4.13 ScheduleCalendar

描述:交易日日历信息

字段 类型 必选 描述
calendar String 交易日日历标识
calendarName String 交易日日历名称
status CalendarStatusEnum 交易日日历状态
effectMode CalendarEffectMode 交易日日历生效模式
1.4.14 SchedulePeriodInfo

描述:调度周期信息

字段 类型 必选 描述
type ScheduleTypeEnum 调度类型,PERIOD:周期调度 ;CRON:定时调度
periodValue Number 周期间隔。如果type=PERIOD有该值
periodUnit SchedulePeriodEnum 周期间隔。如果type=PERIOD有该值
cron String cron表达式,如果type=CRON有该值
1.4.15 RetrySetting
名称 类型 必选 描述
maxTimes Number 最大重试次数
interval Number 重试间隔
1.4.16 RecycleSetting
名称 类型 必选 描述
maxTimes Number 循环最大次数
interval Number 循环间隔
reportEnable
Boolean 是否上报(必须先开启循环)。循环结束没有处理,会上报给指定人。
1.4.17 BackfillDetail
名称 类型 必选 描述
id Boolean 补数据id
name Number 补数据名
flows Array<BackfillFlow> 任务列表
status BackfillStatusEnum 补数据状态
creator UserInfo 创建人
leftTime Number 实例开始时间
rightTime Number 实例结束时间
startTime Number 补数据开始时间
endTime Number 补数据结束时间
concurrentSize Number 并发度
timeReverse Boolean 是否倒序执行
crossSelfDepend Boolean 是否自依赖
executionSetting BackfillSetting 执行设置
1.4.18 BackfillFlow
名称 类型 必选 描述
project String 任务project标识
flow String 任务flow标识
jobIds Array<String> 指定节点,不指定则当做全部
periodInfo SchedulePeriodInfo 调度周期信息
1.4.19 BackfillSetting
名称 类型 必选 描述
failureAction ExecFailureActionEnum 失败策略,默认FINISH_CURRENTLY_RUNNING
retrySetting RetrySetting 重试配置
parameters Map<String,String> 任务自定义参数
yarnQueue String yarn队列,如果是非调度任务则必须有
yarnId String yarn集群id,如果是非调度任务则必须有
highPriority Boolean 是否高优先级队列,非网易自研队列默认false
1.4.20 FlowExecHistory
名称 类型 必选 描述
execId Number 实例id
execStatus ExecFlowStatusEnum 实例状态
scheduleTime Number 调度时间
submitTime Number 就绪时间(如果已经就绪)
startTime Number 开始执行时间(如果已经执行)
endTime Number 执行结束时间(如果已经执行)
execType ExecTypeEnum 执行类型
backfillId Number 补数据id。如果是执行类型是补数据会有该值
1.4.21 Tag
名称 类型 必选 描述
id Number 标签主键
name ExecFlowStatusEnum 标签名
description Number 描述
values Array<TagValue> 标签值列表
1.4.22 TagValue
名称 类型 必选 描述
id Number 标签值主键
value String 标签值名
1.4.23 YarnExecJob
名称 类型 必选 描述
applicationId String yarn applicationId
applicationType YarnApplicationTypeEnum yarn任务类型
product String 项目
yarnFullQueue String yarn队列
execType ExecTypeEnum 执行类型
execSource ExecSourceEnum 执行来源
startTime Long 开始时间
submitter UserInfo 任务提交人
execId Number 实例id(只有azkaban提交的有该值)
jobId String 节点id(只有azkaban提交的有该值)
jobAliasName String 节点名(只有azkaban提交的有该值)
execStatus ExecFlowStatusEnum 实例状态(只有azkaban提交的有该值)
flow String 任务flow标识(只有azkaban提交的有该值)
project String 任务project标识(只有azkaban提交的有该值)
flowAliasName String 任务名(只有azkaban提交的有该值)
1.4.24 FinishHourlyTrend

实例统计概览

字段 类型 必选 描述
time Number 调度任务数,不包括未调度
totalNum Number 计划任务执行数
finishNum Number 计划任务执行完成数

1.5 请求实体列表

1.5.1 AlertRuleCreateReq
名称 类型 必选 默认值 描述
alertObject AlertRuleObjectReq 告警对象
ruleType AlertRuleTypeEnum 规则类型
timeout
Number
0 超时时间,毫秒。如果是超时类型,必须传该字段。
channelIds Array<Number> 告警通道列表
recycleSetting RecycleSettingReq 循环配置,默认不循环报警
flowOwner Boolean false 是否发给负责人
customUsers Array<String> 指定邮箱列表
groupIds
Array<Number> 告警组id列表。flowOwner、
customUsers、groupIds必须有一个。
1.5.2 AlertRuleObjectReq
名称 类型 必选 描述
flow String 任务标识
job String 节点标识。flow、job必须传一个。
taskId Number 监控任务ID。DQC类型需要传该值
1.5.3 RerunSettingReq
名称 类型 必选 描述
failureAction ExecFailureActionEnum 失败策略,默认FINISH_CURRENTLY_RUNNING
retrySetting RetrySettingReq 重试配置
parameters Map<String,String> 任务自定义参数
concurrentSetting ExecConcurrentOptionEnum 并发策略,默认CONCURRENT_OPTION_IGNORE
yarnId String yarn集群id。
yarnFullQueue String 队列全名。yarnFullQueue、yarnQueue选一个必填。
yarnQueue String 队列展示名,参考:[队列]。yarnFullQueue、yarnQueue选一个必填。
jobIds Array<String> 需要重跑的job列表
1.5.4 RerunNotifyReq
名称 类型 必选 描述
conditions
Array<RerunNofityConditionEnum> 通知条件(或关系)
channelIds Array<Number> 告警通道
customUsers Array<String> 自定义邮箱。customUsers、flowOwner、currentUser三选一。
flowOwner Boolean
任务负责人,只有conditions中有FAILED才发送。customUsers、flowOwner、currentUser三选一。
currentUser Boolean 当前用户。customUsers、flowOwner、currentUser三选一。
1.5.5 BackFillNotifyReq
名称 类型 必选 描述
conditions
Array<BackfillNofityConditionEnum> 通知条件(或关系)
channelIds Array<Number> 告警通道
customUsers Array<String> 自定义邮箱。customUsers、flowOwner、currentUser三选一。
flowOwner Boolean
任务负责人,只有conditions中有FAILED才发送。customUsers、flowOwner、currentUser三选一。
currentUser Boolean 当前用户。customUsers、flowOwner、currentUser三选一。
1.5.6 BackfillSettingReq
名称 类型 必选 描述
failureAction ExecFailureActionEnum 失败策略,默认FINISH_CURRENTLY_RUNNING
retrySetting RetrySetting 重试配置
parameters Map<String,String> 任务自定义参数
yarnFullQueue String yarn队列。已调度任务默认使用调度配置的队列;非调度任务默认使用项目中资源最大的队列。
yarnId String yarn集群id,已调度任务默认使用调度配置的队列;非调度任务默认使用项目中资源最大的队列。
1.5.7 BackfillFlowReq
名称 类型 必选 描述
project String 任务project标识
flow String 任务flow标识
jobIds Array<String> 指定节点,不指定则当做全部
1.5.8 RecycleSettingReq
名称 类型 必选 描述
maxTimes Number 循环最大次数
interval Number 循环间隔
reportEnable
Boolean 是否上报。循环结束没有处理,会上报给指定人。
1.5.9 RetrySettingReq
名称 类型 必选 描述
maxTimes Number 最大重试次数。大于等于1
interval Number 重试间隔(毫秒)。大于1分钟
1.5.10 FlowIdReq
名称 类型 必选 描述
flow String 任务flow标识
project String 任务project标识

二、OpenAPI列表

2.1 OpenAPI总览

模块名称支持版本状态请求方法请求路径
大盘统计实例统计接口v1.3.0已上线GET/dashboard/v1/flow/execOverview/get
任务完成统计接口v1.9.2开发中GET/dashboard/v1/flow/finishTrend/get
任务



任务告警规则列表v1.4.1已上线GET/flow/v1/alert/list
保存任务告警规则v1.4.1已上线POST/flow/v1/alert/upsert
删除任务下所有告警规则v1.4.1已上线POST/flow/v1/alert/delete
批量设置标签v1.8.6已上线POST/flow/v1/tag/batch-set
调度实例
周期实例列表(不含补数据实例)v1.4.1已上线POST/sched/v1/exec/list
周期实例执行详情v1.4.1已上线GET/sched/v1/exec/detail/get
周期实例重跑v1.4.1已上线POST/sched/v1/exec/rerun
周期实例终止v1.4.1已上线POST/sched/v1/exec/kill
日志实例节点日志v1.4.1已上线GET/log/v1/job/get
补数据
创建补数据(无下游)v1.4.1已上线POST/backfill/v1/no-cascade/create
查询补数据详情v1.4.1已上线GET/backfill/v1/detail/get
补数据终止v1.8.2已上线POST/backfill/v1/kill
标签标签列表v1.8.6已上线GET/tag/v1/list
yarn实例运行中实例列表v1.8.8已上线GET/yarn/v1/running/list
yarn实例终止v1.8.8已上线POST/yarn/v1/kill

2.2 大盘统计

2.2.1 实例大盘统计

GET /dashboard/v1/flow/execOverview/get

产品版本:v1.3.0

描述:按项目、时间范围统计调度实例状态

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
tagId Number 任务标签id
baselineId Number 基线id
priority Number 任务优先级
date Number 指定天,毫秒

请求示例:

curl -X GET 'http://easytaskops-dev.service.163.org/api/openapi/dashboard/v1/flow/execOverview/get?product=intern&clusterId=dev4&date=1648569600000'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result ExecOverview 实例统计

响应示例:


{

    "code":0,

    "msg":null,

    "result":{

        "scheduleTaskNum":287,

        "totalTaskNum":287,

        "planExecTaskNum":226,

        "planExecInstanceNum":3656

    },

    "reqId":"20968bf538ba4454a5c71c49bed56563",

    "cost":518

}
2.2.2 任务完成统计接口

GET /dashboard/v1/flow/finishTrend/get

产品版本:v1.9.2

描述:按项目、时间范围统计调度实例完成率(每30分钟,最多返回2天)

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
date Number 指定天,毫秒
tagId Number 任务标签id
baselineId Number 基线id
priority Number 任务优先级

请求示例:

curl -X GET 'http://easytaskops-dev.service.163.org/api/openapi/dashboard/v1/flow/finishTrend/get?product=intern&clusterId=dev4&date=1648569600000'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Array<FinishHourlyTrend> 小时统计列表

响应示例:


{

    "code":0,

    "msg":null,

    "result":\[{

            "time":1694881800000

            "totalNum":97

            "finishNum":3

    },{

            "time":1694883600000

            "totalNum":97

            "finishNum":9

    }\]

    "reqId":"20968bf538ba4454a5c71c49bed56563",

    "cost":518

}

2.3 任务

2.3.1 任务告警规则列表

GET /flow/v1/alert/list

产品版本:v1.4.1

描述:获取任务下所有告警规则

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
flow String 任务flow标识
project String 任务project标识
user String 当前操作人邮箱

请求示例:

curl -i -X GET \

'http://easy-opena[pi.bdms.service.163.org/openapi/easytaskops/flow/v1/alert/list?clusterId=dev4&produt=intern&flow=tttt\_copy1&project=e57d9d08843843289f262501d149d15e&user=wei.chen@corp.netease.com'](http://easy-openapi.bdms.service.163.org/openapi/easytaskops/flow/v1/alert/list?clusterId=dev4&produt=intern&flow=tttt_copy1&project=e57d9d08843843289f262501d149d15e&user=wei.chen@corp.netease.com)

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Array<AlertRule> 告警规则列表

响应示例:


{

    "code": 0,

    "result": \[

        {

            "id": 1333,

            "ruleType": "FLOW\_FAIL",

            "ruleObject": {

                "flowAliasName": "tttt\_copy1",

                "flow": "tttt\_copy1"

            },

            "channelIds": \[

                1

            \],

            "flowOwner": true,

            "recycleSetting": {

                "maxTimes": 2,

                "interval": 60000,

                "reportEnable": false

            }

        }

    \],

    "reqId": "59fec9e1fad744849723389a4d62bad2",

    "cost": 73

}
2.3.2 保存任务告警规则

POST /flow/v1/alert/upsert

产品版本:v1.4.1

描述:创建、覆盖任务告警规则。如果不存在则新增,存在则覆盖

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
flow String 任务flow标识
project String 任务project标识
rules Array<AlertRuleCreateReq> 规则列表
user String 当前操作人邮箱

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "clusterId":"dev4",

  "flow":"tttt\_copy1\_1",

  "product":"intern",

  "project":"f554c4c1973d40a5bf53d22ed557babd",

  "rules":\[

    {

      "alertObject":{

        "flow":"tttt\_copy1",

        "type":"FLOW"

      },

      "channelIds":\[

        1\],

      "flowOwner":true,

      "recycleSetting":{

        "interval":60000,

        "maxTimes":2

      },

      "ruleType":"FLOW\_FAIL"

    }\],

  "user":"wei.chen@corp.netease.com"

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/flow/v1/alert/upsert'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Object

响应示例:

{

"code":0,

"result":true,

"reqId":"2c57154fb4484f84a1b067e30e60dc26",

"cost":453

}
2.3.3 删除任务下告警规则

POST /flow/v1/alert/delete

产品版本:v1.4.1

描述:删除任务下所有告警规则

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
flow String 任务flow标识
project String 任务project标识
user String 当前操作人邮箱

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "clusterId":"dev4",

  "flow":"tttt\_copy1",

  "product":"intern",

  "project":"e57d9d08843843289f262501d149d15e",

  "user":"wei.chen@corp.netease.com"

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/flow/v1/alert/delete'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息

响应示例:


{

"code":0,

"result":true,

"reqId":"2c57154fb4484f84a1b067e30e60dc26",

"cost":453

}
2.3.4 批量设置标签

GET /flow/v1/tag/batch-set

产品版本:v1.8.6

描述:批量设置标签

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
flows Array<FlowIdReq> 任务列表
tagValueId Number 标签值id。如果为空则表示清空标签
user String 当前操作人邮箱

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "clusterId":"dev4",

  "product":"intern",

  "tagValueId":1,

  "flows":\[{"flow":"ai3-test","project":"c7c377776af8467ca79a36d1dcafbcf8"}\],

  "user":"wei.chen@corp.netease.com"

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/flow/v1/tag/batch-set'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Boolean 处理结果

响应示例:


{

    "code": 0,

    "result": true,

    "reqId": "fd02022b17114a2f8c9ef1ee774c01e4",

    "cost": 513

}

2.4 实例

2.4.1 实例列表

POST /sched/v1/exec/list

产品版本:v1.4.1

描述:搜索实例列表

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
flowAliasName String 任务名称
execStatuses Array<ExecFlowStatusEnum> 运行状态
scheduleStartTime Number 计划执行时间(包含),毫秒。返回运行的实例+未生成的实例。scheduleStartTime、submitStartTime至少选一个,取并集
scheduleEndTime Number 计划执行时间(不包含),毫秒。返回运行的实例+未生成的实例 明天0点
submitStartTime
Number
实例就绪时间(包含),毫秒。只返回运行的实例。scheduleStartTime、submitStartTime至少选一个,取并集
submitEndTime Number 实例就绪时间(不包含),毫秒。只返回运行的实例
owner String 负责人邮箱
pageNum Number 分页 1
pageSize Number 分页条数 25
user String 当前操作人邮箱

请求示例:


curl -i -X POST  \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "product":"intern",

  "submitEndTime":1652796252196,

  "pageOffset":0,

  "pageSize":25,

  "clusterId":"dev4",

  "pageNum":1,

  "user":"wei.chen@corp.netease.com",

  "scheduleEndTime":1652796252196,

  "scheduleStartTime":1652716800000

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/sched/v1/exec/list'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result PageResult<ExecFlow> 实例列表

响应示例:


 {

    "code": 0,

    "result": {

        "pageNum": 1,

        "pageSize": 2,

        "totalPage": 1826,

        "totalCount": 3653,

        "list": \[

            {

                "execId": 2883487,

                "flow": "dqc\_demo08",

                "project": "edbfad9efcb6446bb0381c9b9c88c05b",

                "execStatus": "FAILED",

                "scheduleTime": 1652533020000,

                "submitTime": 1652796301595,

                "startTime": 1652796303588,

                "endTime": 1652796614470,

                "flowAliasName": "dqc\_demo08",

                "yarnQueue": "intern\_new",

                "yarnId": "",

                "highPriority": false,

                "execType": "SCHEDULE",

                "periodInfo": {

                    "type": "PERIOD",

                    "periodUnit": "MINUTE",

                    "periodValue": 5

                },

                "owner": {

                    "fullName": "金雨鑫",

                    "user": "jinyuxin@corp.netease.com"

                }

            },

            {

                "execId": 2883496,

                "flow": "dqc\_demo08",

                "project": "edbfad9efcb6446bb0381c9b9c88c05b",

                "execStatus": "FAILED",

                "scheduleTime": 1652533320000,

                "submitTime": 1652796361596,

                "startTime": 1652796364960,

                "endTime": 1652796691876,

                "flowAliasName": "dqc\_demo08",

                "yarnQueue": "intern\_new",

                "yarnId": "",

                "highPriority": false,

                "execType": "SCHEDULE",

                "periodInfo": {

                    "type": "PERIOD",

                    "periodUnit": "MINUTE",

                    "periodValue": 5

                },

                "owner": {

                    "fullName": "金雨鑫",

                    "user": "jinyuxin@corp.netease.com"

                }

            }

        \]

    },

    "reqId": "4c441a4f37ac449686a9d312a8692a7d",

    "cost": 109

}
2.4.2 实例详情

GET /sched/v1/exec/detail

产品版本:v1.4.1

描述:获取实例详情

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
execId Number 实例id。已经就绪实例需要该字段
flow String 任务flow标识。未就绪实例需要flow+ project+ scheduleTime查询
project String 任务project标识。未就绪实例需要flow+ project+ scheduleTime查询
scheduleTime
Number
调度时间。未就绪实例需要flow+ project+ scheduleTime查询
user String 当前操作人邮箱

请求示例:

curl -i -X GET \

'http://easy-opena[pi.bdms.service.163.org/openapi/easytaskops/sched/v1/exec/detail/get?clusterId=dev4&product=intern&execId=2877323&user=wei.chen%40corp.netease.com'](http://easy-openapi.bdms.service.163.org/openapi/easytaskops/sched/v1/exec/detail/get?clusterId=dev4&product=intern&execId=2877323&user=wei.chen%40corp.netease.com)

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result ExecFlowDetail 实例详情

响应示例:


 {

    "code": 0,

    "result": {

        "execId": 2877323,

        "flow": "mysql-check",

        "project": "ddb3d6ed7fc04cc89b530c5303003885",

        "execStatus": "FAILED",

        "scheduleTime": 1652717400000,

        "submitTime": 1652717449990,

        "startTime": 1652717452373,

        "endTime": 1652717489721,

        "flowAliasName": "mysql-check",

        "execType": "SCHEDULE",

        "periodInfo": {

            "type": "PERIOD",

            "periodUnit": "MINUTE",

            "periodValue": 10

        },

        "executionSetting": {

            "failureAction": "FINISH\_CURRENTLY\_RUNNING",

            "retrySetting": {

                "maxTimes": 3,

                "interval": 1000

            },

            "highPriority": false,

            "yarnId": "default",

            "yarnQueue": "intern\_new"

        },

        "execJobs": \[

            {

                "job": "default\_B74BC5",

                "jobAliasName": "default\_B74BC5",

                "attempt": 0,

                "startTime": 1652717452389,

                "endTime": 1652717458294,

                "status": "SUCCEEDED",

                "type": "vertical\_sql"

            },

            {

                "job": "mysql",

                "jobAliasName": "mysql",

                "attempt": 3,

                "startTime": 1652717478678,

                "endTime": 1652717489690,

                "status": "FAILED",

                "type": "mysql"

            },

            {

                "job": "mysql-check",

                "jobAliasName": "mysql-check",

                "attempt": 0,

                "startTime": 1652717489702,

                "endTime": 1652717489702,

                "status": "CANCELLED",

                "type": "noop"

            }

        \],

        "owner": {

            "fullName": "祝联新",

            "user": "zhulianxin@corp.netease.com"

        }

    },

    "reqId": "17079c34c7224fe4825fb72688504b78",

    "cost": 678

}
2.4.3 实例重跑

GET /sched/v1/exec/rerun

产品版本:v1.4.1

描述:实例重跑

URL参数/请求体

名称 类型 描述 必须 默认值
notifyConfig RerunNotifyReq 通知配置
executionSetting RerunSettingReq 运行参数配置
user String 操作人
execId Number 实例id
product String 项目名称
clusterId String 集群

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "product":"intern",

  "clusterId":"dev4",

  "user":"wei.chen@corp.netease.com",

  "execId":2879865,

    "executionSetting":

  {

    "failureAction":"CANCEL\_ALL",

    "highPriority":true,

    "yarnId":"default",

    "yarnFullQueue":"root.queue\_cur.sla",

    "parameters":{

      "d":"2022-01-01"

    },

    "retrySetting":{

      "maxTimes":2,

      "interval":60000

    },

    "jobIds":\["sql1"\]

  },

  "notifyConfig":{

    "conditions":\[

      "SUCCEEDED",

      "FAILED"\],

    "channelIds":\[

      1,

      2\],

    "flowOwner":true,

    "currentUser":true,

    "customUsers":\[

      "wei.chen@corp.netease.com"\]

  }

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/sched/v1/exec/rerun'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result ExecFlowRerunResult 重跑结果

响应示例:


{

    "code": 0,

    "msg": null,

    "result": {

        "execId": 2883515

    },

    "reqId": "932050a9dc5d4e14bb3e7e7b291ec4d3",

    "cost": 632

}
2.4.4 实例终止

POST /sched/v1/exec/kill

产品版本:v1.4.1

描述:终止实例

URL参数/请求体

名称 类型 描述 必须 默认值
user String 操作人
execId Number 实例id
product String 项目名称
clusterId String 集群

请求实例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "product":"intern",

  "clusterId":"dev4",

  "user":"wei.chen@corp.netease.com",

  "execId":2883515

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/sched/v1/exec/kill'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息

响应示例:


{

"code":0,

"result":true,

"reqId":"2c57154fb4484f84a1b067e30e60dc26",

"cost":453

}

2.5 日志

2.5.1 实例节点日志

GET /log/v1/job/get

产品版本:v1.4.1

描述:获取节点日志,可以根据返回的offset+length作为下次请求的起始offset(正序读)。如果倒序读取,第一次请求offset为-1,第二次请求中的offset为第一次请求返回的offset-需要读取的长度。

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
execId Number 实例id
job String 节点唯一标识
attempt Number 重试次数
length Number 读取字节长度,最大512000(500kb)
offset
Number 读取字节位置offset(包含),从0开始。如果offset=-1,则返回末尾指定长度的日志。目前offset是字节数,如果日志中有中文可能读取字符串长度比指定length少
user String 当前操作人邮箱

请求示例:

# 从尾部开始往上查(tail)

curl -i -X GET \

'http://easy-openapi.bdms.service.1[63.org/openapi/easytaskops/log/v1/job/get?clusterId=dev4&product=intern&execId=2883515&user=wei.chen%40corp.netease.com&job=sql1&attempt=0&length=100&offset=-1'](http://easy-openapi.bdms.service.163.org/openapi/easytaskops/log/v1/job/get?clusterId=dev4&product=intern&execId=2883515&user=wei.chen%40corp.netease.com&job=sql1&attempt=0&length=100&offset=-1)

# 从头部开始往下查(head)

curl -i -X GET \

'http://easy-openapi.bdms.service.1[63.org/openapi/easytaskops/log/v1/job/get?clusterId=dev4&product=intern&execId=2883515&user=wei.chen%40corp.netease.com&job=sql1&attempt=0&length=100&offset=27526'](http://easy-openapi.bdms.service.163.org/openapi/easytaskops/log/v1/job/get?clusterId=dev4&product=intern&execId=2883515&user=wei.chen%40corp.netease.com&job=sql1&attempt=0&length=100&offset=-1)

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result ExecFlowJobLog 日志

响应示例:


 {

    "code":0,

    "result":{

        "offset":27526,

        "data":"inTrackingURI: http://hadoop335.photo.163.org:8088/cluster/app/application\_1646013605590\_179749\\n}\\n20",

        "length":100

    },

    "reqId":"bd112e9cc3c547d1963e5401bf761066",

    "cost":738

}

2.6 补数据

2.6.1 指定任务补数据

POST /backfill/v1/no-cascade/create

产品版本:v1.4.1

描述:补指定任务(不会自动补下游任务)

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
name String 补数据名,默认名为‘补数据_时间戳’。不可重复 补数据_${now()}
flows Array<BackfillFlowReq> 指定任务列表
leftTime Number 实例开始时间(包含)
rightTime Number 实例结束时间(不包含),默认当前时间 now()
user String 当前操作人邮箱
periodValue Number 周期值。如果是非调度任务则必须填
periodUnit SchedulePeriodEnum 周期单位。如果是非调度任务则必须填
concurrentSize Number 并发度,不能大于100 5
notifyConfig BackFillNotifyReq
通知配置。默认会发送邮件给当前用户(user),报警通道为邮箱,如果环境中没有启用邮箱通道则不会发送。
{"conditions":["SUCCEEDED","FAILED","CANCELED"],"channelIds":[1],"currentUser":true}
notifyDisable Boolean 是否发送通知,如果为true,即使传notifyConfig也不生效。 false
timeReverse Boolean 是否倒序执行 false
crossSelfDepend Boolean 是否自依赖 false
executionSetting BackfillSettingReq 执行设置

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "clusterId":"dev4",

  "name":"补数据任务\_20220517\_19331",

  "concurrentSize":5,

  "crossSelfDepend":false,

  "flows":\[

    {

      "flow":"tttt\_copy1\_1",

      "project":"f554c4c1973d40a5bf53d22ed557babd"

    }\],

  "executionSetting":

  {

    "failureAction":"CANCEL\_ALL",

    "highPriority":true,

    "yarnId":"default",

    "yarnFullQueue":"root.intern\_new.default",

    "parameters":{

      "d":"2022-01-01"

    },

    "retrySetting":{

      "maxTimes":2,

      "interval":60000

    }

  },

  "notifyConfig":{

    "conditions":\[

      "SUCCEEDED",

      "FAILED",

      "CANCELED"\],

    "channelIds":\[

      1,

      2\],

    "flowOwner":true,

    "currentUser":true,

    "customUsers":\[

      "wei.chen@corp.netease.com"\]

  },

  "leftTime":1652630400000,

  "product":"intern",

  "rightTime":1652787165744,

  "timeReverse":false,

  "user":"wei.chen@corp.netease.com"

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/backfill/v1/no-cascade/create'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Number 补数据id

响应示例:


{

    "code": 0,

    "result": 100000485,

    "reqId": "fd02022b17114a2f8c9ef1ee774c01e4",

    "cost": 513

}
2.6.2 查询补数据详情

GET /backfill/v1/detail/get

产品版本:v1.4.1

描述:获取补数据详情

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
id Number 补数据id
user String 当前操作人邮箱

请求示例:

curl -i -X GET \

'http://easy-opena[pi.bdms.service.163.org/openapi/easytaskops/backfill/v1/detail/get?clusterId=dev4&product=intern&id=100000485&user=wei.chen%40corp.netease.com'](http://easy-openapi.bdms.service.163.org/openapi/easytaskops/backfill/v1/detail/get?clusterId=dev4&product=intern&id=100000485&user=wei.chen%40corp.netease.com)

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result BackfillDetail 补数据详情

响应示例:


{

    "code": 0,

    "result": {

        "id": 100000485,

        "name": "补数据任务\_\_20220517\_221330",

        "leftTime": 1652630400000,

        "rightTime": 1652787165744,

        "startTime": 1652796812626,

        "status": "RUNNING\_EXCEPTION",

        "creator": {

            "fullName": "朱晨璐",

            "user": "zhuchenlu@corp.netease.com"

        },

        "concurrentSize": 5,

        "timeReverse": false,

        "crossSelfDepend": false,

        "executionSetting": {

            "failureAction": "CANCEL\_ALL",

            "retrySetting": {

                "maxTimes": 2,

                "interval": 60000

            },

            "parameters": {

                "d": "2022-01-01"

            },

            "highPriority": true,

            "yarnId": "default",

            "yarnQueue": "intern\_new"

        },

        "flows": \[

            {

                "flowAliasName": "tttt\_copy1",

                "flow": "tttt\_copy1",

                "project": "e57d9d08843843289f262501d149d15e",

                "periodInfo": {

                    "type": "PERIOD",

                    "periodUnit": "DAY",

                    "periodValue": 1

                }

            }

        \]

    },

    "reqId": "fd02022b17114a2f8c9ef1ee774c01e4",

    "cost": 513

}
2.6.3 补数据任务终止

POST /backfill/v1/kill

产品版本:v1.8.2

描述:补数据任务终止

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
id Number 补数据id
user String 当前操作人邮箱

请求示例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "clusterId":"dev4",

  "id":100000485,

  "product":"intern",

  "user":"wei.chen@corp.netease.com"

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/backfill/v1/kill'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息

响应示例:


{

"code":0,

"result":true,

"reqId":"2c57154fb4484f84a1b067e30e60dc26",

"cost":453

}

2.7 标签

2.7.1 获取项目标签列表

GET /tag/v1/list

产品版本:v1.8.6

描述:获取所有标签

URL参数/请求体

名称 类型 描述 必须 默认值
product String 项目名称
clusterId String 集群
user String 当前操作人邮箱
pageNum Number 分页 1
pageSize Number 分页条数 25

请求示例:

curl -i -X GET \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/tag/v1/list?clusterId=dev4&product=intern&user=wei.chen%40corp.netease.com'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result PageResult 标签列表

响应示例:

{

    "code": 0,

    "result": {

        "pageNum": 1,

        "pageSize": 25,

        "totalPage": 1,

        "totalCount": 2,

        "list": \[

            {

                "id": 1,

                "name": "标签1",

                "description": "这是一个描述",

                "values": \[

                    {

                        "id": 1,

                        "value": "值1"

                    }

                \]

            },

            {

                "id": 2,

                "name": "标签2",

                "description": "这是一个描述",

                "values": \[

                    {

                        "id": 2,

                        "value": "值123422"

                    },

                    {

                        "id": 4,

                        "value": "值12322"

                    }

                \]

            }

        \]

    },

    "reqId": "9daddce816b34fc0a0ff7315b29477f0",

    "cost": 767

}

2.8 Yarn任务

2.8.1 获取运行中yarn任务列表

GET /yarn/v1/running/list

产品版本:v1.8.8

描述:获取所有运行中的yarn任务列表。目前只支持提交到azkaban上运行的任务

URL参数/请求体

名称 类型 描述 必须 默认值
clusterId String 集群
user String 当前操作人邮箱
yarnId String 集群id default
yarnFullQueue String 指定队列名
applicationType YarnApplicationTypeEnum yarn任务类型
execType ExecTypeEnum 执行类型
execSource ExecSourceEnum 执行来源

请求示例:

curl -i -X GET \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/yarn/v1/running/list?clusterId=dev4&user=wei.chen%40corp.netease.com'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Array<YarnExecJob> 节点实例列表

响应示例:


{

    "code": 0,

    "result": \[

        {

            "applicationId": "application\_1694163532253\_194174",

            "product": "intern",

            "execId": 17253017,

            "flow": "dqcbada1dd8c5be55c2cf5c8645cd7f301e",

            "project": "",

            "jobId": "dqcbada1dd8c5be55c2cf5c8645cd7f301e",

            "jobAliasName": "dqcbada1dd8c5be55c2cf5c8645cd7f301e",

            "startTime": 1698134520668,

            "flowAliasName": "dqcbada1dd8c5be55c2cf5c8645cd7f301e",

            "yarnFullQueue": "root.intern\_new.default",

            "execType": "DEV\_EXECUTE",

            "submitter": {

                "fullName": "闫贤",

                "user": "yanxian01@corp.netease.com"

            },

            "applicationType": "SPARK",

            "execSource": "DQC"

        },

        {

            "applicationId": "application\_1694163532253\_160274",

            "product": "intern",

            "execId": 17174412,

            "flow": "20230804\_up\_02",

            "project": "7e4d434e7d9c4bfdb5c29be4dd5db4c8",

            "jobId": "up\_02",

            "jobAliasName": "up\_02",

            "startTime": 1697529995092,

            "flowAliasName": "20230804\_up\_02",

            "yarnFullQueue": "root.intern\_1.default",

            "execType": "SCHEDULE",

            "submitter": {

                "fullName": "孙伟鹏",

                "user": "sunweipeng01@corp.netease.com"

            },

            "applicationType": "SPARK",

            "execSource": "OFFLINE\_SCHEDULE"

        }

    \],

    "reqId": "4775908bcb2a407ebd5c55d783fb6ed3",

    "cost": 454

}
2.8.2 终止实例

POST /yarn/v1/kill

产品版本:v1.8.8

描述:终止实例,包括开发环境运行的实例

URL参数/请求体

名称 类型 描述 必须 默认值
user String 操作人
execId Number 实例id
product String 项目名称
clusterId String 集群

请求实例:


curl -i -X POST \\

   -H "Content-Type:application/json" \\

   -d \\

'{

  "product":"intern",

  "clusterId":"dev4",

  "user":"wei.chen@corp.netease.com",

  "execId":2883515

}

' \\

 'http://easy-openapi.bdms.service.163.org/openapi/easytaskops/yarn

 /v1/kill'

响应体

名称 类型 描述
code Number 响应码
reqId String 请求ID
cost Number 耗时
msg String 响应消息
result Boolean 终止结果

响应示例:


{

"code":0,

"result":true,

"reqId":"2c57154fb4484f84a1b067e30e60dc26",

"cost":453

}