
# 创建数据级表对比任务 - CreateDataLevelTableCompareJob
#### 功能介绍
创建数据级表对比任务。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-drs/drs_api_0035.html)。
#### URI
POST /v3/{project_id}/jobs/{job_id}/table/compare
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | 租户在某一Region下的Project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-drs/drs_api_0106.html)。 |
| job_id     | 是    | String | 任务ID。                                                                                                                                                |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| Content-Type | 是    | String | 指定类型为application/json。 缺省值：**application/json**                                                                                                                                                                                                                                                                                                                                              |
| X-Auth-Token | 是    | String | 从IAM服务获取的用户Token。                                                                                                                                                                                                                                                                                                                                                                                                                           |
| X-Language   | 否    | String | 请求语言类型。 缺省值：**en-us** 枚举值： - **en-us**  - **zh-cn**   |
   
表3请求Body参数 
| 参数                           | 是否必选 | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| type                         | 是    | String               | 对比类型。 - lines：行数对比  - contents：内容对比  - random：抽样对比，当前仅支持GaussDB分布式到GaussDB分布、GaussDB分布式到PostgreSQL、GaussDB集中式到PostgreSQL同步链路。                                                                                                                                                                                                                                |
| start_time                   | 否    | String               | 对比任务启动时间，时间戳格式，取值为空代表立即启动。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| compare_mode                 | 否    | String               | 数据级对比模式，取值为空时需要在compare_object或者compare_object_with_token传对象信息，quick_comparison-快速对比。 取值：quick_comparison 缺省值：**quick_comparison**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| compare_object               | 否    | Array of objects     | 数据级对比的对象。 详情请参见[表4]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| options                      | 否    | Map\<String,String\> | 对比配置项，key-value形式。 内容对比支持以下配置项： - 对比方式配置，key：contentCompareType，value：dynamic表示动态对比，static表示静态对比。  - lob字段对比类型配置，key：lobCompare，value：ignore表示忽略，length表示长度对比。   行数对比支持以下配置项： - 对比策略配置，多表归一情况下适用，key：comparePolicy，value：normal表示正常对比，manyToOne表示多对一对比。   |
| compare_object_with_token    | 否    | Array of objects     | 数据级对比的对象（Cassandra灾备专用，带token信息）。 详情请参见[表5]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| compare_task_num             | 否    | Integer              | 对比任务线程数量，当前仅cloudDataGuard-cassandra和cloudDataGuard-gausscassandra-to-gausscassandra链路生效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| compare_transformation_infos | 否    | Array of objects     | 过滤数据信息。 详情请参见[表7]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| proportion_value             | 否    | Double               | 抽样比例，对比类型为抽样对比时填写。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表4compare_object字段数据结构说明 
| 参数         | 是否必选 | 参数类型             | 描述        |
|:---|:---|:---|:---|
| db_name    | 是    | String           | 库名。       |
| table_name | 否    | Array of strings | 该库下的表名列表。 |
   
 表5compare_object_with_token字段数据结构说明 
| 参数                    | 是否必选 | 参数类型             | 描述                                                                                                                                             |
|:---|:---|:---|:---|
| db_name               | 是    | String           | 库名。                                                                                                                                            |
| table_name_with_token | 否    | Array of objects | 该库下的表信息列表（带token）。 详情请参见[表6]。 |
   
 表6table_name_with_token字段数据结构说明 
| 参数         | 是否必选 | 参数类型   | 描述            |
|:---|:---|:---|:---|
| table_name | 是    | String | 表名。           |
| min_token  | 否    | String | 该表的min token。 |
| max_token  | 否    | String | 该表的max token。 |
   
 表7compare_transformation_infos字段数据结构说明 
| 参数                  | 是否必选 | 参数类型             | 描述                                                                                                                                            |
|:---|:---|:---|:---|
| object_info         | 是    | Array of objects | 对象信息。 详情请参见[表8]。       |
| transformation_info | 是    | Object           | 数据过滤信息。 详情请参见[表9]。 |
   
 表8object_info字段数据结构说明 
| 参数 | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| id | 否    | String | - 两层数据库场景： 数据库名称和数据库表名称，例如格式为t_auto_db-*-*-users，其中t_auto_db为数据库名称，users为表名称。  - 三层数据库场景： 数据库名称、数据库schema名称、数据库表名称，例如格式为t_auto_db-*-* -schema1-*-*-users，其中t_auto_db为数据库名称，schema1为数据库schema名称，users为表名称。   |
   
 表9transformation_info字段数据结构说明 
| 参数                  | 是否必选 | 参数类型   | 描述                                |
|:---|:---|:---|:---|
| transformation_type | 是    | String | 加工规则，值为contentConditionalFilter。  |
| value               | 是    | String | 过滤条件，值为sql条件语句，例如id\>100，长度限制256。 |
   
#### 响应参数
**状态码：202**
表10响应Body参数 
| 参数 | 参数类型   | 描述     |
|:---|:---|:---|
| id | String | 对比任务ID |
   
#### 请求示例
- 创建数据级表抽样对比任务
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/{job_id}/table/compare
  {
    "compare_object" : [ {
      "db_name" : "t_auto_db",
      "table_name" : [ ]
    } ],
    "options" : { },
    "proportion_value" : 20.1,
    "type" : "random"
  }
  ```
  
- 创建数据级表内容动态对比任务
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/{job_id}/table/compare
  {
    "compare_object" : [ {
      "db_name" : "t_auto_db",
      "table_name" : [ ]
    } ],
    "options" : {
      "contentCompareType" : "dynamic"
    },
    "start_time" : "1809366237000",
    "type" : "contents"
  }
  ```
  
- 创建数据级表内容静态对比任务
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/{job_id}/table/compare
  {
      "start_time": "",
      "type": "contents",
      "compare_object": [
          {
              "db_name": "t_auto_db",
              "table_name": [
                  "test_table"
              ]
          }
      ],
      "options": {
          "contentCompareType": "static"
      }
  }
  ```
  
- 创建带有数据过滤的行数对比任务。
  ```
  https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/{job_id}/table/compare
  {
    "compare_object" : [ ],
    "compare_transformation_infos" : [ {
      "object_info" : [ {
        "id" : "t_auto_db-*-*-test-*-*-users"
      } ],
      "transformation_info" : {
        "transformationType" : "contentConditionalFilter",
        "value" : "id>100"
      }
    } ],
    "type" : "lines"
  }
  ```
  
 
#### 响应示例
**状态码：202**
OK
```
{
  "id" : "6a0deb4a-ce39-449b-8c49-e0eed954c155"
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "DRS.M00202",
  "error_msg" : "The value of jobId is invalid."
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 202 | OK          |
| 400 | Bad Request |
   
其他状态请参见[状态码](https://support.huaweicloud.com/api-drs/drs_api_0108.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-drs/drs_05_0004.html)。
