🎉 CloudCanal 上线 V6.6.0.0:开放 TDSQL PostgreSQL 链路,优化 Kudu DDL 同步能力
跳到主要内容

任务预检(基础)

接口描述​

任务信息基础校验,包括可连接性、基本参数、权限等

接口地址​

/cloudcanal/console/api/v1/openapi/datajob/precheckbasic

请求方式​

POST

请求参数​

参数名称参数说明请求类型是否必须数据类型
clusterId链接数据源的集群idbody是long
srcDsId源端数据源idbody是long
srcHostType源数据源host类型

PRIVATE
PUBLIC
body是string
srcSchema源端库表描述,见示例body是string
dstDsId目标数据源idbody是long
dstHostType目标数据源host类型

PRIVATE
PUBLIC
body是string
dstSchema目标库表描述,可由 srcSchema 配合 mappingDef 计算得出,可为空body否string
mappingDef库表映射,见示例body是string
jobType任务类型,可通过 获取任务类型 接口查询获取body是string
initialSync如果是数据同步任务,是否需要初始化数据(全量迁移)body否boolean
shortTermNum如果有短期同步,持续多少天body否int
shortTermSync如果是数据迁移任务,是否需要短期同步body否boolean
specId规格idbody是int
fullPeriod是否是周期性全量迁移body否boolean
fullPeriodCronExpr周期性全量迁移 CronTab 表达式body否string
autoStart是否自动启动body否boolean
checkOnce增量追上后是否做一次全量数据校验body否boolean
checkPeriod是否是周期性校验body否boolean
checkPeriodCronExpr周期性校验 CronTab 表达式body否string

srcSchema 说明 (MySQL)​

不同数据源 schema 存在不同的字段描述,需要更多源端数据源可找产品团队咨询

参数名称参数说明请求类型是否必须数据类型
db映射方法

DB_DB
SCHEMA_SCHEMA
TABLE_TABLE
COLUMN_COLUMN
DB_SCHEMA
SCHEMA_DB
DB_TOPIC
TABLE_TOPIC
TOPIC_TABLE
TOPIC_INDEX
ANY_DB
TABLE_INDEX
TABLE_KEYPREFIX
body是string
dbPattern嵌套多层映射关系,根据 method 或 parent 为空进行识别body否string
tables该数据库所拥有的表body是string
targetAutoCreate对端是否需要自动创建body是string
inBlackList是否在黑名单(不同步或者迁移数据)body是string
[
{
"db": "dingtax",
"dbPattern": "",
"tables": [],
"targetAutoCreate": false,
"inBlackList": false
}
]

mappingDef 说明​

mappingDef 为一个数组,每一个组代表一种映射

参数名称参数说明请求类型是否必须数据类型
method映射方法

DB_DB
SCHEMA_SCHEMA
TABLE_TABLE
COLUMN_COLUMN
DB_SCHEMA
SCHEMA_DB
DB_TOPIC
TABLE_TOPIC
TOPIC_TABLE
TOPIC_INDEX
ANY_DB
TABLE_INDEX
TABLE_KEYPREFIX
body是string
serializeMapping嵌套多层映射关系,根据 method 或 parent 为空进行识别body否string
serializeAutoGenRules指定映射规则body是string
commonGenRule通用映射规则body是string

mappingDef 示例(MySQL -> PostgreSQL)

[
{
"method": "DB_SCHEMA",
"serializeMapping": {
"{\"value\":\"dingtax\"}": "{\"parent\":{\"value\":\"dingtax_target\"},\"value\":\"public\"}"
},
"serializeAutoGenRules": {},
"commonGenRule": "MIRROR"
},
{
"serializeMapping": {},
"method": "TABLE_TABLE",
"serializeAutoGenRules": {},
"commonGenRule": "MIRROR"
},
{
"method": "COLUMN_COLUMN",
"serializeMapping": {},
"serializeAutoGenRules": {},
"commonGenRule": "MIRROR"
}
]

公共响应结果​

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

data 参数说明​

data 是一个数组,数组里面每一项表示一个检查项,检查项参数说明如下

参数名称参数说明类型(java)不为空
title测试项名称string是
passRequirement测试项通过需要的条件string是
varName参数名称string否
varRequireValues参数需要符合的值string否
varActualValue参数实际值string否
preCheckType校验类型
CONNECTIVITY(可连接性)
VERSION(版本)
BINLOG_EXISTENCE(增量日志是否存在)
PRIVILEGES(权限)
STRUCT_TABLE_STORAGE(表存储)
STRUCT_TABLE_PK(主键)
STRUCT_TABLE_CHARSET(表字符集)
STRUCT_TABLE_COLLATION(表校验集)
STRUCT_TABLE_FK(外键)
STRUCT_EXISTENCE(库表列是否存在)
VARIABLES(数据库参数)
SPEC_SCHEDULE_SUPPORT(容量是否足够)
INCREMENT_BALANCE(增量license)
FULL_BALANCE(全量任务license)
CHECK_BALANCE(校验任务license)
STRUCT_BALANCE(结构迁移license)
NAME_LENGTH(元数据名字长度)
INDEX_COLUMN(索引列)
COLUMN_TYPE(列类型)
VERSION_COMPATIBILITY(版本兼容度)
string否
success该项是否预检成功boolean否
checked该项是否已经预检boolean否
contextDbName检查所关联的dbstring否
contextTableName检查所关联的表string否
contextColumnName检查所关联的列string否
schemaName检查所关联的 schemastring否

响应示例​

{
"requestId": "422622b9-2bf5-11ec-8b3e-172e4c81a5c3",
"code": "1",
"msg": "request success",
"data": [
{
"title": "源端数据库连接测试",
"passRequirement": "数据库能被链接上",
"varName": null,
"varRequireValues": null,
"varActualValue": null,
"preCheckType": "CONNECTIVITY",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "源端数据库版本检查",
"passRequirement": "支持5.1.x,5.5.x,5.6.x,5.7.x,8.x MySQL",
"varName": null,
"varRequireValues": null,
"varActualValue": null,
"preCheckType": "VERSION",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "PRECHECK_PRIVS_SOURCE_SELECT_TITLE",
"passRequirement": "需要有数据库dingtax select权限",
"varName": null,
"varRequireValues": [
"select"
],
"varActualValue": null,
"preCheckType": "PRIVILEGES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "参数'log_bin'检查",
"passRequirement": "'log_bin'参数值必须为 1",
"varName": "log_bin",
"varRequireValues": [
"1"
],
"varActualValue": "1",
"preCheckType": "VARIABLES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "参数'binlog_format'检查",
"passRequirement": "'binlog_format'参数值必须为'ROW'",
"varName": "binlog_format",
"varRequireValues": [
"ROW"
],
"varActualValue": "ROW",
"preCheckType": "VARIABLES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "参数'binlog_row_image'检查",
"passRequirement": "'binlog_row_image'参数值必须为'FULL'",
"varName": "binlog_row_image",
"varRequireValues": [
"FULL"
],
"varActualValue": "FULL",
"preCheckType": "VARIABLES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "'replication client'权限检查",
"passRequirement": "需要有'replication client'权限",
"varName": null,
"varRequireValues": [
"replication client"
],
"varActualValue": null,
"preCheckType": "PRIVILEGES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "'replication slave'权限检查",
"passRequirement": "需要有'replication slave'权限",
"varName": null,
"varRequireValues": [
"replication slave"
],
"varActualValue": null,
"preCheckType": "PRIVILEGES",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
},
{
"title": "任务规格可用性预检",
"passRequirement": "您添加的机器的剩余可用内存需要满足所选任务的规格",
"varName": null,
"varRequireValues": null,
"varActualValue": null,
"preCheckType": "SPEC_SCHEDULE_SUPPORT",
"success": true,
"checked": true,
"contextDbName": null,
"contextTableName": null,
"contextColumnName": null
}
]
}
联系我们
微信二维码

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