全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
数据传输服务DTS

配置订阅通道

更新时间:2017-09-01 10:08:12

描述

通过这个接口进行数据订阅任务的配置,包括实例连接信息,迁移对象等。
在任务成功启动之前,可以多次调用这个接口进行任务配置的修改。
目前只支持RDS MySQL类型实例的数据订阅。

请求参数

参数名称 数据类型 是否必须 参数描述
Action String 系统参数,为这个接口的接口定义,取值为:
ConfigureSubscriptionInstance
SubscriptionInstanceId String 需要配置的订阅通道ID
SubscriptionInstanceName String 订阅通道名称,可用于识别订阅通道
SourceEndpoint.InstanceType String 订阅实例类型,取值为:RDS
默认取值为:RDS
SourceEndpoint.InstanceId String RDS实例ID
SubscriptionDataType.DDL Boolean 订阅的数据类型,包括DDL结构更新
如果需要订阅DDL取值为true,否则为false
默认取值为:true
SubscriptionDataType.DML Boolean 订阅的数据类型,包括DML数据更新
如果需要订阅DML取值为true,否则为false
默认取值为:true
SubscriptionObjects List 源实例的监听端口,当源实例为自建数据库时必填,SubscriptionObject的具体定义详见下面的SubscriptionObject参数定义

SubscriptionObject参数定义

SubscriptionObject 的定义格式为 JSON字符串,且对象配置支持一定的正则表达式。

SubscriptionObject的定义如下:

  1. SubscriptionObject:{
  2. DBName:"待订阅的库名",
  3. TableIncludes:[{
  4. TableName: "待迁移表表名"
  5. }]
  6. }

其中:SubscriptionObject为订阅对象白名单。

各种对象名的定义可以支持如下的正则表达式:

  • 点号 . 表示匹配除’\r\n’之外的任何单个字符
  • 星号 * 表示匹配前面子表达式任意次,h.*llo匹配hllo, heeeello等字符串
  • 问号 ?表示匹配前面子表达式零次或1次,h.?llo 匹配hllo,hello,但不能匹配haello
  • [characters] 字符集合,表示匹配方括号内任意一个字符,例如h[aello]匹配hallo, hello
  • [^characters] 负值字符集合,表示不匹配方括号内任意一个字符,例如h[^ae]llo匹配hcllo,hdllo,但是不能匹配hallo, hello
  • [character1-character2] 字符范围,表示character1-character2范围内的字符都可以匹配,例如[0-9],[a-z]

返回参数

参数名称 数据类型 参数说明
RequestId String 请求的唯一标识
Success String 请求是否成功,返回true或者false
ErrCode String 错误码
ErrMessage String 错误详细内容

示例

下面简单演示通过JAVA SDK 配置迁移任务的示例:

  1. private static void configureSbeJob(String MigrationJobId){
  2. String MigrationJobName="jiangliutest";
  3. /*Source Endpoint*/
  4. String SourceEndpoint_InstanceId="rm-bp185gso372vbd1l8";
  5. String SourceEndpoint_InstanceType="rds";
  6. Boolean MigrationMode_SubscriptionDataTypeDML=true;
  7. Boolean MigrationMode_SubscriptionDataTypeDDL=true;
  8. String MigrationObjects="[{\"DBName\":\"jiangliutest\","
  9. + "\"TableIncludes\":[{\"TableName\":\"t1\"}]}]";
  10. ConfigureSubscriptionInstanceRequest request = new ConfigureSubscriptionInstanceRequest();
  11. request.setMigrationJobId(MigrationJobId);
  12. request.setMigrationJobName(MigrationJobName);
  13. request.setSubscriptionInstanceId(jobId);
  14. request.setSubscriptionDataTypeDDL(MigrationMode_SubscriptionDataTypeDDL);
  15. request.setSubscriptionDataTypeDML(MigrationMode_SubscriptionDataTypeDML);
  16. request.setSourceEndpointInstanceType(SourceEndpoint_InstanceType);
  17. request.setSourceEndpointInstanceID(SourceEndpoint_InstanceId);
  18. request.setMigrationObject(MigrationObjects);
  19. try {
  20. ConfigureSubscriptionInstanceResponse response = client.getAcsResponse(request);
  21. System.out.println("Configure "+ MigrationJobId+ " Succeed");
  22. } catch (Exception e) {
  23. // TODO: handle exception
  24. System.out.println("Configure "+MigrationJobId + " Failed!");
  25. System.out.println(e.toString());
  26. }
  27. }
本文导读目录