🎉 CloudCanal 上线 V6.4.0.0:Oracle、SAP Hana 等同步能力再升级
跳到主要内容

查询任务位点信息

接口描述​

根据任务id查询任务的位点信息,目前仅支持 CHECK(校验)类型任务,返回表级别的校验结果

接口地址​

/cloudcanal/console/api/v1/openapi/datajob/queryjobposition

请求方式​

POST

请求参数​

参数名称参数说明请求类型是否必须数据类型
jobId任务idbody是long
dataJobType任务类型,目前仅支持 CHECK,参考 获取任务类型列表body是string

公共响应结果​

参数名称参数说明类型(java)不为空
code1:成功 0:失败string是
dataobject否
msgstring否
requestIdstring是

data 参数说明​

参数名称参数说明不为空数据类型
tableCheckResultMap表校验结果映射,key 为 TableUnit 的 JSON 序列化字符串,value 为校验位点对象否map

TableUnit(Map Key)说明​

Map 的 key 是 TableUnit 对象的 JSON 序列化字符串,格式如:{"dbName":"test_db","tableSchema":"public","tableName":"table1"}

参数名称参数说明不为空数据类型
dbName数据库名否string
tableSchemaSchema名否string
tableName表名是string

RdbCheckPositionDTO(Map Value)说明​

校验位点对象,包含表级别的校验进度和结果信息:

基础信息​

参数名称参数说明不为空数据类型
taskId任务ID否string
jobId作业ID否string
taskName任务名称否string
dbName数据库名否string
schemaSchema名否string
tableName表名否string

进度信息​

参数名称参数说明不为空数据类型
handledRecordCount已处理记录数是long
maxCount最大记录数是long
percentage进度百分比(0-100)否decimal
elapsedTimeMs已耗时(毫秒)是long
finished表校验是否完成是boolean

主键信息​

参数名称参数说明不为空数据类型
currentPk当前处理到的主键值否string
minPkNumeric最小主键值(数值型)否decimal
maxPkNumeric最大主键值(数值型)否decimal

校验结果​

参数名称参数说明不为空数据类型
loss目标端缺失的记录数(源端有但目标端没有)否long
diff与目标端不一致的记录数(两端都有但内容不同)否long
checkStage校验阶段否string

其他字段​

参数名称参数说明不为空数据类型
fileBlockIndex文件块索引是long
included是否包含第一条记录是boolean

响应示例​

{
"code": "1",
"msg": "request success",
"data":
{
"tableCheckResultMap":
{
"{\"tableName\":\"workflow_version\",\"tableSchema\":\"dingtax\"}":
{
"taskId": "622",
"jobId": "266",
"taskName": "canalsubnt1b4uqw_CHECK",
"dbName": null,
"schema": "dingtax",
"tableName": "workflow_version",
"handledRecordCount": 0,
"maxCount": 0,
"currentPk": "{\"index\":null,\"currPartition\":null,\"currKeyCols\":{\"id\":null},\"minKeyCols\":{\"id\":null},\"maxKeyCols\":{\"id\":null},\"eosNodes\":null}",
"fileBlockIndex": 0,
"minPkNumeric": null,
"maxPkNumeric": null,
"percentage": 100,
"elapsedTimeMs": 77,
"included": true,
"finished": true,
"loss": 0,
"diff": 0,
"checkStage": "INITIAL_CHECK"
},
"{\"tableName\":\"w_company\",\"tableSchema\":\"dingtax\"}":
{
"taskId": "622",
"jobId": "266",
"taskName": "canalsubnt1b4uqw_CHECK",
"dbName": null,
"schema": "dingtax",
"tableName": "w_company",
"handledRecordCount": 0,
"maxCount": 0,
"currentPk": "{\"index\":null,\"currPartition\":null,\"currKeyCols\":{\"id\":null},\"minKeyCols\":{\"id\":null},\"maxKeyCols\":{\"id\":null},\"eosNodes\":null}",
"fileBlockIndex": 0,
"minPkNumeric": null,
"maxPkNumeric": null,
"percentage": 100,
"elapsedTimeMs": 90,
"included": true,
"finished": true,
"loss": 0,
"diff": 0,
"checkStage": "INITIAL_CHECK"
},
"{\"tableName\":\"worker_stats\",\"tableSchema\":\"dingtax\"}":
{
"taskId": "622",
"jobId": "266",
"taskName": "canalsubnt1b4uqw_CHECK",
"dbName": null,
"schema": "dingtax",
"tableName": "worker_stats",
"handledRecordCount": 36352,
"maxCount": 157458,
"currentPk": "{\"index\":null,\"currPartition\":null,\"currKeyCols\":{\"id\":-4231478872083296211},\"minKeyCols\":{\"id\":-8835792057943077187},\"maxKeyCols\":{\"id\":9223365991561122752},\"eosNodes\":null}",
"fileBlockIndex": 0,
"minPkNumeric": null,
"maxPkNumeric": null,
"percentage": 23.09,
"elapsedTimeMs": 22624,
"included": true,
"finished": false,
"loss": 0,
"diff": 0,
"checkStage": "INITIAL_CHECK"
}
}
},
"requestId": "5d589cc0-ce71-11f0-8388-cf86e7c30fd4",
"fail": false,
"success": true
}

注意事项​

  • 目前该接口仅支持 dataJobType 为 CHECK 的校验任务
  • 其他类型任务调用此接口会返回错误
  • loss 表示源端有但目标端缺失的记录数
  • diff 表示两端都存在但数据内容不一致的记录数
  • 当 finished 为 true 且 loss 和 diff 都为 0 时,表示该表校验通过
联系我们
微信二维码

扫码添加微信,获取技术支持