数据过滤规则校验
功能介绍
数据过滤规则校验。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v5/{project_id}/job/{job_id}/data-filtering/check
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| project_id | 是 | String | 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 | 
| job_id | 是 | String | 任务ID。 | 
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| Content-Type | 是 | String | 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 缺省值:application/json | 
| X-Auth-Token | 是 | String | 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 | 
| X-Language | 否 | String | 请求语言类型。 缺省值:en-us 枚举值: 
 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| data_process_info | 否 | Array of objects | 指定任务数据加工规则请求体。 详情请参见表4。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| filter_conditions | 否 | Array of objects | 指定任务数据加工规则请求体。 当进行数据过滤规则校验,必填 当数据过滤规则校验通过,需要更新数据过滤规则时,必填 详情请参见表5。 | 
| is_batch_process | 否 | Boolean | 库级、批量表级处理为true,单表操作为false。 | 
| add_columns | 否 | Array of objects | 附加列,当选择附加列时必须填写。 
         说明: 
         使用多对一操作时,需要使用数据加工的附加列操作来避免数据冲突。 详情请参见表6。 | 
| ddl_operation | 否 | Map<String,String> | 支持DDL的语法,选择增量迁移或同步的DDL操作。取值及含义如下: "table": "CREATE TABLE, ALTER TABLE,DROP TABLE,RENAME TABLE" 如该值为空,不迁移或同步DDL操作。 | 
| dml_operation | 否 | String | 支持DML的语法 选择DML操作时,取值如下: 
 如该值为空,不增量迁移或同步DML操作。 | 
| db_object_column_info | 否 | Object | 列映射、过滤信息 当进行列映射、过滤信息时必须填写。 详情请参见表7。 | 
| db_or_table_rename_rule | 否 | Object | 库表映射规则。 详情请参见表9。 | 
| db_object | 否 | Object | 数据加工对象信息 当做过映射、进行数据过滤条件校验时,必须填写。 详情请参见表10。 | 
| is_synchronized | 否 | Boolean | 表示该规则是否已同步至目标库。 | 
| source | 否 | String | 对比的来源。 
 枚举值: 
 | 
| process_rule_level | 否 | String | 数据加工规则作用级别 
 当进行数据过滤规则校验,必填 当需要更新数据加工规则(数据过滤、列加工等)时,必填 枚举值: 
 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| value | 否 | String | 过滤条件。当filtering_type是configConditionalFilter时,value默认填写config。当filtering_type是contentConditionalFilter时,value默认填写过滤条件。 
         说明: 
         
 | 
| filtering_type | 否 | String | 过滤条件类型 
 枚举值: 
 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| column_type | 否 | String | 列类型。 | 
| column_name | 否 | String | 列名称。 | 
| column_value | 否 | String | 列填充值。 | 
| data_type | 否 | String | 填充列的数据类型。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| db_name | 否 | String | 数据库库名称。 | 
| schema_name | 否 | String | 数据库schema名称。 | 
| table_name | 否 | String | 数据库表名称。 | 
| column_infos | 否 | Array of objects | 数据库列信息。 详情请参见表8。 | 
| total_count | 否 | Integer | 数据库列信息总数,与分页无关,仅作为返回体参数 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| column_name | 否 | String | 列名。 | 
| column_type | 否 | String | 列类型。 | 
| primary_key_or_unique_index | 否 | String | 主键或者唯一索引。 | 
| column_mapped_name | 否 | String | 列映射后的名称。 | 
| is_filtered | 否 | Boolean | 该列是否过滤。 | 
| is_partition_key | 否 | Boolean | 该列是否partitionKey。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| prefix_name | 否 | String | 前缀名称。当type为prefixAndSuffix,填写prefix_name,库表名称仅增加前缀,如果同时也填写suffix_name,库表名称增加前后缀。 | 
| suffix_name | 否 | String | 后缀名称。当type为prefixAndSuffix,填写suffix_name,库表名称仅增加后缀,如果同时也填写prefix_name,库表名称同时增加前后缀。 | 
| type | 否 | String | 库表映射类型。prefixAndSuffix:前缀、后缀或者前后缀。 枚举值: 
 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| object_scope | 是 | String | 数据库对象迁移或同步范围。取值: 
 枚举值: 
 | 
| target_root_db | 否 | Object | 数据库对象迁移或同步目标库,两层到三层数据库同步需要填写。 详情请参见表11。 | 
| object_info | 否 | Map<String,DatabaseObject> | 数据库对象迁移或同步信息,object_scope为all时不填,为库级或表级时必填。 详情请参见表12。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| sync_type | 否 | String | 该数据库在实时同步场景下的类型。取值: config:仅当该库作为数据过滤高级设置的关联库时,需要填写,此时该库以及该库下的schemas、tables“不会”被同步到目标库,name、all属性不生效,schemas、tables需要填写被关联的相关对象。 
         说明: 
         如果需要同步该库级对象,则在下级对象中填写sync_type值为config。 枚举值: 
 | 
| name | 否 | String | 该数据库在目标库的名称(库名映射)。 | 
| all | 否 | Boolean | 是否整库迁移或同步。 
         说明: 
         
 | 
| schemas | 否 | Map<String,SchemaObject> | 需要迁移或同步的模式,当整库迁移或同步为false时需要填写。 详情请参见表13。 | 
| tables | 否 | Map<String,TableObject> | 需要迁移或同步的表,当整库迁移或同步为false时需要填写。 详情请参见表14。 | 
| total_table_num | 否 | Integer | 库下的表的数量,表的数量超过阈值就不显示。 | 
| is_synchronized | 否 | Boolean | 是否已同步。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| sync_type | 否 | String | 该模式在实时同步场景下的类型。取值: config:仅当该模式作为数据过滤高级设置的关联模式时,需要填写,此时该模式以及该模式下的tables“不会”被同步到目标库,name、all属性不生效,tables需要填写被关联的相关对象。 
         说明: 
         如果需要同步该模式对象,则在下级对象中填写sync_type值为config。 | 
| name | 否 | String | 该模式在目标库的名称(模式名映射)。 | 
| all | 否 | Boolean | 是否整模式迁移或同步。 
         说明: 
         
 | 
| tables | 否 | Map<String,TableObject> | 需要迁移或同步的表,当整模式迁移或同步为false时需要填写。 详情请参见表14。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| sync_type | 否 | String | 该表在实时同步场景下的类型。取值: config:仅当该表作为数据过滤高级设置的关联表时,需要填写,此时该表以及该表下的columns“不会”被同步到目标库,name、all、filtered、filter_conditions属性不生效,columns需要填写被关联的相关对象,config_conditions需要填写数据过滤高级设置的配置条件。 
         说明: 
         如果需要同步该模式对象,则在下级对象中填写sync_type值为config。 | 
| type | 否 | String | 对象类型。取值: 
 枚举值: 
 | 
| name | 否 | String | 该表在目标库的名称(表名映射)。 | 
| all | 否 | Boolean | 是否整表迁移或同步。 
         说明: 
         
 | 
| db_alias_name | 否 | String | 一对多情况下,表级上对库名的映射。 | 
| schema_alias_name | 否 | String | 一对多情况下,表级上对schema名的映射。 | 
| filtered | 否 | Boolean | 该表是否进行数据过滤。 | 
| filter_conditions | 否 | Array of strings | 该表数据的过滤条件,生成加工规则值为SQL条件语句,长度限制512。 最小长度:0 最大长度:512 | 
| config_conditions | 否 | Array of strings | 该表数据过滤高级设置的配置条件,当该表作为联表查询时填写,生成加工规则值为SQL条件语句,长度限制512。 最小长度:0 最大长度:512 | 
| is_synchronized | 否 | Boolean | 是否已经进行同步。 | 
| columns | 否 | Map<String,ColumnObject> | 需要同步/映射/过滤/新增的列,当需要列过滤、列映射、附加列功能时填写,仅在实时同步任务中生效,当整表同步为false时需要填写。 详情请参见表15。 | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| sync_type | 否 | String | 该列在实时同步场景下的类型。取值: config:当该列作为数据过滤高级设置的关联列时,需要填写,同时如果该列是主键或优化查询所需的索引,则需要填写primary_key_for_data_filtering或index_for_data_filtering。 
         说明: 
         是否同步该列到目标库由“filtered”属性控制,与库级、模式级、表级控制方式不同。 | 
| primary_key_for_data_filtering | 否 | String | 该列是否在数据过滤高级设置场景下为主键,如果是主键则填该列列名,否则不填。 | 
| index_for_data_filtering | 否 | String | 优化查询所需的索引,将会为缓存数据增加索引,不会影响源表,当该列作为数据过滤高级设置的关联索引时,需要填写,否则不填。 | 
| name | 否 | String | 该列在目标库的名称(列名映射),当该列为“附加列”时须与数据库表级对象中列名保持一致。 | 
| type | 否 | String | 该列字段的数据类型。 列过滤:填写源列字段的数据类型。 附加列:新填充的列指定字段的数据类型,根据不同操作类型来决定取值范围与约束,具体对应如下: 
 | 
| primary_key_for_column_filtering | 否 | String | 该列是否在列映射场景下为主键,如果是主键则填PRI,否则填空。 | 
| filtered | 否 | Boolean | 该列是否进列过滤,不能与附加列additional同时使用。取值: 
 | 
| additional | 否 | Boolean | 该列是否为附加列,当该列为附加列时:name必须与表级对象中列名一致,并且不能与列过滤filtered同时使用。 | 
| operation_type | 否 | String | 操作类型,以特定的操作类型填充新加的列。不同操作类型对应的取值如下: 
 | 
| value | 否 | String | 附加列的值。对应约束如下: 
 | 
响应参数
状态码: 202
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| id | String | 查询结果ID。 | 
| job_id | String | 任务ID。 | 
| status | String | 查询状态。 枚举值: 
 | 
状态码: 400
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码。 最小长度:12 最大长度:12 | 
| error_msg | String | 错误描述。 最小长度:1 最大长度:512 | 
请求示例
数据过滤规则校验:
POST https://{endpoint}/v5/054ba152d480d55b2f5dc0069e7ddef0/job/c7debc9c-8e09-4a5d-8dd6-cc44f78jb20r/data-filtering/check
{
  "data_process_info" : [ {
    "filter_conditions" : [ {
      "filtering_type" : "contentConditionalFilter",
      "value" : "id>1"
    } ],
    "db_object" : {
      "object_info" : {
        "dyh4" : {
          "name" : "dyh4",
          "all" : false,
          "tables" : {
            "test1_table1" : {
              "name" : "test1_table1",
              "type" : "table",
              "all" : true
            },
            "test1_table10" : {
              "name" : "test1_table10",
              "type" : "table",
              "all" : true
            },
            "test1_table11" : {
              "name" : "test1_table11",
              "type" : "table",
              "all" : true
            }
          }
        }
      },
      "object_scope" : "table"
    }
  } ]
}
 响应示例
状态码: 202
Accept
{
  "id" : "0eacda0b-9422-4535-8b62-537d1833638b",
  "job_id": "177738d1-4eee-4fcb-a4e1-09aea79jb20i",
  "status" : "pending"
}
  状态码: 400
Bad Request
{
  "error_code" : "DRS.10000010",
  "error_msg" : "Job does not exist, please check job ID."
}
 状态码
| 状态码 | 描述 | 
|---|---|
| 202 | Accept | 
| 400 | Bad Request | 
错误码
请参见错误码。
 
  