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

OpenAPI 使用方法和通用说明请参考:

OpenAPI通用规范说明,实时计算平台对应的子产品代号为:easystream

一 公共参数

1.1 响应格式

名称 类型 描述
code Number 响应码:非0表示失败。
reqId String 请求ID
msg String 响应消息
result Object 响应结果
cost Number 耗时

1.2 响应码(1000~9999)

响应码 描述
1000 openapi请求参数为空!
1001 请求参数必须extends OpenapiBaseRequest
1002 参数[{}]不能为空
1003 获取用户[{}]信息失败
1004 用户[{}]不存在
1005 获取产品信息失败,产品[{}]!
1006 用户[{}]产品列表为空
1007 用户[{}]不在产品里, 产品[{}]!
1008 产品[{}]不存在
1009 任务名重复
1010 目录[{}],不存在
1011 该引擎类型不存在,或者没有入库[{}]
1012 目录[{}]格式有问题
1013 目录[{}]创建失败
1014 目录深度超过两层
1015 JAR包不存在
1016 任务不存在
1017 发布失败,错误原因:[{}]
1018 文件已存在
1019 文件格式只能是*.jar, *.xml, *.proto, *.keytab, *.conf
1131 cdc任务引擎类型无效
1132 参数[{}]无效,正确的是[{}]
1133 数据源id[{}]无效,查找不到对应的数据源
1134 cdc任务源端增量读取方式为ogg时目标端类型只能为kafka
1135 更新资源实例信息异常
1136 更新队列信息异常
1137 获取参数组信息异常
1138 获取参数组[{}]无效, 查找不到对应的参数组
1403 用户不存在或者权限不正确
3_101 输入参数异常[{}]
3_102 未找到文件元信息!请尝试重新上传完整文件
3_103 读/写HDFS时发生异常!
3_104 获取zk连接失败,请尝试重新上传文件
3_105 当前分块上传失败,请尝试重新上传文件
3_106 计算md5时发生异常!
3_107 uuid找不到对应的上传记录:{}
4001 数据源不存在
4002 未获取到数据
4003 topic 为空
4004 数据类型[{}]不支持
4005 数据类型不匹配
4006 map数据类型没有key
4007 map数据类型没有value
4008 array数据类型没有value
4009 数据类型没有为空
4010 需要传入子类型
4011 brokeList为空
4012 json解析失败:{}
4013 canal_json 需要data数组
4014 数据类型[{}],不支持自动解析
4015 debezium-json 需要op字段
4016 debezium-json 需要before字段
4017 debezium-json 需要AFTER字段
4018 maxwell-json 需要data字段
4019 链接kafka出现异常,检查kafka是否可用:[{}]
4020 decimal 校验失败:[{}],请输入精度(1-38)和小数位数(0-38且小于精度),用英文逗号隔开
4021 获取jsonObject失败,可能是你传入的不是对象
4022 引擎不存在
4023 kafka需要必填配置group id
4024 RocketMQ需要必填配置group
4025 获取的数据超过数据解析长度上限,请重新获取或手动输入数据
4437 添加流表失败:{}

1.3 公共枚举定义

1.3.1 EngineTypeEnum
枚举值 类型 名称
FLINK1_10 String flink引擎版本1.10
FLINK1_12_0 String flink引擎版本1.12
FLINK1_13 String flink引擎版本1.13
FLINK1_14 String flink引擎版本1.14
1.3.2 StartMode
枚举值 类型 名称
FROM_LAST_CHECKPOINT String 从最近的checkpoint启动
FROM_LAST_SAVEPOINT String 从最近的savepoint启动
FROM_PATH String 从指定的路径启动
NONE String 直接启动
1.3.3 JobStatusEnum 任务运行状态
枚举值 类型 名称
STARTING String 启动中
START_FAILED String 启动失败
RUNNING String 运行中
FINISHED String 任务执行结束,并正确的退出
FAILED String 任务因为异常运行失败
STOPPING String 停止中
STOPPED String 已停止
READY String 未启动
START_PENDING String 启动等待中
STOP_PENDING String 停止等待中
UNKNOWN String 未知(无法访问集群)
1.3.4 SearchTypeEnum 检索类型
枚举值 类型 名称
CATALOG String 数据源标识检索
DATASOURCE_NAME String 数据源名称检索
STREAM_TABLE_NAME String 流表名称检索
TOPIC_NAME String topic 名称检索
PHYSICAL_TABLE_NAME String 物理表名称
1.3.5 JobTypeEnum 任务类型
枚举值 类型 名称
SQL String SQL任务
JAR String JAR任务
1.3.6 DatasourceTypeEnum 数据源类型

同元数据中心大小写保持一致.

枚举值 类型 名称
kafka String Kafka
pulsar String Pulsar
rocketmq String RocketMQ
mysql String MySQL
oracle String Oracle
postgresql String Postgresql
kudu String Kudu
tidb String TiDB
es String Elasticsearch
hbase String HBase
redis String Redis
hive String Hive
starrocks String Starrocks
doris String Doris
1.3.7 TABLE_TYPE 流表的类型
枚举值 类型 名称
SOURCE_TABLE String 源表
SINK_TABLE String 目标表
DIM_TABLE String 维表
1.3.8 CheckpointStatusEnum checkpoint 状态
枚举值 类型 名称
IN_PROGRESS String 进行中
COMPLETED String 完成
FAILED String 失败

1.4 查询实体列表

1.4.1 JobTaskConfig

任务参数配置

字段说明:

名称 类型 描述 是否必传 默认值
checkpointSwitch boolean cp开关 False 关闭
checkpointInterval int cp间隔:单位s 30
checkpointMode CheckpointMode cp模式 EXACTLY_ONCE
checkpointTimeout int cp超时时间 30
restartStrategy RestartStrategy 重启策略 fixed-delay
restartAttempts int 重启失败次数 10
restartDelay int 重试时间间隔 10
restartInterval int 重启时间范围 300
extendConfig Map<String,Stirng> flink高级配置
1.4.2 JobResourceConfig
名称 类型 描述 是否必传 默认值
resourceInstanceName String 资源实例名称
queueName String 队列名称
slots int slot数量 1
tmMemory int tm内存:单位M 2048
jmMemory int jm内存:单位M 2048
parallelism int 并发数 1
accountType String 提交账号
PLATFORM_ACCOUNT 平台账号 (默认)
PRODUCT_ACCOUNT 项目账号
PLATFORM_ACCOUNT
deploymentMode String 部署模式:
per-job : PER_JOB
application-mode : APPLICATION_MODE
PER_JOB
1.4.3 CheckpointMode
名称 类型 描述
EXACTLY_ONCE String 至多一次
AT_LEAST_ONCE String 至少一次
1.4.4 StateBackend 存储介质
名称 类型 描述
hdfs String hdfs
rocksdb String rocksdb
1.4.5 RestartStrategy 重启策略
名称 类型 描述

fixed-delay
String 固定间隔,如果超过最大尝试次数,作业会最终失败,在连续两次重启尝试之间等待固定的时间

failure-rate
String
在失败之后重新启动作业,但是当超过故障率时,作业最终会失败。在连续两次重启尝试之间等待固定时间。

如果没有启用 checkpointing,则使用无重启 (no restart) 策略。

如果启用了 checkpointing,但没有配置重启策略,则使用固定间隔 (fixed-delay) 策略

fixed-delay** 需要传入重启失败次数和重试时间间隔**

failure-rate 需要传入 重启失败次数、重启时间范围、重试时间间隔

1.4.6 StartJobInfo

任务启动参数配置

字段说明:

名称 类型 描述 是否必传 默认值
jobId String 任务id
startMode startMode 启动任务的方式,枚举类型 NONE
statePath String 状态路径
1.4.7 StopJobInfo

任务停止参数配置

名称 类型 描述 是否必传 默认值
jobId String 任务id
triggerSavepoint boolean 是否触发savepoint保存
1.4.8 RestartJobInfo

任务重启参数配置

名称 类型 描述 是否必传 默认值
jobId String 任务id
startMode startMode 启动任务的方式,枚举类型 NONE
statePath String 状态路径
triggerSavepoint boolean 是否触发savepoint保存
1.4.9 AlarmInfo

告警信息配置

名称 类型 描述 是否必传 默认值
emails Array<String> 告警用户信息 null
alarmRuleList Array<AlarmRule> 告警规则详细描述 null
alarmGroupId String 告警接收组id,如sloth开发组 null
pausingInterval int 全局告警抑制时间 null
pausingEnable boolean 是否开启告警抑制 false
alarmEnable boolean 是否开启告警 true
1.4.10 AlarmRule

告警规则

名称 类型 描述 是否必传 默认值
metricType String 告警指标类型:
failover
data_retention_latency:数据滞留延迟
job_failed:任务失败
input_qps:输入QPS
output_qps:输出QPS
failed_checkpoint:checkpoint失败次数
user_defined_latency:用户自定义延迟
record_lag:滞留数据量
backpressure:反压
metricName String 告警指标名称 -1
cycleTime int 单个统计周期的时长:(任务失败不支持配置)
1:1分钟周期
5:5分钟周期
10:10分钟周期
15:15分钟周期
20:20分钟周期
25:25分钟周期
30:30分钟周期
alarmInterval int 报警间隔时长,单位:分钟
suppressOperator String 单个统计周期内的运算符:(仅支持用户自定义延迟)
>=:大于等于
-1
cycleNum String 连续多少个统计周期:
1:连续1个周期
3:连续3个周期
5:连续5个周期
-1
threshold String 定义的多个统计周期内告警阈值:(任务失败不支持配置) -1
suppressThreshold String 单个统计周期内告警阈值:(仅支持用户自定义延迟)
statisticsType String 聚合类型:
max:最大值
avg:平均值
sum:总和
-1
operator String 定义的多个统计周期内运算符:(任务失败不支持配置)
>=:大于等于
<:小于
-1
receiveType Array<String> 告警方式的接收类型(根据支持的通道设置):
sendemail:邮箱;
sendsms:短信
sendvoice:电话;
1.4.11 ParamSetInfo
名称 类型 描述 是否必传 默认值
id String 参数组唯一标识
priority int 参数组的优先级, 数值越小, 优先级越高.
如果不同的参数组中有相同的参数, 使用参数组priority 最小的值.
name String 参数组名称

1.5 响应实体列表

1.5.1 JobBasicInfo
名称 类型 描述
jobId String 任务id
jobName String 任务名称
jarInfo JarInfo 对Jar任务的描述
jobType String 任务类型
rawSql String SQL文本信息
fileList ResourceFileSimpleInfo 依赖的文件信息
udfList UdfSimpleInfo 依赖的udf信息
[请注意手动选择函数依赖的方式, udfList参数中不会显示udf信息,请尽快下线, 推荐采用对接udf stuido的新方式使用.]
paramSetList ParamSetInfo 依赖的参数组信息
creator String 任务的创建者
createTime String 任务的创建时间
publisher String 任务的发布人
env String 环境id
category String 任务所属目录id
tags Array<String> 任务的标签信息
description String 任务的描述信息
lastStartJobExecHistoryId String 最后一次启动任务的执行id
startExecId String 任务的启动id
lastClusterId String 任务所属的集群id
jobStatus String 任务的运行状态
applicationId String 对应flink任务id
flinkUrl String Flink web URL
monitorUrl String 任务的Grafana监控地址
jarHdfs String jar任务的话需要传入hdfs路径
jarName String jar包名称
mainClass String jar任务主类
mainArgs String 配置参数
1.5.2 ResourceFileSimpleInfo
名称 类型 描述
id String 依赖资源id
name String 依赖资源名称
path String 依赖资源的绝对路径
1.5.3 UdfSimpleInfo

注意: 手动选择函数依赖的方式, udfList参数中不会显示udf信息,请尽快下线,

推荐采用对接udf stuido的新方式使用.

名称 类型 描述
uid String udf 函数唯一标识
name String udf名称
className String udf class
resourceUid String udf 引用的资源文件
md5 String udf 引用的资源文件md5
1.5.4 StartJobResult
名称 类型 描述
jobId String 唯一标识
jobName String 任务名称
isSuccess Boolean 是否成功
errorMessage String 异常信息
1.5.5 StopJobResult
名称 类型 描述
jobId String 唯一标识
jobName String 任务名称
isSuccess Boolean 是否成功
errorMessage String 异常信息
1.5.6 RestartJobResult
名称 类型 描述
jobId String 唯一标识
jobName String 任务名称
isSuccess Boolean 是否成功
errorMessage String 异常信息
1.5.7 JobStatus
名称 类型 描述
jobId String 唯一标识
jobStatus String 任务状态
1.5.8 ProductInfo
名称 类型 描述
productId String 项目id
product String 项目
description String 项目描述
clusters Array<ClusterInfo>
1.5.9 ClusterInfo
名称 类型 描述
clusterId String 集群唯一标识
clusterName String 集群名称(中文)
1.5.10 UserInfo
名称 类型 描述
user String 用户
fullName String 用户名
1.5.11 LineageSearchTips
名称 类型 描述
product String 项目
clusterId String 集群
catalog String 数据源标识
datasourceName String 数据源名称
db String 数据库(流表显示流标库, 否则显示物理库名称)
table String 表名 (如果是topic检索, 返回的是topic名称, 流表和物理表检索的情况为表名, 其他情况该字段为空)
datasourceType DatasourceTypeEnum 数据源类型
searchType SearchTypeEnum 查询类型
useType String 在流表检索的时候使用, 用于标识是项目-集群流表还是公共流表
connectorUrl String 连接信息
1.5.12 LineageSearch
名称 类型 描述
product String 项目
clusterId String 集群
clusterName String 集群名称
jobId String 任务唯一标识
jobName String 任务名称
url String 任务跳转实时运维链接
jobType JobTypeEnum 任务类型
jobStatus JobStatusEnum 任务状态
version String 任务版本
owner Array<UserInfo> 任务负责人
referenceInfo String 引用信息
当搜索内容为数据源名称或数据源标识时,内容为当前搜索的数据源在本行任务中具体被使用的物理表名称,有库名的展示[库名].[表名],仅 有表名的(kudu、es)展示表名,消息队列类型的展示topic名称。同一任务引用同一数据源下多个表时,表名间用逗号隔开。

当搜索内容为topic或表名称时,内容为当前搜索的表实际在任务中被使用的方式,为流表时展示“流表”并展示该流表的库名.表名(如为公共流表则展示三元组),如同样的流表被使用了多次则去重。非流表时展示“非流表”。
1.5.13 TableDetail
名称 类型 描述
id Number 流表id
product String 项目名称
productId Number 流表归属的项目id
db String 流表库名称
datasourceType DATASOURCE_TYPE 流表的数据源类型
table String 流表名称
datasourceCatalog String 绑定的的数据源catalog
formatType FORMAT_TYPE 序列化方式
comments String 描述
creator UserInfo 创建者
modifier UserInfo 修改者
createTime Date 创建时间
datasourceName String 对应数据源的名称
fieldNodes Array<SlothFieldNode> 字段信息
clusterId String 对应的集群
availableTableTags Array<TABLE_TYPE> 表可用类型
props Array<MetaProp> 配置项列表
esDocumentType String 针对es的数据源小于7的版本需要填写documentType
physicsDB String 物理库的名称
physicsTable String 物理表的名称
watermarkField MetaProp watermark字段
delimiter String 针对csv的序列化类型需要输入分隔符
topic String 消息队列需要输入topic
useableRange Number 可用范围0、代表本项目-集群,1、代表公共流表
publicRange Number 公开范围0、代表项目组内公开,1代表指定某个项目-集群
publicProductAndCluster Array<ProductClusterVo> 公开的项目-集群列表
usedByJob Boolean 是否已经被任务引用,如果被引用了则不可以再变更库,以及公开范围
streamTableCatalog String 流表归属的catalog
1.5.14 MetaProp
名称 类型 描述
name String 配置名称
value String 配置项的值
timeUnit String 针对watermark存在需要输入时间单位
1.5.15 FieldNode
名称 类型 描述
columnName String 列名称
columnType String 列数据类型 (特殊类型: meta_field : META列 calc_field : 计算列)
decimalType String decimalType的精度
例如:38,18
columnEditEnable Boolean 是否可编辑
description String 描述
children Array<FieldNode> 子节点
timeDegree Number 时间节点精度默认是6
primaryKey Boolean 是否是主键
columnValue String 列自定义值(只有计算列和meta列生效)
1.5.16 TableSimpleDetail 流表简要信息
名称 类型 描述
id Number 流表id
db String 流表库名称
datasourceType DATASOURCE_TYPE 流表的数据源类型
catalog String 流表归属的catalog
table String 流表名称
datasourceCatalog String 绑定的的数据源catalog
modifier UserInfo 修改者
updateTime Date 创建时间
availableTableTags Array<TABLE_TYPE> 表可用类型
publicTable boolean 是否是公共流表
fromProductAndCluster String 创建时的项目-集群
publicRange Number 公开范围0、代表项目组内公开,1代表指定某个项目-集群
publicProductAndCluster Array<ProductClusterVo> 公开的项目-集群列表
1.5.17 ProductClusterVo项目-集群信息
名称 类型 描述
product String 项目名称
productId Number 项目id
clusterId String 集群id
clusterName String 集群名称
1.5.18 OpsJobBasicInfo运维任务基本信息
名称 类型 描述
jobId Number 任务id
jobName String 任务名称
jobType JobTypeEnum 任务类型
jobStatus JobStatusEnum 任务状态
env String 任务环境标签名称
category String 任务类别标签名称
owner Arrays<UserInfo> 责任人
lastStartTime Date 最近一次启动时间
vCore Double 任务占用的核数
memory Double 任务占用的内存
jobUrl String 任务运维详情页url
1.5.19 JobCurrentCheckpointInfo 当前运行的checkpoint
名称 类型 描述
jobId String 任务id
jobExecId String 任务执行id
checkpointName String checkpoint名称
checkpointDisplayDuration String checkpoint耗时(带单位)
checkpointDisplaySize String checkpoint大小(带单位)
checkpointDuration Number checkpoint耗时(单位:毫秒)
checkpointPath String checkpoint路径
checkpointSize Number checkpoint大小(单位: byte)
checkpointStatus CheckpointStatusEnum checkpoint状态
checkpointTime String checkpoint时间
1.5.20 JobCheckpointInfo 任务的历史checkpoint
名称 类型 描述
jobId String 任务id
jobExecId String 任务执行id
checkpointName String checkpoint名称
checkpointDisplaySize String checkpoint大小(带单位)
checkpointPath String checkpoint路径
checkpointSize Number checkpoint大小(单位: byte)
checkpointTime String checkpoint时间
1.5.21 JobSavepointtInfo 任务的历史savepoint
名称 类型 描述
jobId String 任务id
jobExecId String 任务执行id
savepointName String savepoint名称
savepointDisplaySize String savepoint大小(带单位)
savepointPath String savepoint路径
savepointSize Number savepoint大小(单位: byte)
savepointTime String savepoint时间

1.6 备注

1.6.1 字段支持的数据源类型

不同数据源支持的参数类型不同,具体阅读用户手册

字段类型
string
int
bigint
float
double
time
timestamp
boolean
varbinary
tinyint
smallint
date
row
map
array
decimal
metadata字段
计算列
1.6.2 DATASOURCE_TYPE 流表支持的数据源类型
枚举值 类型
kafka String
pulsar String
rocketmq String
mysql String
oracle String
es String
habse String
kudu String

二、OpenAPI列表

2.1 任务OpenAPI

模块名称支持版本状态请求方法请求路径
任务管理新建SQL任务v3.9.10上线POST/job/v2/sql/create
修改SQL任务v3.9.10上线POST/job/v2/sql/modify
删除任务v3.9.10上线POST/job/v2/delete
获取任务信息v3.9.10上线POST/job/v2/detail
启动任务v3.9.10上线POST/job/v2/start
停止任务v3.9.10上线POST/job/v2/stop
重启任务v3.9.10上线POST/job/v2/restart
获取任务当前状态v3.9.10上线POST/job/v2/status
新建jar任务v3.9.15上线POST/job/v2/jar/create
修改jar任务v3.9.15上线POST/job/v2/jar/modify
运维任务列表统计v3.9.17GET/ops/v1/job/list
获取任务当前运行的checkpointv3.9.17GET/ops/v1/job/checkpoint/current-list
获取任务历史checkpointv3.9.17GET/ops/v1/job/checkpoint/list
获取任务历史savepointv3.9.17GET/ops/v1/job/savepoint/list
文件上传文件上传链接建立v3.9.15上线POST/dev/v1/file/shard-upload/connect
文件分片上传v3.9.15上线POST/dev/v1/file/shard-upload/do
获取文件上传状态v3.9.15上线GET/dev/v1/file/shard-upload/status/get
平台OpenApi获取用户v3.9.16上线GET/platform/v2/getUserList
获取当前项目组下面的项目-集群信息v3.9.16上线GET/dev/v3/platform/productGroup/productAndClusterList
血缘检索血缘检索提示v3.9.16上线POST/lineage/v2/search/tips
根据搜索类型完全匹配获取血缘信息v3.9.16上线POST/lineage/v2/search
流表管理获取流表库v3.9.16上线GET/dev/v1/meta/databases/list
登记流表库v3.9.16上线POST/dev/v1/meta/databases/add
Table列表v3.9.16上线GET/dev/v1/meta/tables/list
表详情v3.9.16上线GET/dev/v1/meta/tables/get
更新表v3.9.16上线POST/dev/v1/meta/tables/update
新增表v3.9.16上线POST/dev/v1/meta/tables/add
删除表v3.9.16上线POST/dev/v1/meta/tables/delete
根据数据源类型获取可见的数据源列表v3.9.16上线GET/dev/v1/meta/datasources/type/list
获取物理表列表v3.9.16上线GET/dev/v3/meta/physics/tables/list
物理库列表v3.9.16上线GET/dev/v1/meta/physics/db/list
2.1.1 新建SQL 任务

POST /job/v2/sql/create

版本:3.9.10

描述:创建SQL类型的任务

URL参数/请求体

名称 类型 描述 是否必传 默认值
product String 项目名称
clusterId String 集群标识[英文]
user String 用户邮箱
jobName String 任务名称
engineType EngineTypeEnum 引擎类型,枚举值 13484000335
folderPath
String
保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
rawSql String sql语句,sql最好传入\n用于分隔
description String 任务描述
dependencyIds Array<String> 依赖文件id列表
paramSetInfo Array<ParamSetInfo> 参数组依赖
jobTaskConfig JobTaskConfig 任务配置
jobResourceConfig JobResourceConfig 资源配置 如果资源配置中设置了资源实例和队列, 可以不选.
alarmInfo AlarmInfo 告警配置 默认配置

请求示例:

{

"product": "sloth",

"clusterId": "dev4",

"user": "abc@example.com",

"jobName": "jarName",

"engineType": "FLINK1\_12\_0",

"folderPath": "/tmp/dir",

"rawSql": "this is sql",

"description": "sql job description",

"dependencyIds": \[

    1,

    2,

    4

\],

"paramSetList" : \[

    {

        "id" : 1,

        "priority" : 1           

    },

    {

        "id" : 2,

        "priority" : 2           

    }

\],

"jobTaskConfig" : {

    "checkpointSwitch" : true,

    "checkpointMode" : "EXACTLY\_ONCE"

},

"jobResourceConfig" : {

    "resourceInstanceName" : "sloth\_yarn\_cluster\_name",

    "queueName" : "sloth\_queue\_name"

}

}

返回示例:

名称 类型 描述
jobId Integer 新创建任务的id

{

"code": 0,

"msg": "success",

"result": {

    "jobId":"104722"

},

"requestId": null,

"reqId": null,

"cost": 2072

}

2.1.2 修改SQL任务

POST /job/v2/sql/modify

版本:3.9.10

描述:修改SQL类型的任务

URL参数/请求体

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务id
jobName String 任务名称
engineType EngineTypeEnum 引擎类型,枚举值
folderPath
String 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
rawSql String sql语句,需要传入分割符
description String 任务描述
dependencyIds Array<String> 依赖文件id列表
paramSetInfo Array<ParamSet> 参数组依赖
jobTaskConfig JobTaskConfig 任务配置
jobResourceConfig JobResourceConfig 资源配置
alarmInfo AlarmInfo 告警配置 不传不会修改

请求示例:

{

"jobId": "104722",

"product": "sloth",

"clusterId": "dev4",

"user": "abc@example.com",

"jobName": "jarName",

"engineType": "FLINK1\_12\_0",

"folderPath": "/tmp/dir",

"rawSql": "this is sql",

"description": "sql job description",

"dependencyIds": \[

    1,

    2,

    4

\],

"paramSetInfo" : \[

    {

        "id" : 1,

        "priority" : 1           

    },

    {

        "id" : 2,

        "priority" : 2           

    }

\],

"jobTaskConfig" : {

    "checkpointSwitch" : true,

    "checkpointMode" : "EXACTLY\_ONCE"

},

"jobResourceConfig" : {

    "resourceInstanceName" : "sloth\_yarn\_cluster\_name",

    "queueName" : "sloth\_queue\_name"

}

}

返回示例:

{

"code": 0,

"msg": "success",

"result": null,

"requestId": null,

"reqId": null,

"cost": 2072

}

2.1.3 获取任务信息

POST /job/v2/detail

版本:3.9.10

描述:获取最新版本任务信息

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务id

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobId": 1000056

}

响应体描述:

名称 类型 描述
jobBasicInfo JobBasicInfo 任务的基本信息

响应体示例:

{

"code": 0,

"msg": "success",

"result": {

    "jobBasicInfo": {

        "jobId": 1000056,

        "jobName": "测试任务2-rename",

        "jobType": "SQL",

        "rawSql": "\[{\\"cellType\\":\\"flink.sql\\",\\"enable\\":true,\\"key\\":\\"743a695f-9099-11ec-ad7c-fa163ea49987\\",\\"source\\":\[\\"--SQL\\",\\"--\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*--\\",\\"--Author: 杨晓航\\",\\"--CreateTime: 2021-12-09 15:57:41\\",\\"--Comment: 请输入业务注释信息\\",\\"--\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*--\\",\\"CREATE TABLE user\_log (\\",\\"user\_id VARCHAR,\\",\\"item\_id VARCHAR,\\",\\"category\_id VARCHAR,\\",\\"behavior VARCHAR,\\",\\"ts VARCHAR\\",\\") WITH (\\",\\"'connector' = 'datagen'\\",\\"-- , 'number-of-rows' = '10'\\",\\");\\",\\"\\",\\"create table print\_table WITH ('connector' = 'print')\\",\\"LIKE user\_log (EXCLUDING ALL);\\",\\"\\",\\"insert into print\_table\\",\\"select \* from user\_log;\\"\],\\"title\\":\\"SQL\\"}\]",

        "udfList": \[

            {

                "uid" : "xxxxxxxxxx"

                "name": "udf\_function",

                "className": "com.xxx.xx",

                "resourceUid": "xxxxxxxxx",

                "md5":"xxxxxx"

            }

        \],

        "paramSetList": \[

            {

            "id" : 1,

            "name" : "sloth\_param\_set\_1"

            "priority" : 1,                          

            },

            {

            "id" : 2,

            "name" : "sloth\_param\_set\_2"

            "priority" : 2,                          

            }

        \]

        "fileList": \[\],

        "creator": "abc@example.com",

        "createTime": "2021-12-09T07:57:41.000+0000",

        "publisher": "abc@example.com",

        "env": 381,

        "category": 351,

        "tags": \[\],

        "description": "xxxxxx",

        "lastStartJobExecHistoryId": 2745,

        "startExecId": 2036,

        "lastResourceInstanceId": 1,

        "jobStatus": "FAILED",

        "applicationId": "",

        "flinkUrl": "http://sloth-test2.dg.163.org:8088/proxy/application\_1645065290019\_0491/#/overview",

        "monitorUrl": "http://sloth.bdms.netease.com/grafana/d/rZuGINgWk/sloth?orgId=1&var-jobAppKey=1000056&var-jobSource=sloth&from=1648028948000&to=1648696837704"

    }

},

"requestId": dcaf583d,

"cost": 12

}

2.1.4 删除任务

POST /job/v2/delete

版本:3.9.10

描述:删除调用方传入的任务列表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobIds String 待删除的任务id集合,支持传入多个任务,任务id间用逗号分割

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobIds": "1000074,1000071"

}

响应体:

返回操作记录的id

{

"code": 0,

"msg": "success",

"result": 1354,

"requestId": dcaf583d,

"cost": 12

}

2.1.5 启动任务

POST /job/v2/start

版本:3.9.10

描述:启动调用方传入的任务

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobInfos Array<StartJobInfo> 任务的启动信息

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobInfos": \[

    {

        "jobId": 1000074,

        "startMode": "NONE",

        "statePath": "hdfs://dev4/user/sloth/sloth-fs-savepoints/spt/ckp-111"

    }

\]

}

响应体描述:

名称 类型 描述
results Array<StartJobResult> 启动任务的基本信息

响应体示例:

{

"code": 0,

"msg": "success",

"result": {

    "results": \[

        {

            "jobId": 1000074,

            "jobName": "testOpenApi",

            "isSuccess": true,

            "errorMessage": ""

        }

    \]

},

"requestId": "914abf5efc64444d92f92418e3c9840c",

"cost": 12

}

2.1.6 停止任务

POST /job/v2/stop

版本:3.9.10

描述:停止调用方传入的任务

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobInfos Array<StopJobInfo> 任务的停止信息

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobInfos": \[

    {

        "jobId": 1000096,

        "triggerSavepoint": false

    }

\]

}

响应体描述:

名称 类型 描述
results Array<StopJobResult> 停止任务的基本信息

响应体实例:

{

"code": 0,

"msg": "success",

"result": {

    "results": \[

        {

            "jobId": 1000096,

            "jobName": "sqlOpenApiTest3",

            "isSuccess": true,

            "errorMessage": ""

        }

    \]

},

"requestId": "9483bdc3f6d84be7a74f26cb78bd4b6a",

"cost": 12

}

2.1.7 重启任务

POST /job/v2/restart

版本:3.9.10

描述:重新启动调用方传入的任务

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobInfos Array<RestartJobInfo> 任务的重启信息

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobInfos": \[

    {

        "jobId": 1000096,

        "startMode": "NONE",

        "statePath": "",

        "triggerSavepoint": false

    }

\]

}

响应体描述:

名称 类型 描述
results Array<RestartJobResult> 重启任务的基本信息

响应体实例:

{

"code": 0,

"msg": "success",

"result": {

    "results": \[

        {

            "jobId": 1000096,

            "isSuccess": true,

            "errorMessage": ""

        }

    \]

},

"requestId": "19cd594800684549aa420e100f241fc5",

"cost": 12

}

2.1.8 获取任务当前状态

POST /job/v2/status

版本:3.9.10

描述:批量获取调用方传入任务的当前状态信息

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobIds String 待查询的任务id集合,支持传入多个任务,任务id间用逗号分割

请求示例:

{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"jobIds": "100056"

}

响应体描述:

名称 类型 描述
jobStatusList Array<JobStatus> 重启任务的基本信息

响应体实例:

{

"code": 0,

"msg": "success",

"result": {

    "jobStatusList": \[

        {

            "jobId": "1000056",

            "jobStatus": "FAILED"

        }

    \]

},

"requestId": dcaf583d,

"cost": 12

}

2.1.9 新建JAR任务

POST /job/v2/jar/create

版本:3.9.10

描述:创建SQL类型的任务

URL参数/请求体

名称 类型 描述 是否必传 默认值
product String 项目名称
clusterId String 集群标识[英文]
user String 用户邮箱
jobName String 任务名称
envTag String 环境标签 null
categoryTag String 类别标签 null
engineType EngineTypeEnum 引擎类型,枚举值 13484000335
folderPath
String
保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
description String 任务描述
dependencyIds Array<String> 依赖文件id列表
jobTaskConfig JobTaskConfig 任务配置
jobResourceConfig JobResourceConfig 资源配置 如果资源配置中设置了资源实例和队列, 可以不选.
alarmInfo AlarmInfo 告警配置 默认配置
jarHdfs String jar任务的话需要传入hdfs路径
jarName String jar包名称
mainClass String jar任务主类
mainArgs String 配置参数

请求示例:


{

"product": "sloth",

"clusterId": "dev4",

"user": "abc@example.com",

"jobName": "jarName",

"engineType": "FLINK1\_12\_0",

"folderPath": "/tmp/dir",

"description": "sql job description",

"dependencyIds": \[

1,

2,

4

\],

"jobTaskConfig": {

"checkpointSwitch": true,

"checkpointMode": "EXACTLY\_ONCE"

},

"jobResourceConfig": {

"resourceInstanceName": "sloth\_yarn\_cluster\_name",

"queueName": "sloth\_queue\_name"

},

"jarHdfs": "hdfs://test/test",

"jarName": "test.jar",

"mainClass": "com.net.MainClass",

"mainArgs": "-- args"

}

返回示例:

名称 类型 描述
jobId Integer 新创建任务的id

{

"code": 0,

"msg": "success",

"result": {

    "jobId":"104722"

},

"requestId": null,

"reqId": null,

"cost": 2072

}

2.1.10 修改JAR任务

POST /job/v2/jar/modify

版本:3.9.15

描述:修改JAR类型的任务

URL参数/请求体

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务id
jobName String 任务名称
envTag String 环境标签 null
categoryTag String 类别标签 null
engineType EngineTypeEnum 引擎类型,枚举值
folderPath
String 保存的文件夹路径,为空:位于根目录,格式:aa/bb,最多支持两级目录
description String 任务描述
dependencyIds Array<String> 依赖文件id列表
jobTaskConfig JobTaskConfig 任务配置
jobResourceConfig JobResourceConfig 资源配置
alarmInfo AlarmInfo 告警配置 不传不会修改
jarHdfs String jar任务的话需要传入hdfs路径
jarName String jar包名称
mainClass String jar任务主类
mainArgs String 配置参数

请求示例:


{

    "jobId": "104722",

    "product": "sloth",

    "clusterId": "dev4",

    "user": "abc@example.com",

    "jobName": "jarName",

    "engineType": "FLINK1\_12\_0",

    "folderPath": "/tmp/dir",

    "description": "sql job description",

    "dependencyIds": \[

        1,

        2,

        4

    \],

    "jobTaskConfig" : {

        "checkpointSwitch" : true,

        "checkpointMode" : "EXACTLY\_ONCE"

    },

    "jobResourceConfig" : {

        "resourceInstanceName" : "sloth\_yarn\_cluster\_name",

        "queueName" : "sloth\_queue\_name"

    },

"jarHdfs": "hdfs://test/test",

"jarName": "test.jar",

"mainClass": "com.net.MainClass",

"mainArgs": "-- args"

}

返回示例:


{

    "code": 0,

    "msg": "success",

    "result": null,

    "requestId": null,

    "reqId": null,

    "cost": 2072

}
2.1.11 建立文件上传链接

POST /dev/v1/file/shard-upload/connect

版本:3.9.15

描述:建立文件上传前的初始化工作,包括分块等功能

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
fileMd5 String 文件MD5
fileName String 文件名
totalChunkNum Number 文件总数

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

"fileName": "Easystream-20230421-135940-0272.zip",

"totalChunkNum": 1

}

响应体描述:

名称 类型 描述
result FileUploadResp 文件传输基本返回体

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

"fileName": "Easystream-20230421-135940-0272.zip",

"uuid": "e7689c9b80204b9e9d7c95fbe357cd03",

"nextChunkNum": 0,

"msg": null,

"status": 0

},

"requestId": null,

"reqId": null,

"cost": 0

}
2.1.12 文件分片上传

POST /dev/v1/file/shard-upload/do

版本:3.9.15

描述:将分片之后的文件分块上传到服务器

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
fileMd5 String 文件块MD5
uuid String 本次文件上传的唯一标识
fileName String 文件名
file File 当前要传的文件片
curChunkNum Number 当前块的切片序号

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

    "uuid": "e7689c9b80204b9e9d7c95fbe357cd03",

"fileName": "Easystream-20230421-135940-0272.zip",

"curChunkNum": 0

}

二进制分块文件 file :(binary)

响应体描述:

名称 类型 描述
result FileUploadResp 文件传输基本返回体

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

"fileName": "Easystream-20230421-135940-0272.zip",

"uuid": "e7689c9b80204b9e9d7c95fbe357cd03",

"nextChunkNum": 0,

"msg": null,

"status": 0

},

"requestId": null,

"reqId": null,

"cost": 0

}
2.1.13 获取文件上传状态

POST /dev/v1/file/shard-upload/status/get

版本:3.9.15

描述:将分片之后的文件分块上传到服务器

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
uuid String 本次文件上传的唯一标识

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4",

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

    "uuid": "e7689c9b80204b9e9d7c95fbe357cd03",

"fileName": "Easystream-20230421-135940-0272.zip"

}

响应体描述:

名称 类型 描述
result FileUploadResp 文件传输基本返回体

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"fileMd5": "903054ff6d80c555aa47f8d3bd83c77c",

"fileName": "Easystream-20230421-135940-0272.zip",

"uuid": "e7689c9b80204b9e9d7c95fbe357cd03",

"nextChunkNum": 0,

"msg": null,

"status": 0,

        "hdfsPath": "hdsf://usr/sloth/xxx",

},

"requestId": null,

"reqId": null,

"cost": 0

}
2.1.14 获取运维任务列表

GET /ops/v1/job/list

版本:3.9.17

描述:获取运维任务的列表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
pageNum Number 当前页从1开始 1
pageSize Number 页大小 25
jobType JobTypeEnum 任务类型筛选项 null
jobStatus JobStatusEnum 任务状态筛选项 null
owner String 任务负责人筛选 null

请求示例:


{

    "user": "abc@example.com",

    "product": "sloth",

    "clusterId": "dev4",

    "pageNum": 1,

    "pageSize": 25,

    "jobType": "SQL",

    "jobStatus": "RUNNING",

    "owner": "test@163.com"

}

响应体描述:

名称 类型 描述
data Arrays<OpsJobBasicInfo> 任务列表
count Number 任务总数,如果有筛选情况则按照筛选的数据统计
jobTypeSummary Map<JobTypeEnum,Number> 任务数统计,如果有筛选的情况则按照筛选的数据统计

响应体示例:


{

"code": 0,

"cost": 0,

"msg": "success",

"reqId": "",

"requestId": "733a841b54154592a578084706f6d39b",

"result": {

"data": \[

{

"jobId": 1111111133,

"jobName": "贵州Test-03",

"jobType": "JAR",

"jobStatus": "RUNNING",

"env": "test",

"category": "P0",

"owner": \[

{

"user": "abc@example.com",

"fullName": "xxx"

}

\],

"lastStartTime": "2023-08-22 11:16:30",

"vCore": 2.0,

"memory": 2.5,

"jobUrl": "http:xxxx"

}

\],

"jobTypeSummary": {

"JAR": 5,

"SQL": 3,

"CDC": 1

},

"count": 5

},

"success": true

}
2.1.15 获取任务当前运行的checkpoint

GET ops/v1/job/checkpoint/current-list

版本:3.9.17

描述:获取当前任务checkpoint列表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务唯一标识

请求示例:


{

    "user": "abc@example.com",

"product": "xxxx",

"clusterId": "dev4",

    "jobId": "123123"

}

响应体描述:

名称 类型 描述
result data Array<JobCurrentCheckpointInfo> 查询结果: 同官方只展示最近10条数据.

响应体实例:


{

    "code": 0,

    "msg": "success",

    "result": {

        "count": 1,

        "data": \[

            {

                "checkpointDisplayDuration": "125 ms",

                "checkpointDisplaySize": "22.8 KB",

                "checkpointDuration": 125,

                "checkpointName": "45e54d8a8018101d38909ae0964f5ccb/chk-1",

                "checkpointPath": "hdfs://xxxxxx/user/xxxx/sloth-fs-checkpoints/meta/1\_7/45e54d8a8018101d38909ae0964f5ccb/chk-1",

                "checkpointSize": 23351,

                "checkpointStatus": "COMPLETED",

                "checkpointTime": "2023-08-28 14:20:22",

                "jobExecId": "2748",

                "jobId": "103755"

            }

        \]

    },

    "requestId": null,

    "reqId": null,

    "cost": 203

}
2.1.16 获取任务历史checkpoint

GET ops/v1/job/checkpoint/list

版本:3.9.17

描述:获取任务历史checkpoint

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务唯一标识
pageNum Interger 当前页 1
pageSize Interger 每页大小 25
startTime String 开始时间 : 格式为yyyy-MM-dd HH:mm:ss
endTIme String 开始时间 : 格式为yyyy-MM-dd HH:mm:ss

请求示例:


{

    "user": "abc@example.com",

"product": "xxxx",

"clusterId": "dev4",

    "jobId": "123123",

    "pageNum": 1,

    "pageSize": 25,

}

响应体描述:

名称类型描述
resultcountInteger总条数
dataArray<JobCheckpointInfo>查询结果

响应体实例:


{

    "code": 0,

    "msg": "success",

    "result": {

        "count": 1,

        "data": \[

            {

                "checkpointDisplaySize":"31.73 KB",

                "checkpointName":"57193cfcdc4d08a534d67a02bdd2bd2c/chk-10",

                "checkpointPath":"hdfs://xxx/user/xxxx/sloth-fs-checkpoints/meta/1\_7/57193cfcdc4d08a534d67a02bdd2bd2c/chk-10",

                "checkpointSize":32487,

                "checkpointTime":"2023-08-24 20:30:39",

                "jobExecId":2730,

                "jobId":"103755"

                }

        \]

    },

    "requestId": null,

    "reqId": null,

    "cost": 203

}
2.1.17 获取任务历史savepoint

GET ops/v1/job/savepoint/list

版本:3.9.17

描述:获取任务历史savepoint

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
jobId String 任务唯一标识
pageNum Interger 当前页 1
pageSize Interger 每页大小 25
startDate String 开始时间 : 格式为yyyy-MM-dd
endDate String 开始时间 : 格式为yyyy-MM-dd

请求示例:


{

    "user": "abc@example.com",

"product": "xxxx",

"clusterId": "dev4",

    "jobId": "123123",

    "pageNum": 1,

    "pageSize": 25,

}

响应体描述:

名称类型描述
resultcountInteger总条数
dataArray<JobSavepointtInfo>查询结果

响应体实例:


{

    "code": 0,

    "msg": "success",

    "result": {

        "count": 1,

        "data": \[

            {

                "jobExecId": "2730",

                "jobId": "103755",

                "savepointDisplaySize": "10 KB",

                "savepointName": "57193cfcdc4d08a534d67a02bdd2bd2c/savepoint-57193c-1344de949652",

                "savepointPath": "hdfs://xxxx/user/sloth/sloth-fs-savepoints/spt/57193cfcdc4d08a534d67a02bdd2bd2c/savepoint-57193c-1344de949652",

                "savepointSize": 11113,

                "savepointTime": "2023-08-24 20:30:44"

            }

        \]

    },

    "requestId": null,

    "reqId": null,

    "cost": 203

}

2.2 平台OpenAPI

2.2.1 获取用户

GET /platform/v2/getUserList

版本:3.9.16

描述:获取用户集合

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "dev4"

}

响应体描述:

名称 类型 描述
result Array<UserInfo>

响应体实例:


{

}

{

"code": 0,

"msg": "success",

"result": \[

{

"user":"abc@example.com",

        "fullName":"张三"

}

\],

"requestId": "3d8a45dc",

    "cost": 12

}

2.2.2 获取当前项目组下面已经初始化过的项目-集群列表

GET /dev/v3/platform/productGroup/productAndClusterList

版本:3.9.15

描述:获取当前项目组下面已经初始化过的项目-集群列表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群

请求示例:

user: abc@example.com

product: sloth

clusterId: hz10

响应体描述:

名称 类型 描述
product String 项目名称
mammutClusterList Array<ProductClusterVo> 集群列表

响应体实例:


{

"code": 0,

"msg": "success",

"result": \[

{

"product": "linna\_prd\_d",

"clusterIdList": \[

{

"clusterId": "dev4",

"clusterName": "开发集群"

}

\]

}

\],

"requestId": "3d8a45dc",

    "cost": 12

}

2.3 血缘OpenAPI

2.3.1 血缘检索提示

POST /lineage/v2/search/tips

版本:3.9.16

描述:根据搜索类型模糊匹配获取血缘提示信息

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
keyword String 检索关键字
searchType SearchTypeEnum 检索类型
limit Interger 显示条数 25

请求示例:


{

"user": "abc@example.com",

"product": "xxxx",

"clusterId": "dev4"

    "keyword":"sloth",

    "searchType":"DATASOURCE\_NAME"

}

响应体描述:

名称 类型 描述
result Array<LineageSearchTips> 项目

响应体实例:


{

    "code": 0,

    "msg": "success",

    "result": \[

        {

            "product": "",

            "catalog": "sloth\_api\_autotest\_catalog\_17",

            "datasourceName": "",

            "db": "",

            "table": "",

            "datasourceType": "kafka",

            "searchType": "CATALOG",

            "connectorUrl": "",

            "clusterId": ""

        }

    \],

    "requestId": null,

    "reqId": null,

    "cost": 169

}
2.3.2 血缘检索结果

POST /lineage/v2/search

版本:3.9.16

描述:根据搜索类型完全匹配获取血缘信息

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
searchType SearchTypeEnum 检索类型
catalog String 数据源标识
db String 数据库
table String 表名 (如果是topic检索, 返回的是topic名称, 流表和物理表检索的情况为表名, 其他情况该字段为空)
connectorUrl String 连接信息的url
searchProduct String 查询项目名称
searchClusterId String 查询集群标识[英文]
owner Array<String> 任务负责人(邮箱)
datasourceType Array<DatasourceTypeEnum> 数据源类型
jobStatus Array<JobStatusEnum> 任务状态
pageNum Interger 当前页 1
pageSize Interger 每页大小 20

请求示例:


{

    "user": "abc@example.com",

"product": "xxxx",

"clusterId": "dev4"

    "searchType":"DATASOURCE\_NAME"

    "catalog": "sloth\_api\_autotest\_catalog\_17",

    "connectorUrl": "",

    "datasourceType": \["kafka"\],

    "db": "test",

    "table": "sloth\_lineage\_kafka\_114",

    "pageNum": 1,

    "pageSize": 25,

    "owner": \[\],

    "jobStatus": \[\],

    "searchProduct": "",

    "searchMammutCluster": ""

}

响应体描述:

名称类型描述
resultcountInteger总条数
dataArray<LineageSearch>查询结果

响应体实例:


{

    "code": 0,

    "msg": "success",

    "result": {

        "count": 1,

        "data": \[

            {

                "product": "xxxx",

                "jobId": "1548",

                "jobName": "job\_xxxx",

                "url": "http://xxxxxxxx",

                "jobType": "SQL",

                "jobStatus": "FAILED",

                "version": "v3",

                "owner": \[

                    {

                        "user": "abc@example.com",

                        "fullName": "xxxxxx"

                    }

                \],

                "referenceInfo": "非流表",

                "clusterId": "easyops-cluster",

                "clusterName": "easyops-cluster"

            }

        \]

    },

    "requestId": null,

    "reqId": null,

    "cost": 203

}

2.4 流表管理

流表管理主要涉及如下阶段:

根据数据源类型找到数据源列表。

根据数据源找到对应的物理表和物理库。

获取到支持的序列化方式(只有消息队列有)。

填入字段,kafka可以通过消息自动生成字段,关系型数据库可以根据访问数据源直接获取字段。

获取支持的配置列表,并填入需要的配置。

保存、删除、查看、列表查看。

2.4.1 获取流表库列表

GET /dev/v1/meta/databases/list

版本:3.9.15

描述:获取本项目下面流表库的列表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
db String 流表库,模糊搜索 null
publicDatabase Boolean 是否是公共流表库

请求示例:


db: a123

user: abc@example.com

product: mammut\_service

clusterId: easyops-cluster

publicDatabase: false

响应体描述:注意列表获取列表时字段信息不会返回

名称 类型 描述
catalog String 流表库归属的catalog
db String 流表库名
id Number 流表库id

响应体实例:


{

"code": 0,

"msg": "success",

"result": \[

{

"catalog": "intern\_default\_catalog",

"db": "AA",

"id": 157

}

\],

"requestId": "b9fc7431"

}
2.4.2 登记流表库

POST /dev/v1/meta/databases/add

版本:3.9.15

描述:登记流表库(包含公共流表)

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
db String 库名
publicDatabase boolean 是否是公共流表库

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "hz10",

"db": "test",

"publicDatabase": true

}

响应体实例:


{

"code": 0,

"msg": "success",

"result": null,

"requestId": "b9fc7431",

    "cost": 12

}
2.4.3 获取流表列表

GET /dev/v1/meta/tables/list

版本:3.9.15

描述:建立文件上传前的初始化工作,包括分块等功能

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 用户邮箱
product String 项目名称
clusterId String 集群标识[英文]
catalog String 归属catalog
db String 流表库
table String 流表名称-搜索时用 null
datasourceTypes Array<DATASOURCE_TYPE> 物理数据源类型,kafka,pulsar等 null
pageNum Number 当前页从1开始 1
pageSize Number 页大小 25
availableTableTags Arrays<TABLE_TYPE> 流表可用类型标签 null
publicTable Boolean 是否是公共流表
fromProduct String 筛选流表创建时的项目 null
fromClusterId String 筛选流表创建时的集群 null

请求示例:


catalog: public\_xx\_default\_catalog

db: a123

table: dev

datasourceType: kafka

usedTableTagList: SINK\_TABLE

pageNum: 1

pageSize: 25

user: abc@example.com

product: mammut\_service

clusterId: easyops-cluster

fromCluster: dev4

fromProduct: sloth

响应体描述:注意列表获取列表时字段信息不会返回

名称 类型 描述
count Number 数目
data Array<TableSimpleDetail> 详情表

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"data": \[

{

"id": 2093,

"db": "lyb\_db",

"datasourceType": "kafka",

                "catalog": "poc\_db",

"table": "t1",

                "datasourceCatalog": "绑定数据源的catlaog",

"modifier":{"user":"abc@example.com","fullName":"lyb"}

"updateTime": "2023-05-19 15:26:47",

"availableTableTags": \[\],

                "publicTable": true,

                "fromProductCluster": "sloth-开发集群",

                "publicRange": 1,

                "publicProductAndCluster":\[

                    {

                        "product":"sloth",

                        "clusterId":"dev4",

                        "clusterName":"开发集群"                   

                    }               

                \]

}

\],

"count": 4

},

"requestId": "de61c920",

    "cost": 12

}
2.4.4 登记流表

GET /dev/v1/meta/tables/add

版本:3.9.15

描述:登记流表功能

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
datasourceCatalog String 下拉选择数据源的catalog
comments String 描述
db String 流表库名
esDocumentType String es版本,es数据源必填 null
formatType FORMATE_TYPE 序列化方式 null
physicsDB String 实际对应物理库,es数据类型填写default null
physicsTable String 实际对应物理表,es数据类型填写index null
owner String 责任人 创建者
props Array<MetaProp> 配置信息 空数组
fieldNodes Array<FieldNode> 表字段信息
table String 流表名称
topic String 消息队列需要的topic null
dataourceType DATASOURCE_TYPE 表的数据源类型
availableTableTags Array<TABLE_TYPE> 表可用类型 空数组
watermarkField MetaProp watermark字段 null
delimiter String csv分割符 null,
useableRange Number 可用范围0、代表本项目-集群,1、代表公共流表
publicRange Number 公开范围0、代表项目组内公开,1代表指定某个项目-集群 如果是公共流表则必传
publicProductAndCluster Array<ProductClusterVo> 公开的项目-集群列表,必填本项目-集群 公开范围

请求示例:


{

"db": "lyb\_db",

"table": "test",

"owner": "",

"comments": "",

"datasourceType": "kafka",

"datasourceCatalog": "sloth\_hz8\_default\_catalog",

"topic": "te",

"formatType": "json",

"fields": \[\],

"fieldNodes": \[

{

"columnName": "a",

"columnType": "timestamp",

"columnEditEnable": false,

"description": "",

"children": \[\],

"id": "98731e90-f619-11ed-ab05-037bad55ad9f",

"primaryKey": false,

"timeDegree": 3,

            "columvalue":""

}

\],

"paramGetMethod": "AUTO",

"physicsDB": "",

"physicsTable": "",

"props": \[

{

"name": "key.format",

"value": "test"

}

\],

"availableTableTags": \[

"SOURCE\_TABLE"

\],

"esDocumentType": "",

"datasourceName": "sloth\_hz8\_default\_catalog",

"externalConf": {

"topic": "te",

"delimiter": ","

},

"watermarkField": {

"name": "a",

"value": "AS {selected\_column}",

"desc": "",

"timeUnit": ""

},

"user": "abc@example.com",

"product": "sloth",

"clusterId": "hz10",

    "useableRange": 1,

    "publicRange": 1,

    "publicProductAndCluster":\[

          {

            "product":"sloth",

            "clusterId":"dev4"                                

        }

    \]

}

响应体实例:


{

"code": 0,

"msg": "success",

"result": null,

"requestId": "93c20eb1",

    "cost": 12

}
2.4.5 更新流表

POST /dev/v1/meta/tables/update

版本:3.9.15

描述:登记流表功能

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
id Number 流表的id
catalog String 下拉数据源的catalog
comments String 描述 null
db String 流表库名
esDocumentType String es版本 null
formatType FORMATE_TYPE 序列化方式 null
clusterId String 项目的集群
physicsDB String 实际对应物理库针对数据库才有 null
physicsTable String 实际对应物理表针对数据库才有 null
owner String 责任人 创建者
props Array<MetaProp> 配置信息 空数组
fieldNodes Array<SlothFieldNode> 表字段信息
table String 流表名称,不可变更
topic String 消息队列需要的topic null
dataourceType DATASOURCE_TYPE 表的数据源类型
availableTableTags Arrat<TABLE_TYPE> 表可用类型 空数组
watermarkField MetaProp watermark字段 null
delimiter String csv分割符 ,
useableRange Number 可用范围0、代表本项目-集群,1、代表公共流表
publicRange Number 公开范围0、代表项目组内公开,1代表指定某个项目-集群 如果是公共流表则必传
publicProductAndCluster Array<ProductClusterVo> 公开的项目-集群列表,必填本项目-集群
targetDb String 更新后的DB名称
streamTableCatalog String 流表的catalog

请求示例:


{

    "id": 2234,

"db": "lyb\_db",

"table": "t2",

"owner": "",

"comments": "",

"dataourceType": "kafka",

"catalog": "sloth\_api\_autotest\_catalog",

"topic": "easy\_access\_audit",

"formatType": "json",

"fieldNodes": \[

{

"columnName": "a",

"columnType": "timestamp",

"columnEditEnable": false,

"description": "",

"children": \[\],

"id": "98731e90-f619-11ed-ab05-037bad55ad9f",

"primaryKey": false,

"timeDegree": 3,

            "columvalue":""

}

\],

"physicsDB": "",

"physicsTable": "",

"props": \[\],

"availableTableTags": \[

"SOURCE\_TABLE"

\],

"esDocumentType": "",

"datasourceName": "sloth\_api\_autotest\_catalog",

"creator": "abc@example.com",F

"modifier": "abc@example.com",

"createTime": "2023-04-19 15:44:49",

"updateTime": "2023-04-19 15:51:19",

"clusterId": "hz10",

"datasourceId": null,

"watermarkField": {

"name": "",

"value": "",

"desc": "",

"timeUnit": ""

},

"delimiter": ",",

"user": "abc@example.com",

"product": "sloth",

    "useableRange": 1,

    "publicRange": 1,

    "publicProductAndCluster":\[

          {

            "product":"sloth",

            "clusterId":"dev4",                                

        }

    \],

    "targetDb": "testDb",

    "streamTableCatalog": "public\_test\_default\_catalog"

}

响应体实例:


{

"code": 0,

"msg": "success",

"result": null,

"requestId": "93c20eb1",

    "cost": 12

}
2.4.6 删除流表

POST /dev/v1/meta/tables/delete

版本:3.9.15

描述:删除流表

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
catalog String 流表归属的catalog,不是绑定的数据源catalog注意不要传错
db String 流表库名
table String 流表名称

请求示例:


{

"user": "abc@example.com",

"product": "sloth",

"clusterId": "hz10",

"db": "test",

"table": "t1",

"catalog": "public\_xx\_default\_catalog"

}

响应体实例:


{

"code": 0,

"msg": "success",

"result": null,

"requestId": "93c20eb1",

    "cost": 12

}
2.4.7 获取流表详情

GET /dev/v1/meta/tables/get

版本:3.9.15

描述:流表详情获取

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
catalog String catalog
db String 流表库名
table String 流表名称

请求示例:


catalog: xx\_default\_catalog

db: lyb\_db

table: t1

user: abc@example.com

product: sloth

clusterId: hz10

响应体描述:

名称 类型 描述
result TableDetail 详情表

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"id": 2268,

"userId": null,

"product": null,

"db": "lyb\_db",

"datasourceType": "mysql",

"table": "mysql2",

"catalog": "mysql\_cdc\_test",

"formatType": null,

"delimiter": ",",

"topic": null,

"comments": "",

"creator": {"user":"abc@example.com","fullName":"lyb"},

"modifier": {"user":"abc@example.com","fullName":"lyb"},

"createTime": "2023-04-20 10:56:33",

"updateTime": "2023-04-20 10:56:33",

"datasourceName": "mysql\_cdc\_test",

"fieldNodes": \[

     {

     "columnName": "a",

     "columnType": "timestamp",

     "columnEditEnable": false,

     "description": "",

     "children": \[\],

     "primaryKey": false,

     "timeDegree": 3,

                "columvalue":"",

                "decimalType": ""

     }

\],

"clusterId": null,

"props": \[

{

"name": "isCDC",

"value": "true",

"desc": null,

"timeUnit": null

}

\],

"datasourceId": null,

"availableTableTags": \[\],

"watermarkField": {

"name": "",

"value": "",

"desc": "",

"timeUnit": ""

},

"metahubPhysicsDb": "demo",

"metahubPhysicsTable": "products",

"esDocumentType": "",

        "useableRange": 1,

        "publicRange": 1,

        "publicProductAndCluster":\[

              {

                "product":"sloth",

                "clusterId":"dev4",                                

            }

        \],

        "groupId": "test\_group",

        "streamTableCatalog": "public\_test\_default\_catalog",

        "usedByJob": false,

        "sourceTableName": "db.table",

        "hasNewVersion": false,

        "subscribeSourceTable": true

     },

"requestId": "ebc0971b"

}
2.4.8 获取指定类型的数据源列表

GET /dev/v1/meta/datasources/type/list

版本:3.9.15

描述:根据数据源类型获取

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
datasourceType String 数据源类型
pageNum Number 分页页码从1开始 1
pageSize Number 分页大小 25
datasourceName String 搜索关键词 null

请求示例:

pageSize: 50

keyword: test

pageNum: 1

dsType: mysql

user: abc@example.com

product: sloth

clusterId: hz10

响应体描述:

名称 类型 描述
datasourceType String 数据源类型
catalog String 数据源的catalog
name String 数据源名称
id Number 数据源id
productId Number 项目id

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"pageNum": 1,

"pageSize": 50,

"total": 97,

"items": \[

{

"datasourceType": "mysql",

"catalog": "physical\_mysql2",

"name": "狗粮计划\_印度",

"id": 3406,

"productId": 334,

}

\]

},

"requestId": null,

"reqId": null,

"cost": 0

}
2.4.9 获取指定数据源下面的物理库列表

GET /dev/v1/meta/physics/db/list

版本:3.9.15

描述:根据数据源类型获取

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
catalog String 数据源catalog
pageNum Number 分页页码从1开始
pageSize Number 分页大小
db Number 搜索关键词 null

请求示例:

pageSize: 50

keyword: test

pageNum: 1

catalog: guomao_test_ingestion_catalog

user: abc@example.com

product: sloth

clusterId: hz10

响应体描述:

名称 类型 描述
catalog String 数据源catalog
db String 数据库名称

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"data": \[

{

"catalog": "guomao\_standby\_test\_catalog",

"db": "APEX\_030200"

}

\]

},

"requestId": null,

"reqId": null,

"cost": 0

}
2.4.10 获取指定数据源和库下面所有的表

GET /dev/v3/meta/physics/tables/list

版本:3.9.15

描述:根据数据源类型获取

URL参数/请求体:

名称 类型 描述 是否必传 默认值
user String 邮箱
product String 项目
clusterId String 集群
catalog String 数据源catalog
db String 数据库名称
pageNum Number 分页页码从1开始
pageSize Number 分页大小
table String 搜索关键词

请求示例:

catalog: guomao_standby_test_catalog

db: APPQOSSYS

pageNum: 1

pageSize: 50

table: test:

user: abc@example.com

product: sloth

clusterId: hz10

响应体描述:

名称 类型 描述
table String 表名
db String 库名
catalog String 数据源catalog名称
id Number 表id

响应体实例:


{

"code": 0,

"msg": "success",

"result": {

"data": \[

{

"table": "WLM\_CLASSIFIER\_PLAN",

"id": 0,

"db": "APPQOSSYS",

"catalog": "guomao\_standby\_test\_catalog",

}

\]

},

"requestId": null,

"reqId": null,

"cost": 0

}