批量设置同步策略 - BatchSetPolicy
功能介绍
- 批量设置同步策略,包括冲突策略、过滤DROP Database、对象同步范围。
- 设置kafka同步策略
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
接口约束
- 任务创建成功之后,任务状态为CONFIGURATION,并且与源库和目标库测试连接通过、修改任务接口调用成功后才能调用。
- 支持设置Kafka同步策略的有:PostgreSQL-Kafka同步,Oracle-Kafka同步,GaussDB-Kafka同步,TaurusDB-Kafka,MySQL-Kafka。
- TaurusDB-Kafka,MySQL-Kafka支持任务状态为INCRE_TRANSFER_STARTED时修改Kafka策略配置,修改配置后需等任务状态为INCRE_TRANSFER_STARTED时再进行编辑同步对象操作。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项。
URI
POST /v3/{project_id}/jobs/batch-sync-policy
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| project_id | 是 | String | 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Content-Type | 是 | String | 指定类型为application/json。 缺省值:application/json |
| X-Auth-Token | 是 | String | 从IAM服务获取的用户Token。 |
| X-Language | 否 | String | 请求语言类型。 缺省值:en-us 取值:
|
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| jobs | 是 | Array of objects | 批量设置同步策略请求列表。 详情请参见表4。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| job_id | 是 | String | 任务ID。 |
| conflict_policy | 否 | String | 冲突策略。 取值:
|
| filter_ddl_policy | 否 | String | 过滤DDL策略。 取值:drop_database |
| ddl_trans | 否 | Boolean | 同步增量是否同步DDL。 |
| index_trans | 否 | Boolean | 同步增量是否同步索引。 |
| topic_policy | 否 | String | 同步Topic策略,目标库为Kafka时必填。 GaussDB分布式版到Kafka同步取值:
GaussDB集中式版到Kafka同步、PostgreSQL到Kafka同步取值:
Oracle到Kafka同步取值:
MySQL到Kafka同步取值:
TaurusDB到Kafka同步取值:
|
| topic | 否 | String | Topic名称,topic_policy为0时必填,确保topic已存在。 |
| partition_policy | 否 | String | 同步到kafka partition策略。目标库为Kafka时必填。
当topic_policy取0时,可以取0、1、2、3、4、5;当topic_policy取1时,可以取1、2、5;当topic_policy取2时,可以取0、1、3、4;当topic_policy取3时,可以取0、1;当topic_policy取4时,可以取0、1、3。 |
| kafka_data_format | 否 | String | 投送到kafka的数据格式,取值:
不填默认为json。 说明:
|
| topic_name_format | 否 | String | Topic名字格式,topic_policy为1,2,3,时需要。 PostgreSQL到Kafka同步、GaussDB集中式版到Kafka同步取值:
Oracle到Kafka同步取值:
MySQL到Kafka、TaurusDB到Kafka同步取值:
|
| partitions_num | 否 | String | Partition个数,取值1-2147483647之间,topic_policy为1,2,3,时需要,不填默认为1。 |
| replication_factor | 否 | String | 副本个数,取值1-32767之间,topic_policy为1,2,3,时需要,不填默认为1。 |
| is_fill_materialized_view | 否 | Boolean | PostgreSQL全量阶段是否填充物化视图,不填默认为false。 |
| export_snapshot | 否 | Boolean | PostgreSQL全量阶段是否使用快照模式导出,不填默认为false。 |
| slot_name | 否 | String | 复制槽名称,gaussdbv5ha-to-kafka主备任务必填。PostgreSQL为源的单增量同步任务选填。 |
| file_and_position | 否 | String |
|
| gtid_set | 否 | String |
|
| ddl_topic | 否 | String | 存储DDL的topic,Kafka为目标且ddl_trans为true时必填。 取值:目标库已存在的topic名称,确保topic已存在。 |
响应参数
状态码:200
| 参数 | 参数类型 | 描述 |
|---|---|---|
| count | Integer | 总数。 |
| results | Array of objects | 批量设置同步策略返回列表。 详情请参见表6。 |
请求示例
- 批量设置同步任务策略,其中增量冲突策略为忽略,同步增量DDL并过滤drop_database操作
https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-sync-policy { "jobs": [{ "conflict_policy": "ignore", "ddl_trans": true, "filter_ddl_policy": "drop_database", "index_trans": true, "job_id": "19557d51-1ee6-4507-97a6-8f69164jb201" }] } - 批量设置MySQL单增量同步任务策略示例:
https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-sync-policy { "jobs": [ { "conflict_policy": "ignore", "ddl_trans": true, "filter_ddl_policy": "drop_database", "index_trans": true, "job_id": "19557d51-1ee6-4507-97a6-8f69164jb201", "file_and_position": "mysql-bin.000019:197", "gtid_set":"e4979f26-4bc3-11ee-b279-fa163ef21d64:1-23" } ] }
响应示例
状态码:200
OK
{
"results" : [ {
"id" : "19557d51-1ee6-4507-97a6-8f69164jb201",
"status" : "success"
} ],
"count" : 1
} 状态码
| 状态码 | 描述 |
|---|---|
| 200 | OK |
| 400 | Bad Request |
错误码
请参见错误码。