操作指定ID任务
功能介绍
操作租户指定ID任务。
接口约束
- 仅支持部分Region使用,详情参考终端节点。
URI
POST /v5/{project_id}/jobs/{job_id}/action
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
job_id |
是 |
String |
任务ID (对比任务相关操作,多任务场景传父任务详情返回的master_job_id)。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Content-Type |
是 |
String |
发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json |
X-Auth-Token |
是 |
String |
从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 |
X-Language |
否 |
String |
请求语言类型。 缺省值:en-us 枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
job |
是 |
Object |
操作单个任务。 详情请参见表4。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
job_id |
否 |
String |
任务ID (对比任务相关操作,多任务场景传父任务详情返回的master_job_id) |
action_name |
是 |
String |
操作任务动作名称。取值:
枚举值:
|
action_params |
否 |
Object |
操作任务动作参数。 详情请参见表5。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
endpoints |
否 |
Array of objects |
测试连接数据库信息。 详情请参见表6。 |
precheck_mode |
否 |
String |
预检查模式。预检查时必填,取值:
|
skip_precheck_info |
否 |
Object |
跳过预检查项参数,跳过预检查时必填。 详情请参见表13。 |
pause_mode |
否 |
String |
任务暂停模式,暂停任务时填写。停止源库日志抓取:all。 默认值:target。 |
start_time |
否 |
String |
任务定时启动时间。 |
compare_task_param |
否 |
Object |
操作对比任务消息体,操作对比任务时必填。 详情请参见表14。 |
is_sync_re_edit |
否 |
Boolean |
再编辑启动任务时取值true,action_name取值为restart。 |
force_delete |
否 |
Boolean |
强制结束时取值为true。 |
public_ip_config |
否 |
Object |
租户公网IP信息。 详情请参见表28。 |
replay_config |
否 |
Object |
录制回放参数信息。 详情请参见表20。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
db_type |
是 |
String |
数据库类型。取值:
枚举值:
|
endpoint_type |
是 |
String |
数据库实例类型。取值:
枚举值:
|
endpoint_role |
是 |
String |
数据库实例角色。取值:
枚举值:
|
endpoint |
是 |
Object |
数据库基本信息体。 详情请参见表7。 |
cloud |
否 |
Object |
数据库实例所在Region,项目等信息。 详情请参见表8。 |
vpc |
否 |
Object |
数据库实例所在VPC,子网,安全组等信息。 详情请参见表9。 |
config |
否 |
Object |
数据库基本设置信息体。 详情请参见表10。 |
ssl |
否 |
Object |
数据库SSL证书信息体。 详情请参见表11。 |
customized_dns |
否 |
Object |
客户自定义DNS服务。 详情请参见表12。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
String |
数据库信息ID。 |
endpoint_name |
是 |
String |
数据库场景类型。取值:
枚举值:
|
ip |
否 |
String |
数据库IP。约束:
示例:
|
db_port |
否 |
String |
数据库端口。 约束:输入范围为1-65535之间的整数。 |
db_user |
是 |
String |
数据库用户名。 |
db_password |
是 |
String |
数据库密码。 |
instance_id |
否 |
String |
华为云数据库实例ID。 |
instance_name |
否 |
String |
华为云数据库实例名称。 |
db_name |
否 |
String |
指定数据库名称。例如:
|
source_sharding |
否 |
Array of objects |
物理源库信息。 详情请参见表7。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
region |
是 |
String |
区域ID,当数据库实例类型为ecs(华为云ECS自建数据库),cloud(华为云数据库)时为必填项。获取方法请参见地区和终端节点。 注意:当该Region下存在子项目时,Region ID为区域项目ID与子项目ID,由“_”下划线拼接。 |
project_id |
是 |
String |
租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
az_code |
否 |
String |
数据库所在可用分区(AZ)名称。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
vpc_id |
是 |
String |
数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 |
subnet_id |
是 |
String |
数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 |
security_group_id |
否 |
String |
数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_target_readonly |
否 |
Boolean |
目标实例是否设置为为只读。MySQL迁移和灾备,且job_direction为up时设置有效。(灾备场景下,单主灾备且本云为备为必填且为true,不填默认设置为true)。 缺省值:true |
node_num |
否 |
Integer |
Redis集群到GeminiDB Redis迁移场景填写,连接源端Redis集群的子任务个数,输入值在1到16之间,且输入值不能大于源端Redis集群的分片个数,请根据源端Redis集群的规模合理选择。建议集群的每4个分片设置1个源端分片个数,即每1个子任务连接源端集群的4个分片。 最小值:1 最大值:16 缺省值:0 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
ssl_link |
否 |
Boolean |
是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 |
ssl_cert_name |
否 |
String |
SSL证书名字。 |
ssl_cert_key |
否 |
String |
SSL证书内容,用base64加密。 |
ssl_cert_check_sum |
否 |
String |
SSL证书内容checksum值,后端校验,源库安全连接必选。 |
ssl_cert_password |
否 |
String |
SSL证书密码,证书文件后缀为.p12时必填。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
is_set_dns |
是 |
Boolean |
是否设置客户自定义DNS。 |
set_dns_action |
是 |
String |
设置客户自定义DNS的行为。
枚举值:
|
dns_ip |
是 |
String |
设置客户自定义DNS IP。 最小长度:0 最大长度:15 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
skipped_precheck_list |
是 |
Array of strings |
跳过的预检查项。 |
skip_reason |
是 |
String |
跳过预检查原因。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
compare_task_id |
否 |
String |
取消对比任务必填。 |
type |
否 |
String |
对比任务模式。取值:
枚举值:
|
start_time |
否 |
String |
定时启动时间,时间戳格式。 |
option |
否 |
Map<String,String> |
对比策略。 |
db_object |
否 |
Map<String,DatabaseObject> |
对比选择对象。 |
data_process_info |
否 |
Array of objects |
更新数据加工规则请求体。 详情请参见表15。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
filter_conditions |
否 |
Array of objects |
指定任务数据加工规则请求体。 详情请参见表16 |
is_batch_process |
否 |
Boolean |
库级、批量表级处理为true,单表操作为false。 |
add_columns |
否 |
Array of objects |
附加列,当选择附加列时必须填写。 约束:使用多对一操作时,需要使用数据加工的附加列操作来避免数据冲突。 详情请参见表17。 |
ddl_operation |
否 |
Map<String,String> |
支持DDL的语法 选择增量迁移或同步的DDL操作。取值及意思如下: "table": "CREATE TABLE, ALTER TABLE,DROP TABLE,RENAME TABLE" 如该值为空,不迁移或同步DDL操作。 |
dml_operation |
否 |
String |
支持DML的语法 选择DML操作时,取值如下:
如该值为空,不增量迁移或同步DML操作。 |
db_object_column_info |
否 |
Object |
列映射、过滤信息 当进行列映射、过滤信息时必须填写。 详情请参见表18。 |
db_or_table_rename_rule |
否 |
Object |
库表映射规则。 详情请参见表21。 |
db_object |
否 |
Object |
数据加工对象信息,当做过映射、进行数据过滤条件校验时,必须填写 详情请参见表22。 |
is_synchronized |
否 |
Boolean |
表示该规则是否已同步至目标库。 |
source |
否 |
String |
对比的来源。
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
value |
否 |
String |
过滤条件,当filtering_type是configConditionalFilter时,value默认填写config;当filtering_type是contentConditionalFilter时,value默认填写过滤条件。
说明:
|
filtering_type |
否 |
String |
过滤条件类型。
枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
column_type |
否 |
String |
列类型。 |
column_name |
否 |
String |
列名称。 |
column_value |
否 |
String |
列填充值。 |
data_type |
否 |
String |
填充列的数据类型。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
db_name |
否 |
String |
数据库库名称。 |
schema_name |
否 |
String |
数据库schema名称。 |
table_name |
否 |
String |
数据库表名称。 |
column_infos |
否 |
Array of objects |
数据库列信息。 详情请参见表19。 |
total_count |
否 |
Integer |
数据库列信息总数,与分页无关,仅作为返回体参数。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
column_name |
否 |
String |
列名。 |
column_type |
否 |
String |
列类型。 |
primary_key_or_unique_index |
否 |
String |
主键或者唯一索引。 |
column_mapped_name |
否 |
String |
列映射后的名称。 |
is_filtered |
否 |
Boolean |
该列是否过滤。 |
is_partition_key |
否 |
Boolean |
该列是否partitionKey。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
db_instance_id |
是 |
String |
源实例ID。 |
cloud_type |
是 |
String |
云类型:
枚举值:
|
ak |
是 |
String |
其他云AK信息。 |
sk |
是 |
String |
其他云SK信息。 |
db_source |
是 |
String |
源数据库来源。取值:
枚举值:
|
region |
是 |
String |
其他云Region名称。 |
traffic_source |
是 |
String |
流量文件来源。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
prefix_name |
否 |
String |
前缀名称。当type为prefixAndSuffix, 填写prefix_name,库表名称仅增加前缀,若同时也填写suffix_name, 库表名称增加前后缀。 |
suffix_name |
否 |
String |
后缀名称。当type为prefixAndSuffix, 填写suffix_name,库表名称仅增加后缀,若同时也填写prefix_name, 库表名称同时增加前后缀。 |
type |
否 |
String |
库表映射类型。prefixAndSuffix:前缀、后缀或者前后缀。 枚举值:
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
object_scope |
是 |
String |
数据库对象迁移或同步范围。取值:
枚举值:
|
target_root_db |
否 |
object |
数据库对象迁移或同步目标库,两层到三层数据库同步需要填写。 详情请参见表23。 |
object_info |
否 |
Map<String,DatabaseObject> |
数据库对象迁移或同步信息,object_scope为all时不填,为库级或表级时必填。 详情请参见表24。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sync_type |
否 |
String |
该数据库在实时同步场景下的类型。取值: config:仅当该库作为数据过滤高级设置的关联库时,需要填写,此时该库以及该库下的schemas、tables“不会”被同步到目标库,name、all属性不生效,schemas、tables需要填写被关联的相关对象。
说明:
如果需要同步该库级对象,则在下级对象中填写sync_type值为config。 枚举值:
|
name |
否 |
String |
该数据库在目标库的名称(库名映射)。 |
all |
否 |
Boolean |
是否整库迁移或同步。
说明:
|
schemas |
否 |
Map<String,SchemaObject> |
需要迁移或同步的模式,当整库迁移或同步为false时需要填写。 详情请参见表25。 |
tables |
否 |
Map<String,TableObject> |
需要迁移或同步的表,当整库迁移或同步为false时需要填写。 详情请参见表26。 |
total_table_num |
否 |
Integer |
库下的表的数量,表的数量超过阈值就不显示。 |
is_synchronized |
否 |
Boolean |
是否已经进行同步。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sync_type |
否 |
String |
该模式在实时同步场景下的类型。取值: config:仅当该模式作为数据过滤高级设置的关联模式时,需要填写,此时该模式以及该模式下的tables“不会”被同步到目标库,name、all属性不生效,tables需要填写被关联的相关对象。
说明:
如果需要同步该模式对象,则在下级对象中填写sync_type值为config。 |
name |
否 |
String |
该模式在目标库的名称(模式名映射)。 |
all |
否 |
Boolean |
是否整模式迁移或同步。
说明:
|
tables |
否 |
Map<String,TableObject> |
需要迁移或同步的表,当整模式迁移或同步为false时需要填写。 详情请参见表26。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sync_type |
否 |
String |
该表在实时同步场景下的类型。取值: config:仅当该表作为数据过滤高级设置的关联表时,需要填写,此时该表以及该表下的columns“不会”被同步到目标库,name、all、filtered、filter_conditions属性不生效,columns需要填写被关联的相关对象,config_conditions需要填写数据过滤高级设置的配置条件。
说明:
如果需要同步该表级对象,则在下级对象中填写sync_type值为config |
type |
否 |
String |
对象类型。取值:
枚举值:
|
name |
否 |
String |
该表在目标库的名称(表名映射)。 |
all |
否 |
Boolean |
是否整表迁移或同步。
说明:
|
db_alias_name |
否 |
String |
一对多情况下,表级上对库名的映射。 |
schema_alias_name |
否 |
String |
一对多情况下,表级上对schema名的映射。 |
filtered |
否 |
Boolean |
该表是否进行数据过滤。 |
filter_conditions |
否 |
Array of strings |
该表数据的过滤条件,生成加工规则值为SQL条件语句,长度限制512。 最小长度:0 最大长度:512 |
config_conditions |
否 |
Array of strings |
该表数据过滤高级设置的配置条件,当该表作为联表查询时填写,生成加工规则值为SQL条件语句,长度限制512。 最小长度:0 最大长度:512 |
is_synchronized |
否 |
Boolean |
是否已经进行同步。 |
columns |
否 |
Map<String,ColumnObject> |
需要同步/映射/过滤/新增的列,当需要列过滤、列映射、附加列功能时填写,仅在实时同步任务中生效,当整表同步为false时需要填写。 详情请参见表27。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sync_type |
否 |
String |
该列在实时同步场景下的类型。取值: config:当该列作为数据过滤高级设置的关联列时,需要填写,同时如果该列是主建或优化查询所需的索引,则需要填写primary_key_for_data_filtering或index_for_data_filtering。
说明:
是否同步该列到目标库由“filtered”属性控制,与库级、模式级、表级控制方式不同。 |
primary_key_for_data_filtering |
否 |
String |
该列是否在数据过滤高级设置场景下为主键,如果是主建则填该列列名,否则不填。 |
index_for_data_filtering |
否 |
String |
优化查询所需的索引,将会为缓存数据增加索引,不会影响源表,当该列作为数据过滤高级设置的关联索引时,需要填写,否则不填。 |
name |
否 |
String |
该列在目标库的名称(列名映射),当该列为“附加列”时须与数据库表级对象中列名保持一致。 |
type |
否 |
String |
该列字段的数据类型。 列过滤:填写源列字段的数据类型。 附加列:新填充的列指定字段的数据类型,根据不同操作类型来决定取值范围与约束。取值:
|
primary_key_for_column_filtering |
否 |
String |
该列是否在列映射场景下为主键,如果是主建则填PRI,否则填空。 |
filtered |
否 |
Boolean |
该列是否进列过滤,不能与附加列additional同时使用。取值:
|
additional |
否 |
Boolean |
该列是否为附加列,当该列为附加列时:name必须与表级对象中列名一致,并且不能与列过滤filtered同时使用。 |
operation_type |
否 |
String |
操作类型,以特定的操作类型填充新加的列。取值:
|
value |
否 |
String |
附加列的值。约束:
|
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码。 最小长度:12 最大长度:12 |
error_msg |
String |
错误描述。 最小长度:1 最大长度:512 |
id |
String |
任务ID。 |
name |
String |
任务名称。 |
status |
String |
操作结果。 |
状态码: 202
参数 |
参数类型 |
描述 |
---|---|---|
query_id |
String |
异步操作任务响应查询ID。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码。 最小长度:12 最大长度:12 |
error_msg |
String |
错误描述。 最小长度:1 最大长度:512 |
请求示例
- 执行预检查(异步调用)。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r/action { "job" : { "action_name" : "precheck", "action_params" : { "precheck_mode" : "forStartJob" } } }
- 测试连接目标库(异步调用)。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r/action { "job" : { "action_name" : "network", "action_params" : { "endpoints" : [ { "db_type" : "gaussdbv5", "endpoint_type" : "cloud", "endpoint_role" : "ta", "endpoint" : { "endpoint_name" : "cloud_gaussdbv5", "instance_id" : "c2c7579bc09c490b9d8009db715aeb0ain14", "db_user" : "root", "db_password" : "******" }, "cloud" : { "region" : "cn-north-4", "project_id" : "9dc8c0f3f74c4dbb23c29cf0318ee561", "az_code" : "cn-north-4a,cn-north-4g,cn-north-4c" }, "vpc" : { "vpc_id" : "2cb5d364-ae63-4fbb-85b7-7d59f4a88f8f", "subnet_id" : "2cb54324-ae63-4fbb-85b7-7d59f4a88f8f", "security_group_id" : "039a3s89-665a-43e2-9b4f-bda7d9ee148d" } } ] } } }
- 测试连接源库(异步调用)。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r/action { "job" : { "action_name" : "network", "action_params" : { "endpoints" : [ { "db_type" : "oracle", "endpoint_type" : "offline", "endpoint_role" : "so", "endpoint" : { "endpoint_name" : "oracle", "ip" : "10.154.217.239", "db_port" : "1521", "db_user" : "ORACLE_USER", "db_password" : "******", "id" : "971e1840-9395-4044-b6c8-00ef1f83ce48", "db_name" : "serviceName.orcl" }, "ssl" : { "ssl_link" : false } } ] } } }
- 创建对象对比任务(异步调用)。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job" : { "action_name" : "create_compare", "action_params" : { "compare_task_param" : { "type" : "object" } } } }
- 创建行对比任务(异步调用)。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job" : { "action_name" : "create_compare", "action_params" : { "compare_task_param" : { "type" : "lines", "option" : { "comparePolicy" : "normal" }, "db_object" : { "db1" : { "name" : "db1", "tables" : { "table1" : { "name" : "table1" } } } } } } } }
- 立即启动任务。
https://{endpoint}/v5/0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job": { "action_name": "start", "action_params": {} } }
- 暂停任务。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job": { "action_name": "stop", "action_params": {} } }
- 续传任务。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job": { "action_name": "restart", "action_params": {} } }
- 重置任务。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job": { "action_name": "reset", "action_params": {} } }
- 跳过预检查项。
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job": { "action_name": "skip_precheck", "action_params": { "skip_precheck_info": { "skipped_precheck_list": [ "MysqlForeignKeyReferentialActionCheck" ], "skip_reason": "test11111" } } } }
- 绑定公网IP
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job" : { "action_name" : "bind_eip", "action_params" : { "public_ip_config" : { "id" : "018d9e56-26d5-455a-97dc-e6f5f44a2cbd", "public_ip" : "******", "type" : "master" } } } }
- 解绑公网IP
https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/jobs/d0f96c1d-571f-4b63-98a5-3b85b36jb20r/action { "job" : { "action_name" : "unbind_eip" } }
- 其他云连通性测试。
https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/jobs/6c65eafc-b359-403b-b2fb-9f5fc58jb601/action { "job" : { "action_name" : "cloud_connection", "action_params" : { "replay_config" : { "ak" : "******", "sk" : "******", "traffic_source" : "sdk", "db_instance_id" : "data-anniversary-cluster", "cloud_type" : "AWSCloud", "region" : "ap-northeast-3", "db_source" : "aws_aurora_mysql" } } } }
响应示例
状态码: 200
OK
{ "status": "success" }
状态码: 202
Accepted
{ "query_id" : "c5c1ffb3-c902-4b31-a606-dfa1231831f9" }
状态码: 400
Bad Request
{ "error_code" : "DRS.10000010", "error_msg" : "Job does not exist, please check job id." }
状态码
状态码 |
描述 |
---|---|
200 |
OK |
202 |
Accepted |
400 |
Bad Request |
错误码
请参见错误码。