Configuring Synchronization Policies in Batches
Function
- This API is used to configure synchronization policies in batches, including conflict policies, DROP Database filtering, and object synchronization scope.
- This API is used to configure Kafka synchronization policies.
Constraints
- This API can be called only after a task is created, the task status is CONFIGURATION, the test of connections to the source and destination databases is successful, and the API for modifying the task is successfully called.
- Kafka synchronization policies can be configured for the following data flow scenarios: synchronization from PostgreSQL to Kafka, from Oracle to Kafka, from GaussDB to Kafka, from GaussDB(for MySQL) to Kafka, and from MySQL to Kafka.
- GaussDB(for MySQL)-to-Kafka synchronization and MySQL-to-Kafka synchronization allow you to modify the Kafka policy configuration when the task is in the INCRE_TRANSFER_STARTED state. After the configuration is modified, you can edit the synchronization objects only when the task status changes to INCRE_TRANSFER_STARTED.
URI
POST /v3/{project_id}/jobs/batch-sync-policy
| Parameter | Mandatory | Type | Description | 
|---|---|---|---|
| project_id | Yes | String | Project ID of a tenant in a region For details about how to obtain the project ID, see Obtaining a Project ID. | 
Request Parameters
| Parameter | Mandatory | Type | Description | 
|---|---|---|---|
| Content-Type | Yes | String | The content type. The default value is application/json. | 
| X-Auth-Token | Yes | String | User token obtained from IAM. | 
| X-Language | No | String | Request language type Default value: en-us Values: 
 | 
| Parameter | Mandatory | Type | Description | 
|---|---|---|---|
| jobs | Yes | Array of objects | List of requests for setting synchronization policies in batches. For details, see Table 4. | 
| Parameter | Mandatory | Type | Description | 
|---|---|---|---|
| job_id | Yes | String | Task ID. | 
| conflict_policy | No | String | Conflict policy. Values: 
 | 
| filter_ddl_policy | No | String | DDL filtering policy. Value: drop_database | 
| ddl_trans | No | Boolean | Whether to synchronize DDL during incremental synchronization. | 
| index_trans | No | Boolean | Whether to synchronize indexes during incremental synchronization. | 
| topic_policy | No | String | Topic synchronization policy. This parameter is mandatory when destination database is Kafka. Values for synchronization from GaussDB Distributed to Kafka: 
 Values for synchronization from GaussDB Primary/Standby to Kafka and from PostgreSQL to Kafka: 
 Values for synchronization from Oracle to Kafka: 
 Values for synchronization from MySQL to Kafka: 
 Values for synchronization from GaussDB(for MySQL) to Kafka: 
 | 
| topic | No | String | Topic name. This parameter is mandatory when topic_policy is set to 0. Ensure that the topic exists. | 
| partition_policy | No | String | The policy for synchronizing topics to the Kafka partitions. This parameter is mandatory when the destination database is Kafka.. 
 When topic_policy is set to 0, the value can be 0, 1, 2, 3, 4, or 5. When topic_policy is set to 1, the value can be 1, 2, or 5. When topic_policy is set to 2, the value can be 0, 1, 3, or 4. When topic_policy is set to 3, the value can be 0 or 1. When topic_policy is set to 4, the value can be 0, 1, or 3. | 
| kafka_data_format | No | String | Data format delivered to Kafka. Available options: 
 If this parameter is left blank, the default value is json. 
         NOTE: 
         
 | 
| topic_name_format | No | String | The topic name format. This parameter is required if topic_policy is set to 1, 2, or 3. Values for synchronization from PostgreSQL to Kafka and synchronization from GaussDB primary/standby to Kafka: 
 Values for synchronization from Oracle to Kafka: 
 Values for synchronization from MySQL to Kafka and GaussDB(for MySQL) to Kafka: 
 | 
| partitions_num | No | String | Number of partitions. The value ranges from 1 to 2147483647. This parameter is mandatory if topic_policy is set to 1, 2, or 3. If this parameter is left blank, the default value is 1. | 
| replication_factor | No | String | Number of replicas. The value ranges from 1 to 32767. This parameter is mandatory if topic_policy is set to 1, 2, or 3. If this parameter is left blank, the default value is 1. | 
| is_fill_materialized_view | No | Boolean | Whether to fill the materialized view in the PostgreSQL full migration/synchronization phase. If this parameter is not specified, the default value is false. | 
| export_snapshot | No | Boolean | Whether to export data in snapshot mode in the PostgreSQL full migration/synchronization phase. If this parameter is not specified, the default value is false. | 
| slot_name | No | String | Replication slot name. This parameter is mandatory for tasks from GaussDB Primary/Standby to Kafka. | 
| file_and_position | No | String | 
 | 
| gtid_set | No | String | 
 | 
| ddl_topic | No | String | Topic for storing DDLs. This parameter is mandatory when Kafka is the destination database and ddl_trans is set to true. Value: name of an existing topic in the destination database. | 
Response Parameters
Status code: 200
| Parameter | Type | Description | 
|---|---|---|
| count | Integer | Total number. | 
| results | Array of objects | List of returned synchronization policies that are configured in batches. For details, see Table 6. | 
Example Request
- Configuring synchronization task policies in batches, in which conflict_policy is set to ignore, ddl_trans is set to true, and filter_ddl_policy is set to 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" }] }
- Configuring MySQL incremental synchronization task policies in batches:
    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" } ] }
Example Response
Status code: 200
OK
{
  "results" : [ {
    "id" : "19557d51-1ee6-4507-97a6-8f69164jb201",
    "status" : "success"
  } ],
  "count" : 1
}
 Status Code
| Status Code | Description | 
|---|---|
| 200 | OK | 
| 400 | Bad Request | 
Error Code
For details, see Error Code.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.
 
    