基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
对 OceanBase 数据库至 Kafka 同步项目进行预检查
更新时间:2023-06-08 10:49:34
本文为您介绍 OMS 提供的 OpenAPI:对 OceanBase 数据库至 Kafka 的数据同步项目进行预检查。
功能说明
本接口用于对 OceanBase 数据库至 Kafka 的数据同步项目进行预检查,如果预检查通过,会正常运行项目。
接口说明
接口约束
本接口适用于 OMS V2.1.2 及以上版本。
请求路径
POST /api/omsp/v2/sync/ob-kafka/prechecks
请求参数
Request Body
{
"name": "string",
"sourceEndpointId": "string",
"destEndpointId": "string",
"kafkaTopic": "string",
"recordTypes": [
{}
],
"databaseVOS": [
{
"databaseName": "string",
"databaseId": "string",
"mappingDatabaseName": "string",
"tables": [
{
"tableName": "string",
"tableId": "string",
"mappingTableName": "string",
"tableETL": {
"tenantName": "string",
"database": "string",
"destDatabase": "string",
"tableName": "string",
"destName": "string",
"whereClause": "string",
"filterColumns": [
"string"
],
"shardColumns": [
"string"
],
"logicTableId": "string",
"sourceEndpointId": "string"
}
}
]
}
],
"startTimestamp": "integer[int64]"
}
| 参数 | 类型 | 必选 | 描述 |
|---|---|---|---|
| name | string | Y | 数据同步项目的名称。 |
| sourceEndpointId | string | Y | 源端数据源 ID,以"e_"开头。在创建 OceanBase 数据源的返回值中的 ID 字段获取。 |
| destEndpointId | string | Y | 目的端数据源 ID,以"e_"开头。在创建 Kafka 数据源的返回值中的 ID 字段获取。 |
| kafkaTopic | string | Y | Kafka Topic 名称。 |
| recordTypes | array | Y | 需要同步的增量 DML 记录类型。 支持 INSERT、DELETE 和 UPDATE 三种枚举值的组合。 |
| databaseVOS | array | Y | 需要同步的库表信息。具体包含的信息请参见下面的《DatabaseVO 数据结构》。 |
| startTimestamp | integer | Y | 同步详细起始时间点,通常设置为当前时间。其设置不超过一天前的时间点,否则可能导致出现数据库的增量数据已经删除的问题。 |
DatabaseVO 数据结构
| 参数 | 类型 | 必选 | 描述 |
|---|---|---|---|
| databaseName | string | Y | 数据库的名称。 |
| databaseId | string | Y | 数据库的唯一标识。 |
| mappingDatabaseName | string | Y | 数据库的映射名称。 |
| tables | array | Y | 需要同步的表信息。具体包含的信息请参见下面的《TableVO 数据结构》。 |
TableVO 数据结构
| 参数 | 类型 | 必选 | 描述 |
|---|---|---|---|
| tableName | string | Y | 表名称。 |
| tableId | string | N | 逻辑表的唯一标识。 |
| mappingTableName | string | Y | 数据表的映射名称。 |
| tableETL | Object | Y | 逻辑表过滤条件 ETL。具体包含的信息请参见下面的《OmsSyncConditionVO 数据结构》。 |
OmsSyncConditionVO 数据结构
| 参数 | 类型 | 必选 | 描述 |
|---|---|---|---|
| tenantName | string | N | 租户的名称。 |
| database | string | N | 源端数据库的名称。 |
| destDatabase | string | N | 目标端数据库的名称。 |
| tableName | string | N | 源端的表名称。 |
| destName | string | N | 目标端的表称或 Topic 名称。 |
| whereClause | string | N | SQL 语法。 |
| filterColumns | array[string] | N | 过滤列。 |
| shardColumns | array[string] | N | 分片键列。 |
| logicTableId | string | N | 逻辑表的 Table ID。 |
| sourceEndpointId | string | N | 物理表的 EndPoint ID。 |
返回结果
您需要确保返回的 success 字段为 true,并记录 data 字段中的预检查任务 ID。
| 参数 | 类型 | 描述 |
|---|---|---|
| success | boolean | 是否调用成功。 |
| code | string | 状态码。 |
| message | string | 描述信息。 |
| advice | string | 建议。 |
| requestId | string | 请求 ID。 |
| pageNumber | integer[int32] | 当前页数。 |
| pageSize | integer[int32] | 每页条数。 |
| totalCount | integer[int64] | 总记录数。 |
| cost | string | 请求耗时。 |
| data | Object | 对于不同的接口,本字段包含的信息不同。 |
示例
请求示例
curl --location --request POST 'http://xxx.xxx.xxx.1:8089/api/omsp/v2/sync/ob-kafka/prechecks' \
--header 'Authorization: Basic YWRt=' \
--header 'Content-Type: application/json' \
--data '{
"name": "name",
"sourceEndpointId": "sourceEndpointId",
"destEndpointId": "destEndpointId",
"shardColumns": [
"TENANT_NAME"
],
"kafkaTopic": "test",
"recordTypes": [
"INSERT",
"DELETE",
"UPDATE"
],
"databaseVOS": [
{
"databaseName": "databaseName",
"tables": [
{
"tableName": "tableName",
"tableETL": {}
}
]
}
],
"startTimestamp": 1637568354
}'
返回示例
{
"success": true,
"code": null,
"message": null,
"advice": null,
"requestId": null,
"pageNumber": null,
"pageSize": null,
"totalCount": null,
"cost": null,
"data": "t_38t***"
}