批量设置同步策略
功能介绍
- 批量设置同步策略,包括冲突策略、过滤DROP Database、对象同步范围。
- 设置kafka同步策略
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
接口约束
- 任务创建成功之后,任务状态为CONFIGURATION,并且与源库和目标库测试连接通过、修改任务接口调用成功后才能调用。
- 支持设置Kafka同步策略的有:PostgreSQL-Kafka同步,Oracle-Kafka同步,GaussDB-Kafka同步,GaussDB(for MySQL)-Kafka,MySQL-Kafka。
- GaussDB(for MySQL)-Kafka,MySQL-Kafka支持任务状态为INCRE_TRANSFER_STARTED时修改Kafka策略配置,修改配置后需等任务状态为INCRE_TRANSFER_STARTED时再进行编辑同步对象操作。
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同步取值:
GaussDB(for MySQL)到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、GaussDB(for MySQL)到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 |
错误码
请参见错误码。