This topic describes the CreateProject API provided by OceanBase Migration Service (OMS): how to create a migration project.
Purpose
This interface is used to create a data migration or synchronization task.
Call description
Limitations
This interface applies to OMS V4.1.0 and later.
Request path
POST /api/v2?Action=CreateProject
Request parameters
Parameter |
Type |
Description |
|---|---|---|
| name | string | The name of the task, which cannot contain spaces. |
| type | string | The type of the task. Valid values: MIGRATION (indicates a data migration task) and SYNC (indicates a data synchronization task). |
| labelIds | array | A collection of tag IDs. At most five tag IDs are supported. |
| sourceEndpointId | string | The ID of the source data source. To obtain the ID, call the ListDataSource interface. The ID is in the format of e_****. |
| sinkEndpointId | string | The ID of the destination data source. To obtain the ID, call the ListDataSource interface. The ID is in the format of e_****. |
| transferMapping | object | The mapping information about the transfer objects. |
| ├─ mode | string | The transfer object mapping mode. Valid values: SPECIFIC (specifies objects) and WILDCARD (matches rules). |
| ├─ databases | object [] | The list of database objects. For more information about the parameters in this field, see "Parameters in databases/databasesBlack". |
| ├─ databasesBlack | object [] | The list of blacklisted database objects in the match rule mode. For more information about the parameters in this field, see "Parameters in databases/databasesBlack". |
| ├─ tableAndViewWhiteList | array | The wildcard allowlist of tables and views in the match rule mode. |
| ├─ tableAndViewBlackList | array | The wildcard blocklist of tables and views in the match rule mode. |
| commonTransferConfig | object | The common transfer configuration. |
| ├─ tableCategory | string | The supported table type. Valid values: ALL (all tables), WITH_UNIQUE_ROW_ID (tables with unique row identifiers), and WITHOUT_UNIQUE_ROW_ID (tables without unique row identifiers). Default value: ALL. |
| ├─ activeActive | boolean | Specifies whether the scenario is an active-active disaster recovery scenario. |
| ├─ mqSerializerType | string | The JSON serialization type when data is delivered to a message queue. Valid values: DEFAULT, CANAL, DATAWORKS_V2, SHAREPLEX, DEFAULT_WITH_SCHEMA, DEBEZIUM, DEBEZIUMFLATTEN, and DEBEZIUMSMT. |
| ├─ mqPartitionMode | string | The partition routing mode when data is delivered to a message queue. Valid values: ONE (specify a partition), HASH (hash partition by primary key or shard column value), and TABLE (hash partition by database and table name). |
| ├─ mqPartition | integer | When partitionMode is ONE, this parameter indicates the position of the delivery partition in the current topic. |
| ├─ datahubTopicType | string | The type of the topic to which data is delivered to a DataHub instance. Valid values: TUPLE and BLOB. |
| ├─ rocketMqProducerGroup | string | The name of the production group. This parameter is effective only when the destination data source is a RocketMQ data source. Default value: OMS. |
| ├─ rocketMqMsgTags | string | The message tags. This parameter is effective only when the destination data source is a RocketMQ data source. Default value: default->default_tag. If the value of this parameter is default, _tag is appended as the suffix. |
| ├─ rocketMqEnableMsgTrace | boolean | Specifies whether to enable message tracing. This parameter is effective only when the destination data source is a RocketMQ data source. |
| ├─ rocketMqSendMsgTimeout | long | The timeout period for message delivery. This parameter is effective only when the destination data source is a RocketMQ data source. |
| ├─ dataWorksBusinessName | string | The identifier of the business system. It is used to identify the business system source of data so that you can perform custom processing on the data later. This parameter is supported only when the JSON serialization type is DataWorks. The length of the value of this parameter must be 1 to 20 characters. |
| ├─ sinkStoreFormat | string | The object storage type of the destination table. Valid values: Default, Row storage, Column storage, and Hybrid columnar storage. This parameter is effective only when the destination OceanBase Database is V4.3.0 or later and the migration type is Schema Migration or Incremental Synchronization > DDL synchronization. |
| ├─ sourceStoreFormat | string | The object storage type of the source table. Valid values: Default, Row storage, Column storage, and Hybrid columnar storage. This parameter is effective only when the source OceanBase Database is V4.3.0 or later and the migration type is Reverse Increment > DDL synchronization. |
| enableStructTransfer | boolean | Specifies whether to allow schema migration. |
| structTransferConfig | object | The schema migration configuration. |
| ├─ byteCharConvertStrategy | string | The byte/char conversion strategy. Valid values: IGNORE_BYTE_IF_BYTE_USED, FORCE_CHAR_IF_BYTE_USED, EXPAND_LEN_IF_BYTE_USED, and DO_NOTHING_IF_BYTE_USED (default). |
| ├─ deferIndexCreation | boolean | Specifies whether to allow index creation to be postponed. The default value is false. |
| enableFullTransfer | boolean | Specifies whether to enable full transfer. |
| enableFullVerify | boolean | Specifies whether to enable full verification. |
| fullTransferConfig | object | The full transfer configuration. |
| ├─ nonePkUkTruncateDstTable | boolean | Specifies whether to truncate the destination table when performing full migration of tables without unique indexes in the source. |
| ├─ allowDestTableNotEmpty | boolean | The processing strategy to be adopted when the destination table contains records. Valid values: Ignore and Stop Migration.
|
| ├─ fullTransferSpeedMode | string | The full transfer concurrency speed. Valid values: STEADY, NORMAL, and FAST. |
| ├─ fullVerifySpeedMode | string | The full verification concurrency speed. Valid values: STEADY, NORMAL, and FAST. |
| ├─ throttleRps | integer | The maximum allowed transfer rate in records per second in full transfer. Input null to indicate no limit. |
| ├─ throttleIOPS | integer | The maximum allowed transfer traffic in bytes per second in full transfer. Input null to indicate no limit. |
| enableIncrTransfer | boolean | Specifies whether to enable incremental synchronization. |
| enableReverseIncrTransfer | boolean | Specifies whether to enable reverse incremental synchronization. |
| incrTransferConfig | object | The incremental synchronization configuration. |
| ├─ startTimestamp | string | The starting timestamp for incremental synchronization. This parameter is supported only when incremental synchronization is enabled but full transfer is not enabled. |
| ├─ recordTypeWhiteList | array | The data types of incremental data to be synchronized in incremental synchronization mode. Valid values: HEARTBEAT, INSERT, UPDATE, DELETE, BEGIN, COMMIT, ROLLBACK, DDL, and ROW. |
| ├─ storeLogKeptHour | integer | The log retention period in hours when the incremental log pulling component is Store. The default value is 7, and the maximum value is 365. |
| ├─ enableSequencingWithinTxn | boolean | Specifies whether to enable sequence number arrangement within a transaction when the incremental log pulling component is Store. |
| ├─ enableIncrSyncStatistics | boolean | Specifies whether to enable statistics collection for incremental records (DML and DDL). |
| ├─ incrOnlineDdlConfig | array | The value of this parameter indicates the online DDL tool that needs to be adapted. Valid values: GH_OST, PT_OSC, and ALIYUN_DMS, indicating gh-ost, pt-osc, and Alibaba Cloud DMS respectively.
|
| ├─ incrSyncConcurrency | integer | The number of threads for incremental synchronization. The default value is 64. |
| ├─ incrLogPullSpeedMode | string | The incremental log pulling speed. Valid values: STEADY (low), NORMAL (medium), FAST (high), and CUSTOM (custom). |
| ├─ incrLogPullSpeedConfig | object | The incremental log pulling resource configuration. This parameter is effective only when incrLogPullSpeedMode is set to CUSTOM. |
| ├─├─ memory | integer | The maximum memory size allowed for incremental log pulling. |
| ├─ incrLogSyncSpeedMode | string | The incremental data writing speed. Valid values: STEADY (low), NORMAL (medium), FAST (high), and CUSTOM (custom). |
| ├─ incrLogSyncSpeedConfig | object | The incremental data writing resource configuration. This parameter is effective only when incrLogSyncSpeedMode is set to CUSTOM. |
| ├─├─ memory | integer | The maximum memory size allowed for incremental log writing. |
| ├─├─ writerWorkerNum | integer | The number of concurrent incremental log writers. |
| ├─ throttleRps | integer | The maximum allowed transfer rate in records per second in incremental synchronization. Input null to indicate no limit. |
| ├─ throttleIOPS | integer | The maximum allowed transfer traffic in bytes per second in incremental synchronization. Input null to indicate no limit. |
| ├─ supportDDLTypes | array | The supported DDL types.
|
| reverseIncrTransferConfig | object | The configuration of reverse incremental synchronization. |
| ├─ startTimestamp | string | The starting timestamp for reverse incremental synchronization. This parameter is supported only when incremental synchronization is enabled but full transfer is not enabled. |
| ├─ recordTypeWhiteList | array | The data types of incremental data to be synchronized in reverse incremental synchronization mode. Valid values: HEARTBEAT, INSERT, UPDATE, DELETE, BEGIN, COMMIT, ROLLBACK, DDL, and ROW. |
| ├─ storeLogKeptHour | integer | The log retention period in hours when the incremental log pulling component is Store. The default value is 7, and the maximum value is 365. |
| ├─ enableSequencingWithinTxn | boolean | Specifies whether to enable sequence number arrangement within a transaction when the incremental log pulling component is Store. |
| ├─ enableIncrSyncStatistics | boolean | Specifies whether to enable statistics collection for incremental records (DML and DDL). |
| ├─ incrOnlineDdlConfig | array | The value of this parameter indicates the online DDL tool that needs to be adapted. Valid values: GH_OST, PT_OSC, and ALIYUN_DMS, indicating gh-ost, pt-osc, and Alibaba Cloud DMS respectively.
|
| ├─ incrSyncConcurrency | integer | The number of threads for reverse incremental synchronization. The default value is 64. |
| ├─ incrLogPullSpeedMode | string | The reverse incremental log pulling speed. Valid values: STEADY (low), NORMAL (medium), FAST (high), and CUSTOM (custom). |
| ├─ incrLogPullSpeedConfig | object | The reverse incremental log pulling resource configuration. This parameter is effective only when incrLogPullSpeedMode is set to CUSTOM. |
| ├─├─ memory | integer | The maximum memory size allowed for reverse incremental log pulling. |
| ├─ incrLogSyncSpeedMode | string | The reverse incremental data writing speed. Valid values: STEADY (low), NORMAL (medium), FAST (high), and CUSTOM (custom). |
| ├─ incrLogSyncSpeedConfig | object | The reverse incremental data writing resource configuration. This parameter is effective only when incrLogSyncSpeedMode is set to CUSTOM. |
| ├─├─ memory | integer | The maximum memory size allowed for reverse incremental log writing. |
| ├─├─ writerWorkerNum | integer | The number of concurrent reverse incremental log writers. |
| ├─ throttleRps | integer | The maximum allowed transfer rate in records per second in reverse incremental synchronization. Input null to indicate no limit. |
| ├─ throttleIOPS | integer | The maximum allowed transfer traffic in bytes per second in reverse incremental synchronization. Input null to indicate no limit. |
| ├─ supportDDLTypes | array | The supported DDL types.
|
Parameters in databases/databasesBlack
ParameterTypeDescriptionmappedName string The name of the target database. name string The name of the source database. id string The ID of the database. tables array The list of table object configurations to be transferred in the current database. When modeisWILDCARD, this parameter indicates the configuration of the specific blacklisted or whitelisted tables and views.├─ mappedName string The mapped name of the table. ├─ name string The name of the table. ├─ id string The ID of the table. ├─ whereClause string The WHEREclause in a standard SQL statement for configuring row filtering.Notice
When
modeisWILDCARD, you cannot set whereClause.├─ filterColumns array The filtered column set. Notice
When
modeisWILDCARD, you cannot set filterColumns.├─ shardColumns array The shard column set. Notice
When
modeisWILDCARD, you cannot set shardColumns.views array The view object configurations to be transferred in the current database. ├─ mappedName string The mapped name of the view. ├─ name string The name of the view. ├─ id string The ID of the view. ├─ whereClause string The WHEREclause in a standard SQL statement for configuring row filtering.Notice
When
modeisWILDCARD, you cannot set whereClause.├─ filterColumns array The filtered column set. Notice
When
modeisWILDCARD, you cannot set filterColumns.├─ shardColumns array The shard column set. Notice
When
modeisWILDCARD, you cannot set shardColumns.specificTables array The specific table object configurations. When modeisWILDCARD, this parameter indicates the renaming and row filtering configurations of specific tables.├─ mappedName string The mapped name of the table. ├─ name string The name of the table. ├─ id string The ID of the table. ├─ whereClause string The WHEREclause in a standard SQL statement for configuring row filtering.Notice
When
modeisWILDCARD, you cannot set whereClause.├─ filterColumns array The filtered column set. Notice
When
modeisWILDCARD, you cannot set filterColumns.├─ shardColumns array The shard column set. Notice
When
modeisWILDCARD, you cannot set shardColumns.specificViews array The specific view object configurations. When modeisWILDCARD, this parameter indicates the renaming configurations of specific views.├─ mappedName string The mapped name of the view. ├─ name string The name of the view. ├─ id string The ID of the view. ├─ whereClause string The WHEREclause in a standard SQL statement for configuring row filtering.Notice
When
modeisWILDCARD, you cannot set whereClause.├─ filterColumns array The filtered column set. Notice
When
modeisWILDCARD, you cannot set filterColumns.├─ shardColumns array The shard column set. Notice
When
modeisWILDCARD, you cannot set shardColumns.
Response parameters
Parameter |
Type |
Description |
|---|---|---|
| success | boolean | Indicates whether the call is successful. |
| errorDetail | object | Details of the error. |
| code | string | Error code. |
| message | string | Description of the error. |
| advice | string | Suggestion. |
| requestId | string | Request ID. |
| pageNumber | integer[int32] | Page number. This parameter is effective only when you query data in pages. |
| pageSize | integer[int32] | Number of records per page. This parameter is effective only when you query data in pages. |
| totalCount | integer[int64] | Total number of records. This parameter is effective only when you query data in pages. |
| cost | string | Request latency in seconds. |
| data | string | ID of the task. |
Examples
Sample request
{
"name":"test",
"type":"MIGRATION",
"labelIds":[
"l_4w****wygjk"
],
"sourceEndpointId":"e_4wg07f****",
"sinkEndpointId":"e_4wfy2****",
"transferMapping":{
"mode":"SPECIFIC",
"databases":[
{
"mappedName":"gez3***",
"name":"ion1****bmysql",
"id":null,
"tables":[
{
"mappedName":"tion12***20obmysql2",
"name":"GRATION129****",
"id":null,
"whereClause":null,
"filterColumns":null,
"shardColumns":null,
}
],
"views":null,
"specificTables":null,
"specificViews":null
}
],
"databasesBlack":null,
"tableAndViewWhiteList":null,
"tableAndViewBlackList":null
},
"commonTransferConfig":{
"tableCategory":null,
"activeActive":false,
"mqSerializerType":null,
"mqPartitionMode":null,
"mqPartition":0,
"datahubTopicType":null,
"rocketMqProducerGroup":null,
"rocketMqMsgTags":null,
"rocketMqEnableMsgTrace":null,
"rocketMqSendMsgTimeout":null,
"dataWorksBusinessName":null
},
"enableStructTransfer":true,
"structTransferConfig":{
"byteCharConvertStrategy":"DO_NOTHING_IF_BYTE_USED",
"deferIndexCreation":true
},
"enableFullTransfer":true,
"enableFullVerify":true,
"fullTransferConfig":{
"nonePkUkTruncateDstTable":null,
"allowDestTableNotEmpty":true,
"throttleRps": 1000,
"throttleIOPS": 1000,
"fullTransferSpeedMode":"NORMAL",
"fullVerifySpeedMode":"NORMAL"
},
"enableIncrTransfer":true,
"enableReverseIncrTransfer":true,
"incrTransferConfig":{
"startTimestamp":1689201369,
"storeLogKeptHour":120,
"recordTypeWhiteList":[
"DELETE",
"INSERT",
"UPDATE"
],
"enableSequencingWithinTxn":true,
"incrSyncConcurrency":64,
"incrLogPullSpeedMode":"NORMAL",
"incrLogPullSpeedConfig":{
"memory":4
},
"incrLogSyncSpeedMode":"CUSTOM",
"incrLogSyncSpeedConfig":{
"memory":4,
"writerWorkerNum":2
},
"throttleRps": 1000,
"throttleIOPS": 1000,
"enableIncrSyncStatistics":true,
"supportDDLTypes":[
"CREATE_TABLE",
"ALTER_TABLE"
],
"incrOnlineDdlConfig":[
"GH_OST",
"PT_OSC",
"ALIYUN_DMS"
]
},
"ReverseIncrTransferConfig":{
"startTimestamp":1689201369,
"recordTypeWhiteList":[
"DELETE",
"INSERT",
"UPDATE"
],
"storeLogKeptHour":120,
"incrSyncConcurrency":64,
"incrLogPullSpeedMode":"NORMAL",
"incrLogPullSpeedConfig":{
"memory":4
},
"incrLogSyncSpeedMode":"CUSTOM",
"incrLogSyncSpeedConfig":{
"memory":4,
"writerWorkerNum":2
},
"throttleRps": 1000,
"throttleIOPS": 1000,
"enableIncrSyncStatistics":true,
"supportDDLTypes":[
"CREATE_TABLE",
"ALTER_TABLE"
]
}
}
Sample response
{
"Success":true,
"ErrorDetail":{
"Code":"CM-RES***11",
"Level":"WARN",
"Message":"A system error occurred.",
"Proposal":"Contact the administrator."
},
"Code":"INNER_ERROR",
"Message":"A system error occurred.",
"Advice":"Contact the administrator.",
"RequestId":"XCVSADG****DSGDS",
"PageNumber":1,
"PageSize":1,
"TotalCount":1,
"Cost":"27 ms",
"Data":"np_****"
}
