华为云用户手册

  • 响应示例 状态码: 200 OK { "count" : 1, "ddl_list" : [ { "seqno" : 30, "checkpoint" : "mysql-bin.000006:431;200e3d00-4a57-11ef-8a76-fa163ef2208a:7;200e3d00-4a57-11ef-8a76-fa163ef2208a:1-7", "status" : 1, "ddl_timestamp" : 1721894317000, "ddl_text" : "/* sql from das */ALTER TABLE `test1`.`test1`\n\tADD COLUMN `sex` VARCHAR(32) NULL AFTER `name`", "exe_result" : true, "record_time" : 1721894318544, "clean_time" : 1721897321317 } ] } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • URI GET /v5/{project_id}/jobs/{job_id}/ddl 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Integer 偏移量,默认值为0,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制.默认值为10。 start_seq_no 否 Long DDL序列起始值。 end_seq_no 否 Long DDL序列结束值。 status 否 Integer DDL状态,0为无告警,1为告警中。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从 IAM 服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 ddl_list Array of DdlAlarmResp objects DDL告警信息列表。 count Integer 列表中的项目总数,与分页无关。 表5 DdlAlarmResp 参数 参数类型 描述 seqno Long 记录唯一序号。 checkpoint String 数据源库位点。 status Integer DDL告警状态。0无告警,1告警中。 ddl_timestamp Long DDL在源库执行时间。 ddl_text String DDL内容。 exe_result Boolean DDL执行结果。false执行失败,true执行成功。 record_time Long 数据记录时间。 clean_time Long DDL告警清理时间。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 请求示例 修改指定连接示例。 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/connections/835e1d79-24ac-411d-a1c8-22c000280659 { "name" : "DRS-mysql-newName", "type" : "mysql", "description" : "description-new", "endpoint" : { "endpoint_name" : "mysql", "ip" : "127.0.0.1", "db_port" : "3306", "db_user" : "root", "db_password" : "password" }, "vpc" : { }, "ssl" : { "ssl_link" : false }, "enterprise_project_id" : "0" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 否 String 连接名称。 db_type 否 String 数据库类型。 config 否 ConnectionConfig object 连接配置,不同类型的连接配置不同。 description 否 String 连接描述。 endpoint 否 BaseEndpoint object 数据库连接基本信息。 vpc 否 CloudVpcInfo object 数据库实例所在VPC,子网,安全组等信息。 ssl 否 EndpointSslConfig object 数据库SSL证书信息。 cloud 否 CloudBaseInfo object 数据库实例所在Region,项目等信息。 表4 ConnectionConfig 参数 是否必选 参数类型 描述 driver_name 否 String 驱动程序名称。 表5 BaseEndpoint 参数 是否必选 参数类型 描述 id 否 String 数据库信息ID。 endpoint_name 是 String 数据库场景类型。取值: oracle:云下自建Oracle数据库。 ecs_oracle:华为云E CS 自建Oracle数据库。 cloud_gaussdbv5:华为云数据库 GaussDB 分布式。 mysql:他云/本地自建MySQL数据库。 ecs_mysql:华为云ECS自建MySQL数据库。 cloud_mysql:华为云数据库RDS for MySQL。 redis:云下自建Redis数据。 ecs_redis:华为云ECS自建Redis数据。 rediscluster:云下自建Redis集群数据库。 ecs_rediscluster:华为云ECS自建Redis集群数据库。 cloud_gaussdb_redis:华为云数据库GeminiDB Redis。 postgresql: 云下自建PostgreSQL数据库。 ecs_postgresql: 华为云ECS自建PostgreSQL数据库。 cloud_postgresql: 华为云数据库RDS for PostgreSQL。 mongodb: 云下自建MongoDB数据库。 ecs_mongodb: 华为云ECS自建MongoDB数据库。 cloud_mongodb: 华为云文档数据库服务DDS。 ip 否 String 数据库IP。约束:- 数据库为自建MongoDB时,数据库IP与端口之间用“:”英文冒号拼接,多个值之间请用“,”英文逗号隔开,最多支持填写3个IP地址或 域名 。- 数据库为DDS实例时,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔。- 数据库为Redis集群时,请填写源端Redis集群所有分片的IP地址和对应端口,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔,并且推荐填写集群分片的Slave节点的IP地址。最多支持填写32个IP地址或域名,多个值之间请用英文逗号隔开。示例:- MySQL:ip- MongoDB:ip:port,ip:port,ip:port- DDS:ip:port,ip:port - Redis集群:ip:port,ip:port db_port 否 String 数据库端口。 约束:输入范围为1-65535之间的整数。 db_user 是 String 数据库用户名。 db_password 是 String 数据库密码。 instance_id 否 String 华为云数据库实例ID。 instance_name 否 String 华为云数据库实例名称。 db_name 否 String 指定数据库名称。例如: oracle:serviceName.orcl。 source_sharding 否 Array of BaseEndpoint objects 物理源库信息。 表6 CloudVpcInfo 参数 是否必选 参数类型 描述 vpc_id 是 String 数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id 是 String 数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 security_group_id 否 String 数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 表7 EndpointSslConfig 参数 是否必选 参数类型 描述 ssl_link 否 Boolean 是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 ssl_cert_name 否 String SSL证书名字。 ssl_cert_key 否 String SSL证书内容,用base64加密。 ssl_cert_check_sum 否 String SSL证书内容checksum值,后端校验,源库安全连接必选。 ssl_cert_password 否 String SSL证书密码,证书文件后缀为.p12时必填。 表8 CloudBaseInfo 参数 是否必选 参数类型 描述 region 是 String 区域ID,当数据库实例类型为ecs(华为云ECS自建数据库),cloud(华为云数据库)时为必填项。获取方法请参见地区和终端节点。 注意:当该Region下存在子项目时,Region ID为区域项目ID与子项目ID,由“_”下划线拼接,例如:cn-north-4_abc。 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 az_code 否 String 数据库所在可用分区(AZ)名称。
  • 响应示例 状态码: 200 OK { "connections" : [ { "name" : "DRS-mysql", "type" : "mysql", "endpoint" : { "endpoint_name" : "mysql", "ip" : "127.0.0.1", "db_port" : "3306", "db_user" : "root" }, "description" : "description", "connection_id" : "835e1d79-24ac-411d-a1c8-22c000280659", "ssl" : { "ssl_link" : false }, "create_time" : 1716879012121, "enterprise_project_id" : "0" } ], "count" : 1 } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 connections Array of ConnectionResp objects 连接信息列表。 count Integer 列表中的项目总数,与分页无关。 表5 ConnectionResp 参数 参数类型 描述 connection_id String 连接ID。 name String 连接名称。 create_time Long 连接创建时间,格式为时间戳。 db_type String 连接类型。 config ConnectionConfig object 连接的配置项。 endpoint BaseEndpoint object 数据库基本信息。 vpc CloudVpcInfo object 数据库实例所在VPC,子网,安全组等信息。 ssl EndpointSslConfig object 数据库SSL证书信息。 表6 ConnectionConfig 参数 参数类型 描述 driver_name String 驱动程序名称。 表7 BaseEndpoint 参数 参数类型 描述 id String 数据库信息ID。 endpoint_name String 数据库场景类型。取值: oracle:云下自建Oracle数据库。 ecs_oracle:华为云ECS自建Oracle数据库。 cloud_gaussdbv5:华为云数据库GaussDB分布式。 mysql:他云/本地自建MySQL数据库。 ecs_mysql:华为云ECS自建MySQL数据库。 cloud_mysql:华为云数据库RDS for MySQL。 redis:云下自建Redis数据。 ecs_redis:华为云ECS自建Redis数据。 rediscluster:云下自建Redis集群数据库。 ecs_rediscluster:华为云ECS自建Redis集群数据库。 cloud_gaussdb_redis:华为云数据库GeminiDB Redis。 postgresql: 云下自建PostgreSQL数据库。 ecs_postgresql: 华为云ECS自建PostgreSQL数据库。 cloud_postgresql: 华为云数据库RDS for PostgreSQL。 mongodb: 云下自建MongoDB数据库。 ecs_mongodb: 华为云ECS自建MongoDB数据库。 cloud_mongodb: 华为云文档数据库服务DDS。 ip String 数据库IP。约束:- 数据库为自建MongoDB时,数据库IP与端口之间用“:”英文冒号拼接,多个值之间请用“,”英文逗号隔开,最多支持填写3个IP地址或域名。- 数据库为DDS实例时,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔。- 数据库为Redis集群时,请填写源端Redis集群所有分片的IP地址和对应端口,数据库IP与端口之间用“:”英文冒号拼接,多个IP端口之间请用“,”英文逗号分隔,并且推荐填写集群分片的Slave节点的IP地址。最多支持填写32个IP地址或域名,多个值之间请用英文逗号隔开。示例:- MySQL:ip- MongoDB:ip:port,ip:port,ip:port- DDS:ip:port,ip:port - Redis集群:ip:port,ip:port db_port String 数据库端口。 约束:输入范围为1-65535之间的整数。 db_user String 数据库用户名。 db_password String 数据库密码。 instance_id String 华为云数据库实例ID。 instance_name String 华为云数据库实例名称。 db_name String 指定数据库名称。例如: oracle:serviceName.orcl。 source_sharding Array of BaseEndpoint objects 物理源库信息。 表8 CloudVpcInfo 参数 参数类型 描述 vpc_id String 数据库实例所在的虚拟私有云ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在虚拟私有云的详情页面查找VPC ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询VPC列表。 subnet_id String 数据库实例所在子网ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,单击VPC下的子网,进入子网详情页面,查找网络ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询子网列表。 security_group_id String 数据库实例所在的安全组ID,获取方法如下: 方法1:登录虚拟私有云服务的控制台界面,在安全组的详情页面查找安全组ID。 方法2:通过虚拟私有云服务的API接口查询,具体操作可参考查询安全组列表。 表9 EndpointSslConfig 参数 参数类型 描述 ssl_link Boolean 是否SSL安全连接。如果数据库启用了SSL安全连接,参数值为true。 ssl_cert_name String SSL证书名字。 ssl_cert_key String SSL证书内容,用base64加密。 ssl_cert_check_sum String SSL证书内容checksum值,后端校验,源库安全连接必选。 ssl_cert_password String SSL证书密码,证书文件后缀为.p12时必填。 状态码: 400 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误描述。
  • URI GET /v5/{project_id}/connections 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 表2 Query参数 参数 是否必选 参数类型 描述 connection_id 否 String 连接ID。 db_type 否 String 连接类型。 mysql oracle postgresql mongodb name 否 String 连接名称,忽略大小写。 inst_id 否 String 云上数据库实例ID。 ip 否 String 连接IP。 description 否 String 连接描述。 create_time 否 String 时间区间用“,”分割。示例:2024-05-17T07:46:00.414Z,2024-05-20T07:46:00.999Z。 enterprise_project_id 否 String 企业项目ID。 offset 否 Integer 偏移量,默认值为0,表示查询该偏移量后面的记录。 limit 否 Integer 查询返回记录的数量限制.默认值为10。 fetch_all 否 Boolean 值为“true”时会使得offset和limit参数失效并返回所有记录。 sort_key 否 String 返回结果按该关键字排序,默认为“created_at”。 sort_dir 否 String 降序或升序(分别对应desc和asc,默认为“desc”)。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。
  • 请求示例 任务按需转包周期 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/job/39cda050-66c7-4afc-8023-dd525eajb2d9/change-to-period { "period_type" : "2", "period_num" : 1, "is_auto_renew" : false, "is_auto_pay" : false }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 发送的实体的MIME类型。推荐用户默认使用application/json,如果API是对象、镜像上传等接口,媒体类型可按照流类型的不同进行确定。 X-Auth-Token 是 String 从IAM服务获取的用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 X-Language 否 String 请求语言类型。 表3 请求Body参数 参数 是否必选 参数类型 描述 period_type 是 String 订单类型,取值: 2:包月 3:包年 period_num 是 Integer 订单周期数 is_auto_renew 是 Boolean 是否自动续费 is_auto_pay 是 Boolean 是否自动支付
  • URI GET /v3/{project_id}/jobs/{job_id}/compare/result/file 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 表2 Query参数 参数 是否必选 参数类型 描述 compare_type 否 String 对比任务类型: contents: 内容对比。 lines:行数对比。 random:抽样对比。 objects_comparison:对象对比。 compare_job_id 否 String 对比任务的ID,内容对比、抽样对比、行数对比场景必填。
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 指定类型为application/json。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn Region 否 String 区域ID,例如:cn-north-4。 表4 请求Body参数 参数 是否必选 参数类型 描述 compare_type 是 String 对比任务类型: contents: 内容对比。 lines:行数对比。 random:抽样对比。 objects_comparison:对象对比。 compare_job_id 否 String 对比任务的ID,内容对比、抽样对比、行数对比场景必填。 time_zone 否 String 时区,如GMT+08:00,用于生成当前时间标识,拼接到文件名称中。
  • URI GET /v5/{project_id}/jobs/{job_id}/health-compare-jobs/object/{compare_job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 compare_job_id 是 String 对比任务ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 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 枚举值: en-us zh-cn
  • 响应示例 状态码: 200 OK { "compare_result" : [ { "type" : "DB", "status" : 2, "source_count" : 1, "target_count" : 1 }, { "type" : "INDEX", "status" : 2, "source_count" : 2, "target_count" : 2 }, { "type" : "TABLE", "status" : 2, "source_count" : 2, "target_count" : 2 }, { "type" : "TABLE_COLLATION", "status" : 2, "source_count" : 2, "target_count" : 2 } ] } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 compare_result Array of objects 健康对比对象级对比结果。 详情请参见表4 表4 compare_result参数说明 参数 参数类型 描述 type String 对象类型。取值: DB:数据库。 TABLE:表。 VIEW:视图。 EVENT:事件。 ROUTINE:存储过程和函数。 INDEX:索引。 TRIGGER:触发器。 SYNONYM:同义词。 FUNCTION:函数。 PROCEDURE:存储过程。 TYPE:自定义类型。 RULE:规则。 DEFAULT_TYPE:缺省值。 PLAN_GUIDE:执行计划。 CONSTRAINT:约束。 FILE_GROUP:文件组。 PARTITION_FUNCTION:分区函数。 PARTITION_SCHEME:分区方案。 TABLE_COLLATION:表的排序规则。 EXTENSIONS:插件。 source_count Long 源数量。 target_count Long 目标数量。 status Integer 对比结果: 0:不一致。 2:一致。 3:未完成。 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:12 最大长度:12 error_msg String 错误描述。 最小长度:1 最大长度:512
  • 响应示例 状态码: 200 OK { "id" : "3bca29b5-419a-409d-a8d1-d892aa12bf53", "type" : "lines,object_comparison", "status" : "SUC CES SFUL", "start_time" : "2024-04-07T10:00:01Z", "end_time" : "2024-04-07T10:00:09Z", "job_name" : "DRS-7754" } 状态码: 400 Bad Request { "error_code" : "DRS.10000001", "error_msg" : "Failed." }
  • URI GET /v5/{project_id}/jobs/{job_id}/health-compare-jobs/{compare_job_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 compare_job_id 是 String 对比任务ID。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 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 枚举值: en-us zh-cn
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 对比任务ID。 type String 对比类型: object_comparison:对象对比。 lines:行对比。 account:用户对比。 start_time String 开始时间,UTC时间,例如:2024-04-03T08:00:01Z。 end_time String 结束时间,UTC时间,例如:2024-04-03T08:00:01Z。 status String 对比任务的状态。取值: RUNNING:运行中。 WAITING_FOR_RUNNING:等待启动中。 SUCCESSFUL:完成。 FAILED:失败。 CANCELLED:已取消。 TIMEOUT_INTERRUPT:超时中断。 FULL_DOING:全量校验中。 INCRE_DOING:增量校验中。 job_name String 任务名称。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 最小长度:12 最大长度:12 error_msg String 错误描述。 最小长度:1 最大长度:512
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 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 枚举值: en-us zh-cn 表3 请求Body参数 参数 是否必选 参数类型 描述 action 是 String 对比策略开关。 open closed period 否 String 对比策略周期,action为open时必填。 每周对比:格式示例:“* * 1,3,5” ,其中“1,3,5”对应星期一、星期三、星期五,根据实际填写。 每天对比:固定填写“* * 1,2,3,4,5,6,7”。 按小时对比:固定填写“* * 1,2,3,4,5,6,7”。 begin_time 否 String 对比策略生效开始时间,action为open时必填,UTC时间,24小时制,时间格式HH:mm:ss,例如:00:00:00,表示UTC时间的00:00:00,北京时间(UTC+08:00)的08:00:00。 end_time 否 String 对比策略生效结束时间,action为open时必填,UTC时间,24小时制,时间格式HH:mm:ss,例如:04:00:00,表示UTC时间的04:00:00,北京时间(UTC+08:00)的12:00:00。 compare_type 否 Array of strings 对比类型列表,action为open时必填: object_comparison:对象对比。 lines:行对比。 account:用户对比。 compare_policy 否 String 对比策略: normal:普通对比。 manyToOne:多对一对比。 interval_hour 否 Integer 间隔时间,按小时对比时填写,表示每隔多久执行一次对比,单位是小时。
  • 请求示例 打开周期性对比,策略为每天对比,生效时间段为UTC时间的00:00:00到04:00:00,北京时间(UTC+08:00)08:00:00到12:00:00,对比类型为行数对比 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/jobs/163b98e8-6088-46c3-8b86-c18fea6jb502/compare-policy { "action" : "open", "begin_time" : "00:00:00", "compare_policy" : "normal", "compare_type" : [ "lines" ], "end_time" : "04:00:00", "period" : "* * 1,2,3,4,5,6,7" } 打开周期性对比,策略为每周周一、周三、周五对比,生效时间段为UTC时间的00:00:00到09:00:00,北京时间(UTC+08:00)08:00:00到17:00:00,对比类型为行数和对象对比 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/jobs/163b98e8-6088-46c3-8b86-c18fea6jb502/compare-policy { "action" : "open", "begin_time" : "00:00:00", "compare_type" : [ "lines", "object_comparison" ], "end_time" : "09:00:00", "period" : "* * 1,3,5" } 关闭周期性对比 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/jobs/163b98e8-6088-46c3-8b86-c18fea6jb502/compare-policy { "action" : "close" } 打开周期性对比,策略为按小时对比,生效时间段为UTC时间00:00:00到04:00:00,北京时间(UTC+08:00)08:00:00到12:00:00,间隔1小时对比一次,对比类型为行数和对象对比 https://{endpoint}/v5/5237e10fe9aa4ad5b16b6a5245248314/jobs/163b98e8-6088-46c3-8b86-c18fea6jb502/compare-policy { "action" : "open", "begin_time" : "00:00:00", "compare_policy" : "normal", "compare_type" : [ "lines", "object_comparison" ], "end_time" : "04:00:00", "period" : "* * 1,2,3,4,5,6,7", "interval_hour" : 1 }
  • 请求示例 导出对象对比任务结果文件 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/f8688cfa-4e05-406f-a2e6-37a773cjb20ycompare/result/file { "compare_type" : "objects_comparison" } 导出内容对比任务结果文件 https://{endpoint}/v3/054ba152d480d55b2f5dc0069e7ddef0/jobs/f8688cfa-4e05-406f-a2e6-37a773cjb20ycompare/result/file { "compare_type" : "contents", "compare_job_id" : "9406224c-8063-436a-8fe2-796d87f054dc" }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 指定类型为application/json。 缺省值:application/json X-Auth-Token 是 String 从IAM服务获取的用户Token。 X-Language 否 String 请求语言类型。 缺省值:en-us 枚举值: en-us zh-cn Region 是 String 区域ID,例如:cn-north-4。 表3 请求Body参数 参数 是否必选 参数类型 描述 compare_type 是 String 对比任务类型: contents: 内容对比。 lines:行数对比。 random:抽样对比。 objects_comparison:对象对比。 compare_job_id 否 String 对比任务的ID,内容对比、抽样对比、行数对比场景必填。 time_zone 否 String 时区,如GMT+08:00,用于生成当前时间标识,拼接到文件名称中。
  • 响应示例 状态码: 200 OK { "count" : 1, "compare_detail" : [ { "source_db_value" : "tb1", "target_db_value" : "tb1", "source_db_name" : "db1", "target_db_name" : "db1", "status" : 2 } ] } 状态码: 400 Bad Request { "error_code" : "DRS.10000010", "error_msg" : "Task not found. Check the task ID." }
  • URI GET /v3/{project_id}/jobs/{job_id}/object/compare/{compare_type} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 租户在某一Region下的Project ID。 获取方法请参见获取项目ID。 job_id 是 String 任务ID。 compare_type 是 String 对象类型: DB:数据库。 TABLE:表。 VIEW:视图。 EVENT:事件。 ROUTINE:存储过程和函数。 INDEX:索引。 TRIGGER:触发器。 SYNONYM:同义词。 FUNCTION:函数。 PROCEDURE:存储过程。 TYPE:自定义类型。 RULE:规则。 DEFAULT_TYPE:缺省值。 PLAN_GUIDE:执行计划。 CONSTRAINT:约束。 FILE_GROUP:文件组。 PARTITION_FUNCTION:分区函数。 PARTITION_SCHEME:分区方案。 TABLE_COLLATION:表的排序规则。 表2 Query参数 参数 是否必选 参数类型 描述 compare_job_id 否 String 对比任务ID,不填写时默认返回最新的对比任务信息。 limit 否 Integer 每页显示的条目数量,最大值1000。 最小值:1 最大值:1000 缺省值:1000 offset 否 Integer 偏移量,表示从此偏移量开始查询, offset大于等于0。 缺省值:0
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 对比数量。 compare_detail Array of objects 对象级对比详情。 详情请参见表5。 表5 compare_detail字段数据结构说明 参数 参数类型 描述 source_db_name String 源库名称。 target_db_name String 目标库名称。 source_db_value String 在源库的值。 target_db_value String 在目标库的值。 status Integer 对比结果,0为不一致,2为一致,3为未完成。 error_message String 错误信息。
共100000条