数据质量中心OpenAPI
此手册用于记录大数据开发与管理平台中,DQC产品所有对外开放的OpenAPI,阅读此手册,你将了解DQC产品开放的OpenAPI能力与调用方法。
一、公共参数
1.1 响应格式
名称 | 类型 | 描述 |
---|---|---|
code | Number | 响应码 |
reqId | String | 请求ID |
cost | Number | 耗时,单位:ms |
msg | String | 响应消息 |
result | Object | 响应结果 |
1.2 异常响应码
注意:按照统一规范,实际通过openapi网关返回的与业务异常响应码为:18+响应码 其中18为固定表示easydqc子产品,其它非业务异常码可以参考:OpenAPI通用规范说明
响应码 | 说明 |
---|---|
1000 | 执行实例不存在 |
1404 | 当前获取的资源不存在或者其它相关资源不存在 |
1403 | 对当前操作资源无权限或者对其它相关资源无权限 |
1.3 枚举对象
1.3.1 DatasourceTypeEnum
数据源类型
枚举值 | 类型 | 名称 |
---|---|---|
hive | String | Hive |
mysql | String | MySQL |
vertica | String | Vertica |
greenplum | String | GreenPlum |
oracle | String | Oracle |
sql_server | String | SqlServer |
1.3.2 ScheduleTypeEnum
调度类型
枚举值 | 类型 | 名称 |
---|---|---|
1 | Number | 线上调度 |
2 | Number | 试跑 |
3 | Number | 重跑 |
4 | Number | 补数据 |
5 | Number | 开发模式 |
1.3.3 JobStatusEnum
执行实例状态值
枚举值 | 类型 | 名称 |
---|---|---|
1 | Number | 运行中 |
2 | Number | 成功 |
3 | Number | 失败 |
4 | Number | 异常(规则校验不通过) |
1.3.4 RuleLevelEnum
规则类型
枚举值 | 类型 | 名称 |
---|---|---|
0 | Number | 字段级 |
1 | Number | 表级 |
1.3.5 CheckTypeEnum
校验类型
枚举值 | 类型 | 名称 |
---|---|---|
0 | Number | 准确性校验 |
1 | Number | 完整性校验 |
2 | Number | 有效性校验 |
5 | Number | 唯一性校验 |
6 | Number | 一致性校验 |
8 | Number | 及时性校验 |
-1 | Number | 其他 |
1.3.6 ComputeRuleTypeEnum
计算规则类型
枚举值 | 类型 | 名称 |
---|---|---|
DEFAULT | String | 默认 |
REFERENCE_VOLATILITY_RATIO | String | 与基准值计算波动率 |
REFERENCE_RATIO | String | 与基准值计算比率 |
REFERENCE_DIFFERENCE | String | 与基准值差值 |
1.3.7 CompareTypeEnum
校验方式
枚举值 | 类型 | 名称 |
---|---|---|
0 | Number | 大于 |
1 | Number | 小于 |
2 | Number | 大于等于 |
3 | Number | 小于等于 |
4 | Number | 等于 |
5 | Number | 不等于 |
6 | Number | 属于某区间,且包含该区间的临界值 |
7 | Number | 属于某区间,不包含该区间的临界值 |
8 | Number | 属于某区间,且包含该区间的临界值 |
9 | Number | 不属于某区间,不包含该区间的临界值 |
1.3.8 ReferenceValueTypeEnum
参考值类型
枚举值 | 类型 | 名称 |
---|---|---|
TOTAL_LINES_COUNT | String | 总行数 |
NTH_DAYS_LATEST | String | N天前值 |
NTH_DAYS_AVG | String | 前N天平均值 |
LAST | String | 上个周期值 |
1.3.9 ExploreTaskRuleTypeEnum
形态探查任务规则类型枚举
枚举值 | 类型 | 名称 |
---|---|---|
1 | Number | 去重后总量 |
2 | Number | 空值/空串比例 |
3 | Number | 最大长度 |
4 | Number | 最大长度值预览 |
5 | Number | 最小长度 |
6 | Number | 最小长度值预览 |
7 | Number | 最大值 |
8 | Number | 最小值 |
1.3.10 JobInstanceEnum
枚举值 | 类型 | 名称 |
---|---|---|
1 | Number | 等待 |
2 | Number | 运行中 |
3 | Number | 成功 |
4 | Number | 终止中 |
5 | Number | 终止 |
6 | Number | 失败 |
1.4 基础对象
1.4.1 PageResult
分页查询结果
字段 | 类型 | 描述 |
---|---|---|
pageSize | Number | 每页显示条数 |
pageNum | Number | 页数 |
totalCount | Number | 总条数 |
totalPage | Number | 总页数 |
list | Array<Object> | 当前页结果 |
1.4.2 User
用户信息
字段 | 类型 | 描述 |
---|---|---|
user | String | 用户邮箱 |
fullName | String | 用户全名 |
1.4.3 JobRunParameter
任务运行参数,支持spark运行参数
字段 | 类型 | 描述 |
---|---|---|
parameterName | String | 参数名 |
parameterValue | String | 参数值 |
1.5 执行实例
1.5.1 PartitionField
分区配置
字段 | 类型 | 描述 |
---|---|---|
fieldType | String | 字段类型 |
fieldName | String | 字段名称 |
fieldValue | String | 字段值 |
1.5.2 Job
执行实例数据对象
字段 | 类型 | 描述 |
---|---|---|
jobId | Number | 执行实例ID |
taskId | Number | 监控任务ID |
taskName | String | 监控任务名称 |
scheduleType | ScheduleTypeEnum | 实例类型 |
datasourceType | DatasourceTypeEnum | 数据源类型 |
datasourceId | Number | 数据源ID,仅非Hive有 |
db | String | 库名/schema |
table | String | 表名 |
partitionFields | Array<PartitionField> | 具体执行的分区配置 |
taskOwner | User | 监控负责人 |
tableOwner | User | 表负责人,仅非Hive有 |
startTime | String | 开始时间 |
endTime | String | 结束时间 |
status | JobStatusEnum | 任务状态/监控结果 |
planRuleNum | Number | 计划规则数 |
errorRuleNum | Number | 异常规则数 |
abnormalResultDatabaseName | String | 异常结果存储库名 |
abnormalResultTableName | String | 异常结果存储表名 |
abnormalResultPartitionField | PartitionField | 异常结果存储分区 |
1.5.3 JobResult
执行实例运行结果数据对象
字段 | 类型 | 描述 |
---|---|---|
templateRuleResults | Array<TemplateRuleResult> | 模板规则结果数据 |
customRuleResults | Array<CustomRuleResult> | 自定义规则结果数据 |
standardRuleResults | Array<CustomRuleResult> | 标准推荐规则结果数据 |
1.5.4 TemplateRuleResult
模板规则结果对象
字段 | 类型 | 描述 |
---|---|---|
id | Number | ID |
interrupt | Boolean | 是否强规则 |
ruleId | Number | 规则模板ID |
columnName | String | 字段名称,字段级规则有 |
ruleLevel | RuleLevelEnum | 规则类型 |
checkType | CheckTypeEnum | 校验类型 |
ruleName | String | 规则名称 |
expects | Array<RuleExpect> | 期望数据 |
actuals | Array<RuleActualValue> | 结果数据 |
pass | Boolean | 结果 |
description | String | 规则描述信息 |
abnormalDataSql | String | 异常规则sql |
abnormalResultStorage | Boolean | 异常结果写入是否成功 |
1.5.5 CustomRuleResult
自定义规则结果对象JobResult
字段 | 类型 | 描述 |
---|---|---|
id | Number | ID |
interrupt | Boolean | 是否强规则 |
ruleLevel | RuleLevelEnum | 规则类型 |
checkType | CheckTypeEnum | 校验类型 |
ruleName | String | 规则名称 |
expects | Array<RuleExpect> | 字段自定义规则的期望数据 |
columnExpects | Array< RuleColumnExpect > |
自定义SQL的期望数据 |
actuals | Array<RuleActualValue> | 自定义SQL的结果数据 |
columnActuals | Array<RuleColumnActualValue> | 字段自定义规则的结果数据 |
pass | Boolean | 结果 |
description | String | 规则描述信息 |
abnormalDataSql | String | 异常规则sql |
abnormalResultTableName | String | 结果表表名(自定义规则) |
abnormalResultStorage | Boolean | 异常结果写入是否成功 |
1.5.6 RuleExpect
规则期望数据对象
字段 | 类型 | 描述 |
---|---|---|
compareType | CompareTypeEnum | 校验方式 |
leftValue | Number | 阈值1 |
rightValue | Number | 阈值2 |
computeRuleType | ComputeRuleTypeEnum | 计算规则类型 |
referenceType | ReferenceValueTypeEnum | 参考值类型 |
referenceValue | Number | 基准值 |
1.5.7 RuleColumnExpect
规则字段期望数据对象
字段 | 类型 | 描述 |
---|---|---|
index | Number | 序号,从1开始 |
column | String | 字段别名 |
expects | Array<RuleExpect> | 期望数据 |
1.5.8 RuleActualValue
规则实际运行结果数据对象
字段 | 类型 | 描述 |
---|---|---|
compareType | CompareTypeEnum | 校验方式 |
leftValue | Number | 阈值1 |
rightValue | Number | 阈值2 |
computeRuleType | ComputeRuleTypeEnum | 计算规则类型 |
referenceType | ReferenceValueTypeEnum | 参考值类型 |
referenceValue | Number | 基准值 |
sampleValue | String | 采样结果数据 |
referenceResultValue | String | 参考结果数据 |
computeResultValue | String | 本次计算规则数据,可能为正负无穷,分别用字符串 infinity, -infinity 表示 |
1.5.9 RuleColumnActualValue
规则字段的实际运行结果数据对象
字段 | 类型 | 描述 |
---|---|---|
index | Number | 序号,从1开始 |
column | String | 字段别名 |
actuals | Array<RuleActualValue> | 运行结果数据 |
1.5.10 OpenapiRunDqTaskInstanceIdVO
规则字段的实际运行结果数据对象
字段 | 类型 | 描述 |
---|---|---|
id | Number | 质量监控任务实例ID |
1.6 质量报告
1.6.1 RankedTable
表排序对象
字段 | 类型 | 描述 |
---|---|---|
rank | Number | 排名数据,从1开始 |
datasourceType | DatasourceTypeEnum | 数据源类型 |
datasourceId | Number | 数据源ID |
db | String | 库名/schema名 |
table | String | 表名 |
owner | User | 表负责人,仅Hive有 |
qualityScore | Number | 今日质量分 |
1.6.2 TablePg
表排序对象
字段 | 类型 | 描述 |
---|---|---|
catalogName | String | 数据源 |
datasourceType | String | 数据源类型 |
dbName | String | 数据库名 |
tableName | String | 表名 |
1.7 形态探查
1.7.1 ExploreTask
形态探查任务列表信息
字段 | 类型 | 描述 |
---|---|---|
taskId | String | 形态探查任务ID |
taskName | String | 形态探查任务名称 |
db | String | 库名 |
table | String | 表名 |
partitionFields | Array<PartitionField> | 分区条件 |
otherFilter | String | 非分区过滤条件 |
description | String | 任务描述 |
createdTime | String | 任务创建时间 |
updatedTime | String | 任务最后修改时间 |
owner | User | 任务负责人 |
creator | User | 任务创建人 |
modifier | User | 任务最后修改人 |
1.7.2 ExploreTaskInstance
形态探查任务实例列表信息
字段 | 类型 | 描述 |
---|---|---|
id | String | 形态探查任务实例ID |
taskId | String | 形态探查任务ID |
taskName | String | 形态探查任务名称 |
queueName | String | 执行队列 |
db | String | 库名/schema |
table | String | 表名 |
partitionFields | Array<PartitionField> | 具体执行的分区配置 |
taskOwner | User | 监控负责人 |
creator | User | 任务执行人 |
startTime | String | 开始时间 |
endTime | String | 结束时间 |
status | JobInstanceStatusEnum | 任务状态/监控结果 |
logUrl | String | 任务运行日志url |
1.7.3 ExploreTaskTableResult
形态探查任务表级结果
字段 | 类型 | 描述 |
---|---|---|
totalCount | String | 总行数 |
distinctCount | String | 去重后行数 |
primaryKeys | Array<String> | 主键字段 |
uniqueFlag | Boolean | 主键是否唯一 |
1.7.4 ExploreTaskFieldResult
形态探查任务字段级结果
字段 | 类型 | 描述 |
---|---|---|
columnName | String | 字段名称 |
columnType | String | 字段类型 |
exploreItems | Array<ExploreTaskRuleTypeEnum> | 启用形态探查规则类型 |
distinctCount | String | 去重后总行数 |
notNullCount | String | 非空行数 |
blankRatio | String | 空行比率 |
maxLength | String | 最大长度 |
maxLengthValue | String | 最大长度值预览 |
minLength | String | 最小长度 |
minLengthValue | String | 最小长度值预览 |
maxValue | String | 最大值 |
minValue | String | 最小值 |
1.7.5 ExploreTaskEnumIntanceResult
形态探查任务字枚举实例结果
字段 | 类型 | 描述 |
---|---|---|
key | String | 枚举值 |
num | Number | 枚举值数量 |
proportion | Number | 数量占比 |
1.7.6 ExploreTaskEnumResult
形态探查任务字段级结果
字段 | 类型 | 描述 |
---|---|---|
columnName | String | 字段名称 |
enumSize | Number | 枚举值类型总数 |
enumInstances | Array<ExploreTaskEnumIntanceResult> | 枚举实例结果 |
1.7.7 ExploreTaskInstanceID
形态探查任务实例ID
字段 | 类型 | 描述 |
---|---|---|
id | String | 形态探查任务实例ID |
1.7.8 ExploreTaskInstanceResult
形态探查任务实例结果详情
字段 | 类型 | 描述 |
---|---|---|
id | String | 形态探查任务实例ID |
exploreTask | ExploreTask | 执行时形态探查任务信息 |
jobExecuteParam | JobExecuteParam | 执行实例参数 |
creator | User | 任务执行人 |
startTime | String | 开始时间 |
endTime | String | 结束时间 |
status | JobInstanceStatusEnum | 任务状态/监控结果 |
logUrl | String | 日志Url |
tableResult | ExploreTaskTableResult | 表级结果 |
fieldResults | Array<ExploreTaskFiledResult> | 字段级结果 |
enumResults | Array<EploreTaskEnumResult> | 枚举结果 |
1.7.9 JobExecuteParam
形态探查任务实例执行参数
字段 | 类型 | 描述 |
---|---|---|
executorsNum | Number | spark executor并发数 |
driverMemory | Number | spark driver 内存大小,单位:MB |
executorMemory | Number | spark executor 内存大小,单位:MB |
parameters | Array<JobRunParameter> | 运行参数 |
queueName | String | 执行队列 |
二、OpenAPI列表
2.1 OpenAPI总览
2.2 基础信息
2.2 执行实例
2.2.1 查询执行实例列表
POST /job/v1/list
产品版本:v2.1.0、v2.9.0
描述:查询执行实例列表,按监控开始时间、数据源类型、监控负责人、表负责人、监控名称、表名、实例类型、实例ID 查询
URL参数/请求体
Content-Type: application/json
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
pageNum | Number | 页码 | 否 | 1 |
pageSize | Number | 每页条数 | 否 | 10 |
datasourceType | DatasourceTypeEnum | 数据源类型 | 否 | |
scheduleType | ScheduleTypeEnum | 调度类型 | 否 | |
startTime | Number | 查询周期开始毫秒时间戳,默认今天开始时间 | 否 | 今天开始时间戳 |
endTime | Number | 查询周期结束毫秒时间戳,默认今天结束时间 | 否 | 今天结束时间戳 |
status | JobStatusEnum | 任务状态 | 否 | |
taskOwners | Array<String> | 任务负责人邮箱,多选 | 否 | |
tableOwners | Array<String> | 表负责人邮箱(仅hive有),多选 | 否 | |
taskName | String | 监控名称(模糊匹配) | 否 | |
searchType | Number | 0 表示全部匹配,1 表示监控名称(模糊匹配) 2 表示表名称或者库表名(模糊匹配) | 否 | |
searchValue | String | 搜索关键词 | 否 |
请求示例:(注意鉴权信息需要额外添加,具体可以参考OpenAPI通用规范说明)
{
"product": "WKEhVpR6Kb",
"pageNum": 1,
"clusterId": "56868",
"pageSize": 10,
"user": "bqOLc1RTBo",
"datasourceType": "MYSQL",
"taskOwners": \[
"3hGdAMl1hP",
"A2RdY0n3Ie",
"eTzzcRSTXD"
\],
"tableOwners": \[
"eSpXoCpxAW",
"aOU2iCqmYz",
"0qEm5tjEGJ"
\],
"scheduleType": 31641,
"startTime": 1650542443020,
"endTime": 1650541578929,
"searchType": 2,
"searchValue": "wwqCYsIcsK",
"taskName": "T1eKScwmJX"
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码 |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | PageResult<Job> | 执行实例列表数据 |
响应示例:
{
"reqId": "sdfds8434sfdf",
"code": 0,
"msg": "success",
"cost": 236,
"result": {
"pageSize": 100,
"pageNum": 2,
"totalCount": 1000,
"totalPage": 10,
"list": \[
{
"jobId": 99939,
"taskId": 100752,
"taskName": "tnPJMdBJ6E",
"scheduleType": 9154,
"datasourceType": "ORACLE",
"datasourceId": 101194,
"db": "Lg7RF0NyMX",
"table": "BHwszDZpOE",
"partitionFields": \[
{
"fieldType": "String",
"fieldName": "date",
"fieldValue": "2022-04-21"
}
\],
"taskOwner": {
"user": "ELFbM4nnHz",
"fullName": "5q5bl9KG72"
},
"tableOwner": {
"user": "ek3do9UKsG",
"fullName": "zA64A5uHr7"
},
"startTime": "2022-04-22 10:00:00",
"endTime": "2022-04-22 10:00:00",
"status": 94392,
"planRuleNum": 89147,
"errorRuleNum": 58357
}
\]
}
}
2.2.2 查询执行实例运行结果
GET /job/v1/result
产品版本:v2.1.0、v2.7.0、v2.9.0
描述:查询执行实例运行结果
URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
jobId | Number | 执行实例ID | 是 |
请求示例:(注意鉴权信息需要额外添加,具体可以参考OpenAPI通用规范说明)
?jobId=1&product=intern&clusterId=dev4&user=
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码 |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | JobResult | 执行实例运行结果数据 |
响应示例:
{
"reqId": "sdfds8434sfdf",
"code": 0,
"msg": "success",
"cost": 236,
"result": {
"templateRules": \[
{
"id": 70974,
"description": "3wX7phTccc",
"disable": false,
"interrupt": false,
"columnName": "RV96kUIBbo",
"ruleLevel": 0,
"checkType": "-1",
"ruleName": "88sgyMV30I",
"actuals": \[
{
"sampleValue": "2orYakJpWL",
"referenceResultValue": "tlArhi6os5",
"computeResultValue": "Kj4UQ3wTgi",
"compareType": "3",
"leftValue": "1.0",
"rightValue": "hfZwv5BKHt",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_LATEST",
"referenceValue": 1
}
\],
"expects": \[
{
"compareType": "6",
"leftValue": "1.0",
"rightValue": "IVOcT2rNwa",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_AVG",
"referenceValue": 1
}
\],
"pass": true,
"abnormalDataSql": "select count(1) as num from \`test\`.\`test\`"
}
\],
"customRules": \[
{
"id": 70974,
"description": "3wX7phTccc",
"disable": false,
"interrupt": false,
"columnName": "RV96kUIBbo",
"ruleLevel": 0,
"checkType": "-1",
"ruleName": "88sgyMV30I",
"actuals": \[
{
"sampleValue": "2orYakJpWL",
"referenceResultValue": "tlArhi6os5",
"computeResultValue": "Kj4UQ3wTgi",
"compareType": "3",
"leftValue": "1.0",
"rightValue": "hfZwv5BKHt",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_LATEST",
"referenceValue": 1
}
\],
"expects": \[
{
"compareType": "6",
"leftValue": "1.0",
"rightValue": "IVOcT2rNwa",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_AVG",
"referenceValue": 1
}
\],
"pass": true,
"abnormalDataSql": "select count(1) as num from \`test\`.\`test\`"
}
\],
"standardRules": \[
{
"id": 70974,
"description": "3wX7phTccc",
"disable": false,
"interrupt": false,
"columnName": "RV96kUIBbo",
"ruleLevel": 0,
"checkType": "-1",
"ruleName": "88sgyMV30I",
"actuals": \[
{
"sampleValue": "2orYakJpWL",
"referenceResultValue": "tlArhi6os5",
"computeResultValue": "Kj4UQ3wTgi",
"compareType": "3",
"leftValue": "1.0",
"rightValue": "hfZwv5BKHt",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_LATEST",
"referenceValue": 1
}
\],
"expects": \[
{
"compareType": "6",
"leftValue": "1.0",
"rightValue": "IVOcT2rNwa",
"computeRuleType": "REFERENCE\_DIFFERENCE",
"referenceType": "NTH\_DAYS\_AVG",
"referenceValue": 1
}
\],
"pass": true,
"abnormalDataSql": "select count(1) as num from \`test\`.\`test\`"
}
\]
}
}
2.2.3 运行质量监控任务
POST /job/v1/run
产品版本:v3.3.0
描述:运行质量监控任务
URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
taskId | Number | 任务ID | 是 | |
queueName | String | 队列名称 | 是 | |
parameters | Array<JobRunParameter> | 运行参数 | 否 | |
ruleConcurrent | Boolean | 串行执行,空则使用监控配置 | 否 | |
ruleMerge | Boolean | 规则合并,空则使用监控配置 | 否 | |
noticeConditions | Array<Number> | 通知条件,0正常,1异常,2失败 | 否 | |
noticeWays | Array<Number> | 通知方式 | 否 | 无 |
请求示例:(注意鉴权信息需要额外添加,具体可以参考OpenAPI通用规范说明)
{
"product": "intern",
"clusterId": "dev4",
"user": "zhulianxin@corp.netease.com",
"taskId": "50",
"queueName": "intern\_new",
"parameters": \[\],
"ruleConcurrent": true,
"ruleMerge": true,
"noticeConditions": \[1, 2\],
"noticeWays": \[1\]
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码 |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | OpenapiRunDqTaskInstanceIdVO | 包含质量监控任务执行实例id |
响应示例:
{
"reqId": "sdfds8434sfdf",
"code": 0,
"msg": "success",
"cost": 236,
"result": {
"id": 111
}
}
2.3 质量报告
2.3.1 查询今日表质量分排行
GET /quality/v1/table/rank
产品版本:v2.1.0
描述:查询今日表质量分排行
URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
pageNum | Number | 页码 | 否 | 1 |
pageSize | Number | 每页条数 | 否 | 10 |
datasourceType | DatasourceTypeEnum | 数据源类型 | 是 | 无 |
请求示例:(注意鉴权信息需要额外添加,具体可以参考OpenAPI通用规范说明)
?datasourceType=&product=intern&clusterId=dev4&pageNum=1&pageSize=25
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码 |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | PageResult<RankedTable> | 排好序的今日表质量分数据 |
响应示例:
{
"reqId": "sdfds8434sfdf",
"code": 0,
"msg": "success",
"cost": 236,
"result": {
"pageSize": 100,
"pageNum": 2,
"totalCount": 1000,
"totalPage": 10,
"list": \[
{
"rank": 1,
"datasourceType": "HIVE",
"datasourceId": "71284",
"db": "jyu9Zf3xUF",
"table": "k92CYClMKR",
"owner": {
"fullName": "9PQ2ZFrDNo",
"user": "4hqyKH@hzATV.rrh"
},
"qualityScore": "9VwxyzAK1t"
},
{
"rank": 1,
"datasourceType": "ORACLE",
"datasourceId": "71649",
"db": "fgIOqwbZCe",
"table": "BS5jp7VvlF",
"owner": {
"fullName": "ICm4HGItV5",
"user": "jYlTLUhl@y3gLv.dct"
},
"qualityScore": "tuZQg5vU1w"
},
{
"rank": 1,
"datasourceType": "ORACLE",
"datasourceId": "72142",
"db": "pJh3V8RvsV",
"table": "97eAZj3QH0",
"owner": {
"fullName": "oaeTmD2Yah",
"user": "VYuJxv4@WlXQR.cwr"
},
"qualityScore": "HQNVhOTNNA"
}
\]
}
}
2.3.2 查询项目组下有表级质量报告的表列表
POST /quality/v1/table/list
产品版本:v3.8.0
描述:查询项目组下有表级质量报告的表列表
URL参数/请求体
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
pgId | Number | 项目组id | 是 | |
String | 账号 | 是 | ||
datasourceType | String | 数据源类型 | 是 | |
tableOwner | String | 表技术负责人,hive独有 | 否 | |
subjectFullIdList | Array<String> | 主题域列表,hive独有 | 否 | |
tableLayerList | Array<String> | 表分层列表,hive独有 | 否 | |
pageNum | Number | 页码 | 否 | 1 |
pageSize | Number | 每页条数 | 否 | 10 |
请求示例:
{
"pgId": 65,
"email": "yan",
"datasourceType": "hive",
"tableLayerList": \["dim"\],
"subjectFullIdList":\["608/787"\],
"tableOwner":"zhaomin3@corp.netease.com",
"pageNum": 1,
"pageSize": 10
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码 |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | PageResult<TablePg> | 表列表 |
响应示例:
{
"code":0,
"reqId":"074fb9a4a4a74725928da65850fc4c61",
"cost":107,
"result":{
"count":2,
"pageNum":1,
"pageSize":10,
"list":\[
{
"catalogName":"dev4-catalog",
"datasourceType":"hive",
"dbName":"dev",
"tableName":"ads\_test",
},
{
"catalogName":"dev4-catalog",
"datasourceType":"hive",
"dbName":"jinyx\_hivedb",
"tableName":"dqc\_demo\_07",
}
\],
"hasMore":false
}
}
2.4 形态探查
2.4.1 查询形态探查任务列表
POST /explore-task/v1/list
产品版本:v2.8.0
描述:查询形态探查任务列表,可按修改时间、任务负责人、表名、任务名称查询
URL参数/请求体
Content-Type: application/json
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
pageNum | Number | 页码 | 否 | 1 |
pageSize | Number | 每页条数 | 否 | 10 |
modifyStartTime | Number | 修改时间开始毫秒时间戳 | 否 | |
modifyEndTime | Number | 修改时间结束毫秒时间戳 | 否 | |
table | String | 表名称,模糊查询 | 否 | |
taskOwners | Array<String> | 任务负责人邮箱,多选 | 否 | |
taskName | String | 任务名称,模糊查询 | 否 | 无 |
请求示例:
{
"product": "intern",
"clusterId": "easyops-cluster",
"pageNum": 1,
"pageSize": 10,
"user": "zhulianxin@corp.netease.com",
"modifyStartTime": 1670241780699,
"modifyEndTime": 1670241830681,
"table": "rQoj5mDFxz",
"taskOwners": \[
"DlNdSBWpV8",
"FEwNp4SUeF",
"JxjKPGWRBg"
\],
"taskName": "7zIZhfH5n0"
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码,可能返回 -2 等异常状态码,含义见[1.2 异常响应码] |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | PageResult<ExploreTask> | 形态探查任务列表数据 |
响应示例:
{
"code": 0,
"msg": null,
"result": {
"pageSize": 10,
"pageNum": 1,
"totalCount": 38,
"list": \[
{
"taskId": "52",
"taskName": "20221212202354\_探查hive.cwztest3.b\_cwztest2\_sub2\_ccz\_df\_a\_copy",
"db": "cwztest3",
"table": "cwz",
"partitionFields": \[
{
"fieldType": "string",
"fieldName": "e",
"fieldValue": "${azkaban.flow.1.days.ago}"
}
\],
"otherFilter": "1=1 and 2=2",
"owner": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"creator": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"modifier": {
"user": "zhulianxin@corp.netease.com",
"fullName": "华昊泽"
},
"mode": "online"
},
{
"taskId": "50",
"taskName": "20221123194639\_探查hive.cwz11\_dev.gaolong\_test",
"db": "cwz11\_dev",
"table": "gaolong\_test",
"description": "sadsadasddsadasd",
"owner": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"creator": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"modifier": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"mode": "dev"
},
{
"taskId": "49",
"taskName": "20221123193724\_探查hive.cwz11\_dev.gaolong\_test",
"db": "cwz11\_dev",
"table": "gaolong\_test",
"description": "asdasd是的撒的sss",
"owner": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"creator": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"modifier": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"mode": "online"
},
{
"taskId": "48",
"taskName": "20221116163329\_探查hive.dev45.ods\_eto\_az\_exec\_job\_1d",
"db": "chensuan",
"table": "test",
"otherFilter": "1=2",
"description": "dasdasdasdasd",
"owner": {
"user": "huahaoze@corp.netease.com",
"fullName": "华昊泽"
},
"creator": {
"user": "huahaoze@corp.netease.com",
"fullName": "华昊泽"
},
"modifier": {
"user": "huahaoze@corp.netease.com",
"fullName": "祝联新"
},
"mode": "online"
},
{
"taskId": "47",
"taskName": "���",
"db": "cwz",
"table": "ods\_ei\_index2",
"partitionFields": \[
{
"fieldType": "string",
"fieldName": "pt",
"fieldValue": "${azkaban.flow.1.days.ago}"
}
\],
"description": "描述",
"owner": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"creator": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"modifier": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"mode": "dev"
},
{
"taskId": "46",
"taskName": "20221031150733\_探查hive.data\_transform.docs\_1000",
"db": "data\_transform",
"table": "docs\_1000",
"owner": {
"user": "xuchuqiao@corp.netease.com",
"fullName": "徐楚翘"
},
"creator": {
"user": "xuchuqiao@corp.netease.com",
"fullName": "徐楚翘"
},
"modifier": {
"user": "xuchuqiao@corp.netease.com",
"fullName": "徐楚翘"
},
"mode": "dev"
},
{
"taskId": "45",
"taskName": "20221031105914\_探查hive.default.test\_a",
"db": "default",
"table": "test\_a",
"owner": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"creator": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"modifier": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"mode": "dev"
},
{
"taskId": "44",
"taskName": "20221028150002\_探查hive.cwz.cwztestdmla",
"db": "hzluzhonghao",
"table": "sparktest",
"description": "sss",
"owner": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"creator": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"modifier": {
"user": "zengxiaomin@corp.netease.com",
"fullName": "曾晓敏"
},
"mode": "dev"
},
{
"taskId": "43",
"taskName": "20221028104257\_探查hive.intern\_new.src\_t2\_v602",
"db": "intern\_new",
"table": "src\_t2\_v602",
"owner": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"creator": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"modifier": {
"user": "zhulianxin@corp.netease.com",
"fullName": "华昊泽"
},
"mode": "dev"
},
{
"taskId": "42",
"taskName": "20221028103124\_探查hive.intern\_new.src\_t1\_v602",
"db": "intern\_new",
"table": "src\_t1\_v602",
"owner": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"creator": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"modifier": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"mode": "dev"
}
\]
},
"reqId": "b45bd7089131404baf4660acd0d263f3",
"cost": 15
}
2.4.2 运行形态探查任务
POST /explore-task/v1/run
产品版本:v2.8.0
描述:运行形态探查任务,用户需要有探查任务中表的读权限和队列的使用权限
URL参数/请求体
Content-Type: application/json
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
taskId | String | 任务ID | 是 | |
queueName | String | 队列 | 是 | |
yarnId | String | yarn队列ID | 是 | |
yarnName | String | yarn队列Name | 是 | |
executorsNum | Number | spark executor并发数 | 否 | 4 |
driverMemory | Number | spark driver 内存大小,单位:MB | 否 | 2048 |
executorMemory | Number | spark executor 内存大小,单位:MB | 否 | 2048 |
parameters | Array<JobRunParameter> | 运行参数 | 否 | |
partitionFields | Array<PartitionField> | 分区过滤条件,填入后替换形态探查中的分区过滤条件,如果不填默认使用形态探查任务中的分区过滤条件 | 否 |
请求示例:
{
"product": "intern",
"clusterId": "dev4",
"user": "zhulianxin@corp.netease.com",
"taskId": "50",
"queueName": "intern\_new",
"yarnId": "default",
"yarnName": "默认Yarn集群",
"partitionFields": \[{
"fieldName": "1",
"fieldValue": "2",
"fieldType": "string"
}\],
"authType": "TEST"
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码,可能返回 1403, 1404 -2 等异常状态码,含义见[1.2 异常响应码] |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | ExploreTaskInstanceID | 包含形态探查任务Id |
响应示例
{
"code": 0,
"msg": null,
"result": {
"id": "120"
},
"reqId": "79d1c59bb2bf4b3881a15b386727db55",
"cost": 444
}
2.4.3 查询形态探查任务实例列表
POST /explore-task/v1/instance/list
产品版本:v2.8.0
描述:查询形态探查任务实例列表
URL参数/请求体
Content-Type: application/json
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
taskId | String | 任务ID | 是 | |
pageNum | Number | 页码 | 否 | 1 |
pageSIze | Number | 每页条数 | 否 | 10 |
请求示例:
{
"product": "intern",
"clusterId": "dev4",
"user": "zhulianxin@corp.netease.com",
"taskId": "43",
"pageNum": 1,
"pageSize": 3,
"authType": "TEST"
}
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码,可能返回 -2 等异常状态码,含义见[1.2 异常响应码] |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | PageResult<ExploreTaskInstance> | 形态探查任务实例列表 |
响应示例
{
"code": 0,
"msg": null,
"result": {
"pageSize": 3,
"pageNum": 1,
"totalCount": 1,
"list": \[
{
"id": "77",
"taskId": "43",
"taskName": "20221028104257\_探查hive.intern\_new.src\_t2\_v602",
"queueName": "intern\_new",
"db": "intern\_new",
"table": "src\_t2\_v602",
"taskOwner": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"creator": {
"user": "zhulianxin@corp.netease.com",
"fullName": "祝联新"
},
"startTime": "2022-10-31 10:59:43",
"endTime": "2022-10-31 11:01:57",
"status": 3,
"logUrl": "https://easydata-dev.bdms.netease.com/dataquality/instance/log/77?product=intern&clusterId=dev4&execId=3581020&type=1"
}
\]
},
"reqId": "35f4d4185cd6457baa09351e9d125297",
"cost": 20
}
2.4.4 查询形态探查任务实例结果
GET /explore-task/v1/instance-result/get
产品版本:v2.8.0
描述:查询形态探查任务实例结果
URL参数
名称 | 类型 | 描述 | 必须 | 默认值 |
---|---|---|---|---|
product | String | 项目ID(项目空间名称) | 是 | |
clusterId | String | 集群ID | 是 | |
user | String | 用户邮箱 | 是 | |
id | String | 任务实例ID | 是 | 无 |
请求示例:
product=intern&clusterId=dev4&user=zhulianxin@corp.netease.com&id=105
响应体
名称 | 类型 | 描述 |
---|---|---|
code | number | 响应码,可能返回 1404 -2 等异常状态码,含义见[1.2 异常响应码] |
reqId | string | 请求ID |
cost | number | 耗时 |
msg | string | 响应消息 |
result | ExploreTaskInstanceResult | 形态探查任务实例详情 |
响应示例
{
"code": 0,
"msg": null,
"result": {
"id": "105",
"exploreTask": {
"taskId": "46",
"taskName": "20221031150733\_探查hive.data\_transform.docs\_1000",
"db": "data\_transform",
"table": "docs\_1000",
"createdTime": "2022-10-31 15:08:24",
"updatedTime": "2022-11-10 16:39:23"
},
"jobExecuteParam": {
"executorsNum": 4,
"driverMemory": 2048,
"executorMemory": 2048,
"queueName": "intern\_1"
},
"creator": {
"user": "xuchuqiao@corp.netease.com",
"fullName": "徐楚翘"
},
"startTime": "2022-12-08 10:27:30",
"endTime": "2022-12-08 10:27:31",
"status": 5,
"logUrl": "https://easydata-dev.bdms.netease.com/dataquality/instance/log/105?product=intern&clusterId=dev4&execId=3620016&type=1"
},
"reqId": "290cb2d9b49542ae8c8c1acdebbd1bb0",
"cost": 6
}