更新时间:2023-07-20 GMT+08:00
分享

批量数据加工

功能介绍

数据复制服务支持对同步的对象进行加工,即可以为选择的对象添加规则。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

接口约束

  • 任务创建成功之后,且完成数据库对象选择后再调用启动任务接口。详情可参考任务创建流程
  • 每张表仅支持添加一个校验规则。
  • Oracle为源库的数据过滤每次最多支持20000张表,MySQL为源库的数据过滤每次最多支持10000张表。
  • 过滤条件不支持使用某种数据库引擎特有的packege、函数、变量、常量等写法,须使用通用SQL标准。

URI

POST /v3/{project_id}/jobs/batch-transformation

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户在某一Region下的Project ID。

获取方法请参见获取项目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参数

参数

是否必选

参数类型

描述

jobs

Array of objects

批量数据加工规则请求列表。

详情请参见表4

表4 jobs字段数据结构说明

参数

是否必选

参数类型

描述

job_id

String

任务ID。

object_info

Array of objects

对象信息,生成加工规则时需要填写。

详情请参见表5

transformation_info

Object

加工信息。

详情请参见表6

config_transformation

Object

  • 配置信息,如果存在多张关联表,请生成多条配置规则。满足配置条件的数据将暂存到缓存中,在数据过滤的场景进行使用。
  • 配置的库名和表名支持数字、字母和下划线。
  • 配置的列名、主键、索引,请确保与源库配置表的字段名保持大小写一致。

详情请参见表7

表5 object_info字段数据结构说明

参数

是否必选

参数类型

描述

id

String

数据库名称和数据库表名称,例如格式为lxl_test1-*-*-test_1,其中lxl_test1为数据库名称,test_1为表名称。

select

String

是否选择高级配置,值为true。

表6 transformation_info字段数据结构说明

参数

是否必选

参数类型

描述

transformation_type

String

  • 生成加工规则值为contentConditionalFilter。
  • 生成配置规则值为configConditionalFilter。

    取值:

    • contentConditionalFilter
    • configConditionalFilter

value

String

过滤条件,生成加工规则值为sql条件语句,生成配置规则值为config。长度限制256。

表7 config_transformation字段数据结构说明

参数

是否必选

参数类型

描述

db_table_name

String

库名.表名,例如格式为lxl_test1.test_1,其中lxl_test1为库名,test_1为表名。

db_name

String

库名。长度限制256。

table_name

String

表名。长度限制256。

col_names

String

列名。长度限制256。

prim_key_or_index

String

主键或唯一索引。长度限制256。

indexs

String

优化查询所需的索引。长度限制256。

values

String

过滤条件。长度限制256。

响应参数

状态码: 200

表8 响应Body参数

参数

参数类型

描述

results

Array of objects

批量数据加工响应列表。

详情请参见表9

count

integer

总数。

表9 results字段数据结构说明

参数

参数类型

描述

id

String

任务ID。

status

String

状态。取值:

  • success
  • failed

error_code

String

错误码。

error_msg

String

错误信息。

请求示例

  • MySQL同步任务数据生成配置规则
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-transformation
    
    {
      "jobs" : [ {
        "job_id" : "e894593d-5e0a-4652-af7e-1b0c239jb201",
        "object_info" : [ ],
        "transformation_info" : {
          "transformation_type" : "configConditionalFilter",
          "value" : "config"
        },
        "config_transformation" : {
          "col_names" : "id,name",
          "db_name" : "lxl_test1",
          "db_table_name" : "lxl_test1.test_1",
          "indexs" : "name",
          "prim_key_or_index" : "id",
          "table_name" : "test_1",
          "values" : "name like '%a%'"
        }
      } ]
    }
  • MySQL同步任务数据生成加工规则,对lxl_test1.test_1的表进行数据过滤,过滤条件为id>5
    https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/batch-transformation
    
    {
      "jobs" : [ {
        "job_id" : "e894593d-5e0a-4652-af7e-1b0c239jb201",
        "object_info" : [ {
          "id" : "lxl_test1-*-*-test_1",
          "select" : "true"
        } ],
        "transformation_info" : {
          "transformation_type" : "contentConditionalFilter",
          "value" : "id>5"
        }
      } ]
    }

响应示例

状态码: 200

OK

{
  "count" : 1,
  "results" : [ {
    "id" : "e894593d-5e0a-4652-af7e-1b0c239jb201",
    "status" : "success"
  } ]
}

状态码

状态码

描述

200

OK

400

Bad Request

错误码

请参见错误码

相关文档