华为云用户手册

  • 创建集群时配置数据连接 进入购买 MRS 集群页面。 在购买集群页面,选择“自定义购买”。 根据不同的外置数据连接场景,进行相关配置。其他参数请参考购买自定义集群进行配置并创建集群。 配置RDS数据连接相关操作请参考创建集群时配置RDS数据连接相关操作进行配置。 针对MRS 3.3.0-LTS版本,配置LakeFormation数据连接相关操作请参考创建集群时配置LakeFormation数据连接相关操作进行配置。
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 stop 是 stop object 集群停止操作,定义集群停止标识,请参见stop参数说明 表4 stop 参数 是否必选 参数类型 描述 stopMode 是 String 关机类型: IMMEDIATELY:立即关机。 GRACEFULLY:优雅关机。 枚举值: IMMEDIATELY GRACEFULLY delayTime 否 Integer 关机时延,仅在stopMode为“GRACEFULLY”生效,单位:秒。该值为-1时,表示等待所有作业完成,并停止接受新作业。该值为大于0的任意值表示等待该时长后关机,并停止接受新作业。
  • JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.streamName", "value": "cdm" }, { "name": "fromJobConfig.disConsumerStrategy", "value": "FROM_LAST_STOP" }, { "name": "fromJobConfig.isPermanency", "value": "true" }, { "name": "fromJobConfig.maxPollRecords", "value": "100" }, { "name": "fromJobConfig.shardId", "value": "0" }, { "name": "fromJobConfig.dataFormat", "value": "BINARY" }, { "name": "fromJobConfig.separator", "value": "," } ], "name": "fromJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 fromJobConfig.streamName 是 String DIS的通道名。 fromJobConfig.disConsumerStrategy 是 枚举 设置从DIS拉取数据时的初始偏移量: LATEST:最大偏移量,即最新的数据。 FROM_LAST_STOP:从上次停止处继续拉取。 EARLIEST:最小偏移量,即最早的数据。 fromJobConfig.isPermanency 是 Boolean 是否永久运行。 fromJobConfig.maxPollRecords 否 String 每次向DIS请求数据限制最大请求记录数。 fromJobConfig.shardId 是 String DIS分区ID,该参数支持输入多个分区ID,使用“,”分隔。 fromJobConfig.dataFormat 是 枚举 解析数据时使用的格式: BINARY:适用于文件迁移场景,不解析数据内容原样传输。 CS V:以CSV格式解析源数据。 fromJobConfig.separator 否 String 字段分隔符。 fromJobConfig.appName 否 String 用户数据消费程序的唯一标识符。
  • 终端节点 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同,您可以从地区和终端节点中查询所有服务的终端节点。 云数据迁移 服务的终端节点如表1所示,请您根据业务需要选择对应区域的终端节点。 表1 CDM 数据集成Endpoint 区 域名 称 区域ID 终端节点(Endpoint) 协议类型 华北-北京一 cn-north-1 cdm.cn-north-1.myhuaweicloud.com HTTPS 华北-北京二 cn-north-2 cdm.cn-north-2.myhuaweicloud.com HTTPS 华北-北京四 cn-north-4 cdm.cn-north-4.myhuaweicloud.com HTTPS 华北-乌兰察布一 cn-north-9 cdm.cn-north-9.myhuaweicloud.com HTTPS 华东-上海一 cn-east-3 cdm.cn-east-3.myhuaweicloud.com HTTPS 华东-上海二 cn-east-2 cdm.cn-east-2.myhuaweicloud.com HTTPS 华南-广州 cn-south-1 cdm.cn-south-1.myhuaweicloud.com HTTPS 西南-贵阳一 cn-southwest-2 cdm.cn-southwest-2.myhuaweicloud.com HTTPS 父主题: 使用前必读
  • JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.index", "value": "cdm" }, { "name": "fromJobConfig.type", "value": "es" }, { "name": "fromJobConfig.columnList", "value": "a1:numeric&s1:string" }, { "name": "fromJobConfig.splitNestedField", "value": "true" }, { "name": "fromJobConfig.queryString", "value": "last_name:Smith" } ], "name": "fromJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 fromJobConfig.index 是 String 抽取数据的索引,类似关系数据库中的数据库名称。 fromJobConfig.type 是 String 抽取数据的类型,类似关系数据库中的表名。 fromJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分隔,例如:“id&gid&name”。 fromJobConfig.splitNestedField 否 Boolean 选择是否将nested字段的json内容拆分,例如:将“a:{ b:{ c:1, d:{ e:2, f:3 } } }” 拆成三个字段“a.b.c”、“a.b.d.e”、“a.b.d.f”。 fromJobConfig.queryString 否 String 使用Elasticsearch的查询字符串(query string)对源数据进行过滤,CDM只迁移满足过滤条件的数据。
  • 响应示例 状态码: 200 ok { "publicEndpoint" : "49.xx.xx.10", "instances" : [ { "flavor" : { "id" : "fb8fe666-6734-4b11-bc6c-43d11db3c745" }, "volume" : { "size" : "100", "type" : "LOCAL_DISK" }, "name" : "cdm-c018", "id" : "635dce67-3df8-4756-b4c7-90e45e687367", "isFrozen" : "0", "type" : "cdm", "actions" : "REBOOTING", "config_status" : "In-Sync", "status" : "200" } ], "created" : "2018-09-05T08:38:25", "statusDetail" : "Normal", "actionProgress" : { }, "name" : "cdm-c018", "id" : "bae65496-643e-47ca-84af-948672de7eeb", "isFrozen" : "0", "actions" : "REBOOTING", "updated" : "2018-09-05T08:38:25", "status" : "200" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 publicEndpoint String 集群绑定的EIP instances Array of ClusterDetailInstance objects 集群的节点信息,请参见instances参数说明 security_group_id String 安全组id subnet_id String 子网id vpc_id String 虚拟私有云ID customerConfig CustomerConfig object 用户配置信息 datastore Datastore object cdm信息 isAutoOff Boolean 自动关机 publicEndpointDomainName String 集群绑定的EIP域名 bakExpectedStartTime String 开始时间 bakKeepDay Integer 保留时间 maintainWindow maintainWindow object 维护窗口 recentEvent Integer 事件数 flavorName String 规格名称 azName String az名称 endpointDomainName String 对端域名 publicEndpointStatus publicEndpointStatus object EIP状态信息 isScheduleBootOff Boolean 选择是否启用定时开关机功能。定时开关机功能和自动关机功能不可同时开启 namespace String 命名空间 eipId String 弹性ip id failedReasons FailedReasons object 失败原因。集群处于正常状态时不返回。 dbuser String 数据库用户 links Array of ClusterLinks objects 集群连接信息 clusterMode String 集群模式:sharding(分片集群) task ClusterTask object 任务信息 created String 集群创建时间,格式为ISO8601:YYYY-MM-DDThh:mm:ssZ statusDetail String 集群状态描述:Normal(正常) config_status String 集群配置状态: In-Sync:配置已同步。 Applying:配置中。 Sync-Failure:配置失败 actionProgress ActionProgress object 集群操作进度,任务信息,由key、value组成。key值为正在进行的任务,value值为正在进行任务的进度。示例如 "action_progress":{"SNAPSHOTTING":"16%"} name String 集群名称 id String 集群ID isFrozen String 集群是否冻结:0:否1:是 actions Array of strings 集群配置状态:In-Sync:配置已同步。Applying:配置中。Sync-Failure:配置失败 updated String 集群更新时间,格式为 ISO8601:YYYY-MM-DDThh:mm:ssZ status String 集群状态: 100:创建中 200:正常 300:失败 303:创建失败 800:冻结 900:已关机 910:正在关机 920:正在开机 表4 ClusterDetailInstance 参数 参数类型 描述 flavor flavor object 节点的虚拟机规格,请参见flavor参数说明(查询集群列表时返回值为null)。 volume volume object 节点的磁盘信息,请参见volume参数说明(查询集群列表时返回值为null)。 status String 节点状态: 100:创建中。 200:正常。 300:失败。 303:创建失败。 400:已删除。 800:冻结。 actions Array of strings 节点操作状态列表: REBOOTING:重启中。 RESTORING:恢复中。 REBOOT_FAILURE:重启失败。 type String 节点类型,只支持一种类型“cdm”。 id String 节点的虚拟机ID。 name String 节点的虚拟机名称。 isFrozen String 节点是否冻结:0:否。1:是。 components String 组件 config_status String 节点配置状态(查询集群列表时为null): In-Sync:配置已同步。 Applying:配置中。 Sync-Failure:配置失败。 role String 实例角色 group String 分组 links Array of ClusterLinks objects 链接信息(查询集群列表时返回值为null) paramsGroupId String 组件分组id publicIp String 公网ip manageIp String 管理ip trafficIp String 流量ip shard_id String 分片id manage_fix_ip String 管理修复ip private_ip String 私有ip internal_ip String 内部ip resource Array of Resource objects 资源信息(查询集群列表时返回值为null) 表5 flavor 参数 参数类型 描述 id String 节点虚拟机的规格ID。 links Array of ClusterLinks objects 链接信息 表6 volume 参数 参数类型 描述 type String 节点的磁盘类型,只支持本地磁盘 size Long 节点磁盘大小,单位G。 表7 Resource 参数 参数类型 描述 resource_id String 资源id resource_type String 资源类型:server(服务器) 表8 CustomerConfig 参数 参数类型 描述 failureRemind String 失败提醒。 clusterName String 集群类型。 serviceProvider String 服务提供 localDisk String 是否本地磁盘。 ssl String 是否使用ssl。 createFrom String 创建来源 resourceId String 资源ID flavorType String 规格类型 workSpaceId String 工作空间ID trial String 适用 表9 Datastore 参数 参数类型 描述 type String 类型,一般为cdm。 version String 集群版本。 表10 maintainWindow 参数 参数类型 描述 day String 周几 startTime String 开始时间。 endTime String 结束时间。 表11 publicEndpointStatus 参数 参数类型 描述 status String 状态 errorMessage String 错误信息 表12 FailedReasons 参数 参数类型 描述 CREATE_FAILED CREATE_FAILED object 集群创建失败原因。 表13 CREATE_FAILED 参数 参数类型 描述 errorCode String 错误码 errorMsg String 失败原因 表14 ClusterLinks 参数 参数类型 描述 rel String 关系 href String 链接地址 表15 ClusterTask 参数 参数类型 描述 description String 任务描述 id String 任务id name String 任务名称 表16 ActionProgress 参数 参数类型 描述 CREATING String 创建集群进度,例如:29% GROWING String 扩容集群进度,例如:29% RESTORING String 恢复集群进度,例如:29% SNAPSHOTTING String 集群快照进度,例如:29% REPAIRING String 修复集群进度,例如:29%
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.table 是 String 写入数据的表名,例如:“TBL_EXAMPLE”。 toJobConfig.storageType 是 枚举 将数据写入到HBase表中的方法: PUTLIST:put list方式写入。 toJobConfig.columns 否 String 需要抽取数据的列,列号之间使用“&”分割,列族与列之间用“:”分隔,例如:“cf1:c1&cf2:c2”。 toJobConfig.rowKeyColumn 是 String 作为rowkey的列,列号之间使用“&”分割,列族与列之间用“:”分隔,例如:“cf1:c1&cf2:c2”。 toJobConfig.isOverride 否 Boolean 使用BULKLOAD方式导入数据时,是否清空数据,例如:“true”。 toJobConfig.delimiter 否 String 当选取多个列做rowkey时,连接多列的分隔符,例如:“|”。 toJobConfig.isRowkeyRedundancy 否 Boolean 是否将选做Rowkey的数据同时写入HBase的列。 toJobConfig.algorithm 否 枚举 创建新HBase表时采用的压缩算法,支持SNAPPY和GZ算法,默认为“NONE”。 toJobConfig.writeToWAL 否 Boolean 选择是否开启HBase的预写日志机制(WAL,Write Ahead Log)。 是:开启后如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 否:关闭时能提升写入性能,但如果HBase服务器宕机可能会造成数据丢失。 toJobConfig.transType 否 Boolean true:源端数据库中的Short、Int、Long、Float、Double、Decimal类型列的数据,会转换为Byte[]数组(二进制)写入HBase,其他类型的按字符串写入。如果这几种类型中,有合并做rowkey的,就依然当字符串写入。 该功能作用是:降低存储占用空间,存储更高效;特定场景下rowkey分布更均匀。 false:源端数据库中所有类型的数据,都会按照字符串写入HBase。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.table", "value": "rf_to" }, { "name": "toJobConfig.storageType", "value": "PUTLIST" }, { "name": "toJobConfig.columns", "value": "AA:AA&BB:BB&CC:CC&DD:DD" }, { "name": "toJobConfig.rowKeyColumn", "value": "AA:AA" }, { "name": "toJobConfig.isOverride", "value": "false" }, { "name": "toJobConfig.isRowkeyRedundancy", "value": "false" }, { "name": "toJobConfig.algorithm", "value": "NONE" }, { "name": "toJobConfig.writeToWAL", "value": "true" }, { "name": "toJobConfig.transType", "value": "false" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.bucketName 是 String OBS的桶名,例如“cdm”。 toJobConfig.outputDirectory 是 String 数据写入路径,例如“data_dir”。 toJobConfig.outputFormat 是 枚举 写入数据时所用的文件格式(二进制除外),支持以下文件格式: CSV_FILE:按照CSV格式写入数据。 BINARY_FILE:二进制格式,不解析文件内容直接传输,CDM会原样写入文件,不改变原始文件格式。 当选择“BINARY_FILE”时,源端也必须为文件系统。 toJobConfig.fieldSeparator 否 String 列分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“,”。 toJobConfig.lineSeparator 否 String 行分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“\r\n”。 toJobConfig.writeFileSize 否 String 源端为数据库时该参数有效,支持按大小分成多个文件存储,避免导出的文件过大,单位为MB。 toJobConfig.duplicateFileOpType 否 枚举 重复文件处理方式,只有文件名和文件大小都相同才会判定为重复文件。重复文件支持以下处理方式: REPLACE:替换重复文件。 SKIP:跳过重复文件。 ABANDON:发现重复文件停止任务。 toJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.encryption 否 枚举 选择是否对上传的数据进行加密,以及加密方式: NONE:不加密,直接写入数据。 KMS:使用 数据加密 服务中的KMS进行加密。如果启用KMS加密则无法进行数据的MD5校验。 toJobConfig.kmsID 否 String 上传时加密使用的密钥。需先在密钥管理服务中创建密钥。 toJobConfig.projectID 否 String KMS密钥所属的项目ID。 toJobConfig.writeToTempFile 否 Boolean 将二进制文件先写入到临时文件(临时文件以“.tmp”作为后缀),迁移成功后,再进行rename或move操作,在目的端恢复文件。 toJobConfig.validateMD5 否 Boolean 选择是否校验MD5值,不能与KMS加密同时使用。使用二进制格式传输文件时,才能校验MD5值。 计算源文件的MD5值,并与OBS返回的MD5值进行校验。如果源端已经存在MD5文件,则直接读取源端的MD5文件与OBS返回的MD5值进行校验。 toJobConfig.recordMD5Result 否 Boolean 当选择校验MD5值时,这里配置是否记录校验结果。 toJobConfig.recordMD5Link 否 String 可以指定任意一个OBS连接,将MD5校验结果写入该连接的桶。 toJobConfig.recordMD5Bucket 否 String 写入MD5校验结果的OBS桶。 toJobConfig.recordMD5Directory 否 String 写入MD5校验结果的目录。 toJobConfig.encodeType 否 String 编码类型,例如:“UTF_8”或“GBK”。 toJobConfig.markerFile 否 String 当作业执行成功时,会在写入目录下生成一个标识文件,文件名由用户指定,不指定时默认关闭该功能。 toJobConfig.copyContentType 否 Boolean “toJobConfig.outputFormat”(文件格式)为“BINARY_FILE”,且源端、目的端都为对象存储时,才有该参数。 选择“是”后,迁移对象文件时会复制源文件的Content-Type属性,主要用于静态网站的迁移场景。 归档存储的桶不支持设置Content-Type属性,所以如果开启了该参数,目的端选择写入的桶时,必须选择非归档存储的桶。 toJobConfig.quoteChar 否 Boolean “toJobConfig.outputFormat”(文件格式)为“CSV_FILE”,才有该参数,用于将数据库的表迁移到文件系统的场景。 选择“是”时,如果源端数据表中的某一个字段内容包含字段分隔符或换行符,写入目的端时CDM会使用双引号(")作为包围符将该字段内容括起来,作为一个整体存储,避免其中的字段分隔符误将一个字段分隔成两个,或者换行符误将字段换行。例如:数据库中某字段为hello,world,使用包围符后,导出到CSV文件的时候数据为"hello,world"。 toJobConfig.firstRowAsHeader 否 Boolean “toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时才有该参数。在迁移表到CSV文件时,CDM默认是不迁移表的标题行,如果该参数选择“是”,CDM在才会将表的标题行数据写入文件。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.bucketName", "value": "cdm" }, { "name": "toJobConfig.outputDirectory", "value": "/obsfrom/advance/" }, { "name": "toJobConfig.outputFormat", "value": "CSV_FILE" }, { "name": "toJobConfig.fieldSeparator", "value": "," }, { "name": "toJobConfig.writeToTempFile", "value": "false" }, { "name": "toJobConfig.validateMD5", "value": "false" }, { "name": "toJobConfig.recordMD5Result", "value": "false" }, { "name": "toJobConfig.encodeType", "value": "UTF-8" }, { "name": "toJobConfig.markerFile", "value": "finish.txt" }, { "name": "toJobConfig.duplicateFileOpType", "value": "REPLACE" }, { "name": "toJobConfig.columnList", "value": "1&2" }, { "name": "toJobConfig.quoteChar", "value": "false" }, { "name": "toJobConfig.encryption", "value": "NONE" }, { "name": "toJobConfig.copyContentType", "value": "false" } ], "name": "toJobConfig" } ] }
  • 响应示例 状态码: 200 ok { "validation-result" : [ { }, { }, { } ] } 状态码: 400 报错错误码 { "code" : "Cdm.0095", "errCode" : "Cdm.00095", "message" : "A job with the name obs-obs does not exist.", "externalMessage" : "A job with the name obs-obs does not exist." }
  • 响应参数 状态码: 200 表9 响应Body参数 参数 参数类型 描述 validation-result Array of JobValidationResult objects 校验结果:如果修改失败,返回失败原因。如果修改成功,返回空列表 表10 JobValidationResult 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING 状态码: 400 表11 响应Body参数 参数 参数类型 描述 code String 返回编码 errCode String 错误码 message String 报错信息 externalMessage String 附加信息
  • 请求示例 修改一个源端为Elasticsearch数据连接,目的端为DIS数据连接,作业名为es_css的表数据迁移作业。 PUT /v1.1/1551c7f6c808414d8e9f3c514a170f2e/cluster/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/job/es_css { "jobs" : [ { "job_type" : "NORMAL_JOB", "from-connector-name" : "elasticsearch-connector", "to-config-values" : { "configs" : [ { "inputs" : [ { "name" : "toJobConfig.streamName", "value" : "dis-lkGm" }, { "name" : "toJobConfig.separator", "value" : "|" }, { "name" : "toJobConfig.columnList", "value" : "1&2&3" } ], "name" : "toJobConfig" } ] }, "to-link-name" : "dis", "driver-config-values" : { "configs" : [ { "inputs" : [ { "name" : "throttlingConfig.numExtractors", "value" : "1" }, { "name" : "throttlingConfig.submitToCluster", "value" : "false" }, { "name" : "throttlingConfig.numLoaders", "value" : "1" }, { "name" : "throttlingConfig.recordDirtyData", "value" : "false" } ], "name" : "throttlingConfig" }, { "inputs" : [ ], "name" : "jarConfig" }, { "inputs" : [ { "name" : "schedulerConfig.isSchedulerJob", "value" : "false" }, { "name" : "schedulerConfig.disposableType", "value" : "NONE" } ], "name" : "schedulerConfig" }, { "inputs" : [ ], "name" : "transformConfig" }, { "inputs" : [ { "name" : "retryJobConfig.retryJobType", "value" : "NONE" } ], "name" : "retryJobConfig" } ] }, "from-config-values" : { "configs" : [ { "inputs" : [ { "name" : "fromJobConfig.index", "value" : "52est" }, { "name" : "fromJobConfig.type", "value" : "est_array" }, { "name" : "fromJobConfig.columnList", "value" : "array_f1_int:long&array_f2_text:string&array_f3_object:nested" }, { "name" : "fromJobConfig.splitNestedField", "value" : "false" } ], "name" : "fromJobConfig" } ] }, "to-connector-name" : "dis-connector", "name" : "es_css", "from-link-name" : "css" } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 jobs 是 Array of Job objects 作业列表,请参见jobs数据结构说明。 表4 Job 参数 是否必选 参数类型 描述 job_type 否 String 作业类型: NORMAL_JOB:表/文件迁移。 BATCH_JOB:整库迁移。 SCENARIO_JOB:场景迁移。 枚举值: NORMAL_JOB BATCH_JOB SCENARIO_JOB from-connector-name 是 String 源端连接类型,对应的连接参数如下: generic-jdbc-connector:关系数据库连接。 obs-connector:OBS连接。 hdfs-connector:HDFS连接。 hbase-connector:HBase连接、CloudTable连接。 hive-connector:Hive连接。 ftp-connector/sftp-connector:FTP/SFTP连接。 mongodb-connector:MongoDB连接。 redis-connector:Redis/DCS连接。 kafka-connector:Kafka连接。 dis-connector:DIS连接。 elasticsearch-connector:Elasticsearch/ 云搜索服务 连接。 dli-connector: DLI 连接。 http-connector:HTTP/HTTPS连接,该连接暂无连接参数。 dms-kafka-connector:DMSKafka连接 to-config-values 是 ConfigValues object 目的连接参数配置。根据不同目的端有不同的参数配置,具体可参考目的端作业参数说明下相应的目的端参数配置。 to-link-name 是 String 目的端连接名称,即为通过“创建连接”接口创建的连接对应的连接名。 driver-config-values 是 ConfigValues object 作业任务参数配置。例如配置作业失败重试、抽取并发数,具体可参考作业任务参数说明。 from-config-values 是 ConfigValues object 源连接参数配置。根据不同源端有不同的参数配置,具体可参考源端作业参数说明下相应的源端参数配置。 to-connector-name 否 String 目的端连接类型,对应的连接参数如下: generic-jdbc-connector:关系数据库连接。 obs-connector:OBS连接。 hdfs-connector:HDFS连接。 hbase-connector:HBase连接、CloudTable连接。 hive-connector:Hive连接。 ftp-connector/sftp-connector:FTP/SFTP连接。 mongodb-connector:MongoDB连接。 redis-connector:Redis/DCS连接。 kafka-connector:Kafka连接。 dis-connector:DIS连接。 elasticsearch-connector:Elasticsearch/ 云搜索 服务连接。 dli-connector:DLI连接。 http-connector:HTTP/HTTPS连接,该连接暂无连接参数。 dms-kafka-connector:DMSKafka连接 name 否 String 作业名称,长度在1到240个字符之间 最小长度:1 最大长度:240 from-link-name 否 String 源连接名称,即为通过“创建连接”接口创建的连接对应的连接名。 creation-user 否 String 创建作业的用户。由系统生成,用户无需填写。 creation-date 否 Long 作业创建的时间,单位:毫秒。由系统生成,用户无需填写。 update-date 否 Long 作业最后更新的时间,单位:毫秒。由系统生成,用户无需填写。 is_incre_job 否 Boolean 是否是增量作业。已废弃 flag 否 Integer 是否是定时作业标记,如果是定时作业则为1,否则为0。由系统根据定时任务配置生成,用户无需填写。 files_read 否 Integer 已读文件数。由系统生成,用户无需填写。 update-user 否 String 最后更新作业的用户。由系统生成,用户无需填写。 external_id 否 String 具体执行的作业id,如果是本地作业,则一般为"job_local1202051771_0002"形式,如果是DLI作业,则为DLI作业ID,比如"12345"。由系统生成,用户无需填写。 type 否 String 与job_type一致,作业类型: NORMAL_JOB:表/文件迁移。 BATCH_JOB:整库迁移。 SCENARIO_JOB:场景迁移。 execute_start_date 否 Long 最近一次执行任务开始时间,单位:毫秒。由系统生成,用户无需填写。 delete_rows 否 Integer 增量作业删除行数,已废弃。 enabled 否 Boolean 是否激活连接。由系统生成,用户无需填写。 bytes_written 否 Long 作业写入的字节。由系统生成,用户无需填写。 id 否 Integer 作业ID。由系统生成,用户无需填写。 is_use_sql 否 Boolean 用户是否使用sql。由系统根据源端抽取是否使用sql语句生成,用户无需填写 update_rows 否 Integer 增量作业更新行数,已废弃。 group_name 否 String 组名 bytes_read 否 Long 作业读取的字节。由系统生成,用户无需填写。 execute_update_date 否 Long 最近一次执行任务更新时间,单位:毫秒。由系统生成,用户无需填写。 write_rows 否 Integer 增量作业写入行数,已废弃。 rows_written 否 Integer 作业写入的行数。由系统生成,用户无需填写。 rows_read 否 Long 作业读取的行数。由系统生成,用户无需填写。 files_written 否 Integer 写入文件数。由系统生成,用户无需填写。 is_incrementing 否 Boolean 是否是增量作业,同is_incre_job,已废弃。 execute_create_date 否 Long 最近一次执行任务创建时间,单位:毫秒。由系统生成,用户无需填写。 status 否 String 作业最后的执行状态: BOOTING:启动中。 RUNNING:运行中。 SUCCEEDED:成功。 FAILED:失败。 NEW:未被执行。 表5 ConfigValues 参数 是否必选 参数类型 描述 configs 是 Array of configs objects 源连接参数、目的连接参数和作业任务参数,它们的配置数据结构相同,其中“inputs”里的参数不一样,详细请参见configs数据结构说明 extended-configs 否 extended-configs object 扩展配置,请参见extended-configs参数说明。扩展配置暂不对外开放,用户无需填写。 表6 configs 参数 是否必选 参数类型 描述 inputs 是 Array of Input objects 输入参数列表,列表中的每个参数为“name,value”结构,请参考inputs数据结构参数说明。在“from-config-values”数据结构中,不同的源连接类型有不同的“inputs”参数列表,请参见源端作业参数说明下的章节。在“to-config-values”数据结构中,不同的目的连接类型有不同的“inputs”参数列表,请参见目的端作业参数说明下面的子章节。在“driver-config-values”数据结构中,“inputs”具体参数请参见作业任务参数说明。 name 是 String 配置名称:源端作业的配置名称为“fromJobConfig”。目的端作业的配置名称为“toJobConfig”,连接的配置名称固定为“linkConfig”。 id 否 Integer 配置ID,由系统生成,用户无需填写。 type 否 String 配置类型,由系统生成,用户无需填写。值为LINK或者JOB,如果是连接管理API,则为LINK;如果是作业管理API,则为JOB。 表7 Input 参数 是否必选 参数类型 描述 name 是 String 参数名: 如果是连接管理API,则以“linkConfig.”开头,对于不同连接类型有不同的参数,具体可参见连接参数说明下相应连接的参数说明。 如果是作业管理API,对于源端连接参数,则以“fromJobConfig.”开头,具体可参见源端作业参数说明下相应的源端参数说明;对于目的端连接参数,则以“toJobConfig.”开头,具体可参见目的端作业参数说明下相应的目的端参数说明;对于作业任务参数,请参见作业任务参数说明下相应的任务参数说明。 value 是 String 参数值,参数名对应的值,必须填写为字符串 type 否 String 值类型,如STRING、INTEGER,由系统设定,用户无需填写。 表8 extended-configs 参数 是否必选 参数类型 描述 name 否 String 扩展配置名称,暂不对外开放,用户无需填写。 value 否 String 扩展配置值,暂不对外开放,用户无需填写。
  • 概述 欢迎使用云数据迁移(Cloud Data Migration,以下简称CDM),该服务提供同构/异构数据源之间批量数据迁移服务,帮助您实现数据自由流动。支持自建和云上的文件系统,关系数据库, 数据仓库 ,NoSQL,大数据云服务,对象存储等数据源。 您可以使用本文档提供的API对云数据迁移服务进行操作,如创建集群、创建迁移任务等,支持的全部操作请参见API概览。 在调用云数据迁移服务API之前,请确保已经充分了解云数据迁移服务相关概念,详细信息请参见产品介绍。 父主题: 使用前必读
  • 响应示例 状态码: 200 ok { "submissions" : [ { "isIncrementing" : false, "job-name" : "obs2obs-03", "submission-id" : 13, "isStopingIncrement" : "", "last-update-date" : 1635909057030, "is-execute-auto" : false, "delete_rows" : 0, "write_rows" : 0, "isDeleteJob" : false, "creation-user" : "mwx5316849", "progress" : 0, "creation-date" : 1635909057030, "update_rows" : 0, "status" : "PENDING", "execute-date" : 1635909057030 } ] }
  • 响应参数 状态码: 200 表9 响应Body参数 参数 参数类型 描述 submissions Array of StartJobSubmission objects 作业运行信息,请参见submission参数说明 表10 StartJobSubmission 参数 参数类型 描述 isIncrementing Boolean 作业是否为增量迁移 delete_rows Integer 删除数据行数 update_rows Integer 更新数据行数 write_rows Integer 写入数据行数 submission-id Integer 作业提交id job-name String 作业名称 creation-user String 创建用户 creation-date Long 创建时间,单位:毫秒。 execute-date Long 执行时间 progress Float 作业进度,失败时为“-1”,其它情况为0~100 status String 作业状态: BOOTING:启动中。 FAILURE_ON_SUBMIT:提交失败。 RUNNING:运行中。 SUCCEEDED:成功。 FAILED:失败。 UNKNOWN:未知。 NEVER_EXECUTED:未被执行 isStopingIncrement String 是否停止增量迁移 is-execute-auto Boolean 是否定时执行作业 last-update-date Long 作业最后更新时间 last-udpate-user String 最后更新作业状态的用户 isDeleteJob Boolean 作业执行完成后是否删除
  • 请求示例 在CDM集群ID列表中随机选择一个集群,创建一个源端为elasticsearch,目的端为DIS,作业名为es_css的表迁移作业。 POST /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/job { "jobs" : [ { "job_type" : "NORMAL_JOB", "from-connector-name" : "elasticsearch-connector", "to-config-values" : { "configs" : [ { "inputs" : [ { "name" : "toJobConfig.streamName", "value" : "dis-lkGm" }, { "name" : "toJobConfig.separator", "value" : "|" }, { "name" : "toJobConfig.columnList", "value" : "1&2&3" } ], "name" : "toJobConfig" } ] }, "to-link-name" : "dis", "driver-config-values" : { "configs" : [ { "inputs" : [ { "name" : "throttlingConfig.numExtractors", "value" : "1" }, { "name" : "throttlingConfig.submitToCluster", "value" : "false" }, { "name" : "throttlingConfig.numLoaders", "value" : "1" }, { "name" : "throttlingConfig.recordDirtyData", "value" : "false" } ], "name" : "throttlingConfig" }, { "inputs" : [ ], "name" : "jarConfig" }, { "inputs" : [ { "name" : "schedulerConfig.isSchedulerJob", "value" : "false" }, { "name" : "schedulerConfig.disposableType", "value" : "NONE" } ], "name" : "schedulerConfig" }, { "inputs" : [ ], "name" : "transformConfig" }, { "inputs" : [ { "name" : "retryJobConfig.retryJobType", "value" : "NONE" } ], "name" : "retryJobConfig" } ] }, "from-config-values" : { "configs" : [ { "inputs" : [ { "name" : "fromJobConfig.index", "value" : "52est" }, { "name" : "fromJobConfig.type", "value" : "est_array" }, { "name" : "fromJobConfig.columnList", "value" : "array_f1_int:long&array_f2_text:string&array_f3_object:nested" }, { "name" : "fromJobConfig.splitNestedField", "value" : "false" } ], "name" : "fromJobConfig" } ] }, "to-connector-name" : "dis-connector", "name" : "es_css", "from-link-name" : "css" } ], "clusters" : [ "b0791496-e111-4e75-b7ca-9277aeab9297", "c2db1191-eb6c-464a-a0d3-b434e6c6df26", "c2db1191-eb6c-464a-a0d3-b434e6c6df26" ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 X-Language 是 String 请求语言。 表3 请求Body参数 参数 是否必选 参数类型 描述 jobs 是 Array of Job objects 作业列表,请参见jobs数据结构说明。 clusters 是 Array of strings CDM集群ID列表,系统会从里面随机选择一个开机状态的集群,在该集群中创建作业并执行作业。 表4 Job 参数 是否必选 参数类型 描述 job_type 否 String 作业类型: NORMAL_JOB:表/文件迁移。 BATCH_JOB:整库迁移。 SCENARIO_JOB:场景迁移。 枚举值: NORMAL_JOB BATCH_JOB SCENARIO_JOB from-connector-name 是 String 源端连接类型,对应的连接参数如下: generic-jdbc-connector:关系数据库连接。 obs-connector:OBS连接。 hdfs-connector:HDFS连接。 hbase-connector:HBase连接、CloudTable连接。 hive-connector:Hive连接。 ftp-connector/sftp-connector:FTP/SFTP连接。 mongodb-connector:MongoDB连接。 redis-connector:Redis/DCS连接。 kafka-connector:Kafka连接。 dis-connector:DIS连接。 elasticsearch-connector:Elasticsearch/云搜索服务连接。 dli-connector:DLI连接。 http-connector:HTTP/HTTPS连接,该连接暂无连接参数。 dms-kafka-connector:DMSKafka连接 to-config-values 是 ConfigValues object 目的连接参数配置。根据不同目的端有不同的参数配置,具体可参考目的端作业参数说明下相应的目的端参数配置。 to-link-name 是 String 目的端连接名称,即为通过“创建连接”接口创建的连接对应的连接名。 driver-config-values 是 ConfigValues object 作业任务参数配置。例如配置作业失败重试、抽取并发数,具体可参考作业任务参数说明。 from-config-values 是 ConfigValues object 源连接参数配置。根据不同源端有不同的参数配置,具体可参考源端作业参数说明下相应的源端参数配置。 to-connector-name 否 String 目的端连接类型,对应的连接参数如下: generic-jdbc-connector:关系数据库连接。 obs-connector:OBS连接。 hdfs-connector:HDFS连接。 hbase-connector:HBase连接、CloudTable连接。 hive-connector:Hive连接。 ftp-connector/sftp-connector:FTP/SFTP连接。 mongodb-connector:MongoDB连接。 redis-connector:Redis/DCS连接。 kafka-connector:Kafka连接。 dis-connector:DIS连接。 elasticsearch-connector:Elasticsearch/云搜索服务连接。 dli-connector:DLI连接。 http-connector:HTTP/HTTPS连接,该连接暂无连接参数。 dms-kafka-connector:DMSKafka连接 name 否 String 作业名称,长度在1到240个字符之间 最小长度:1 最大长度:240 from-link-name 否 String 源连接名称,即为通过“创建连接”接口创建的连接对应的连接名。 creation-user 否 String 创建作业的用户。由系统生成,用户无需填写。 creation-date 否 Long 作业创建的时间,单位:毫秒。由系统生成,用户无需填写。 update-date 否 Long 作业最后更新的时间,单位:毫秒。由系统生成,用户无需填写。 is_incre_job 否 Boolean 是否是增量作业。已废弃 flag 否 Integer 是否是定时作业标记,如果是定时作业则为1,否则为0。由系统根据定时任务配置生成,用户无需填写。 files_read 否 Integer 已读文件数。由系统生成,用户无需填写。 update-user 否 String 最后更新作业的用户。由系统生成,用户无需填写。 external_id 否 String 具体执行的作业id,如果是本地作业,则一般为"job_local1202051771_0002"形式,如果是DLI作业,则为DLI作业ID,比如"12345"。由系统生成,用户无需填写。 type 否 String 与job_type一致,作业类型: NORMAL_JOB:表/文件迁移。 BATCH_JOB:整库迁移。 SCENARIO_JOB:场景迁移。 execute_start_date 否 Long 最近一次执行任务开始时间,单位:毫秒。由系统生成,用户无需填写。 delete_rows 否 Integer 增量作业删除行数,已废弃。 enabled 否 Boolean 是否激活连接。由系统生成,用户无需填写。 bytes_written 否 Long 作业写入的字节。由系统生成,用户无需填写。 id 否 Integer 作业ID。由系统生成,用户无需填写。 is_use_sql 否 Boolean 用户是否使用sql。由系统根据源端抽取是否使用sql语句生成,用户无需填写 update_rows 否 Integer 增量作业更新行数,已废弃。 group_name 否 String 组名 bytes_read 否 Long 作业读取的字节。由系统生成,用户无需填写。 execute_update_date 否 Long 最近一次执行任务更新时间,单位:毫秒。由系统生成,用户无需填写。 write_rows 否 Integer 增量作业写入行数,已废弃。 rows_written 否 Integer 作业写入的行数。由系统生成,用户无需填写。 rows_read 否 Long 作业读取的行数。由系统生成,用户无需填写。 files_written 否 Integer 写入文件数。由系统生成,用户无需填写。 is_incrementing 否 Boolean 是否是增量作业,同is_incre_job,已废弃。 execute_create_date 否 Long 最近一次执行任务创建时间,单位:毫秒。由系统生成,用户无需填写。 status 否 String 作业最后的执行状态: BOOTING:启动中。 RUNNING:运行中。 SUCCEEDED:成功。 FAILED:失败。 NEW:未被执行。 表5 ConfigValues 参数 是否必选 参数类型 描述 configs 是 Array of configs objects 源连接参数、目的连接参数和作业任务参数,它们的配置数据结构相同,其中“inputs”里的参数不一样,详细请参见configs数据结构说明 extended-configs 否 extended-configs object 扩展配置,请参见extended-configs参数说明。扩展配置暂不对外开放,用户无需填写。 表6 configs 参数 是否必选 参数类型 描述 inputs 是 Array of Input objects 输入参数列表,列表中的每个参数为“name,value”结构,请参考inputs数据结构参数说明。在“from-config-values”数据结构中,不同的源连接类型有不同的“inputs”参数列表,请参见源端作业参数说明下的章节。在“to-config-values”数据结构中,不同的目的连接类型有不同的“inputs”参数列表,请参见目的端作业参数说明下面的子章节。在“driver-config-values”数据结构中,“inputs”具体参数请参见作业任务参数说明。 name 是 String 配置名称:源端作业的配置名称为“fromJobConfig”。目的端作业的配置名称为“toJobConfig”,连接的配置名称固定为“linkConfig”。 id 否 Integer 配置ID,由系统生成,用户无需填写。 type 否 String 配置类型,由系统生成,用户无需填写。值为LINK或者JOB,如果是连接管理API,则为LINK;如果是作业管理API,则为JOB。 表7 Input 参数 是否必选 参数类型 描述 name 是 String 参数名: 如果是连接管理API,则以“linkConfig.”开头,对于不同连接类型有不同的参数,具体可参见连接参数说明下相应连接的参数说明。 如果是作业管理API,对于源端连接参数,则以“fromJobConfig.”开头,具体可参见源端作业参数说明下相应的源端参数说明;对于目的端连接参数,则以“toJobConfig.”开头,具体可参见目的端作业参数说明下相应的目的端参数说明;对于作业任务参数,请参见作业任务参数说明下相应的任务参数说明。 value 是 String 参数值,参数名对应的值,必须填写为字符串 type 否 String 值类型,如STRING、INTEGER,由系统设定,用户无需填写。 表8 extended-configs 参数 是否必选 参数类型 描述 name 否 String 扩展配置名称,暂不对外开放,用户无需填写。 value 否 String 扩展配置值,暂不对外开放,用户无需填写。
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.region", "value": "Region" }, { "name": "linkConfig.endpoint", "value": "https://dis.cn-north-1.myhuaweiclouds.com" }, { "name": "linkConfig.ak", "value": "RSO6TTEZMJ6TTFBBAACE" }, { "name": "linkConfig.sk", "value": "Add password here" }, { "name": "linkConfig.projectId", "value": "11d4d5af17c84660bc90b6631327d7c7" } ], "name": "linkConfig" } ] }, "name": "dis_link", "connector-name": "dis-connector" } ] }
  • 连接参数 参数 是否必选 类型 说明 linkConfig.region 是 String DIS服务所属地域。 linkConfig.endpoint 是 String 待连接DIS的URL,URL格式为https://Endpoint。 linkConfig.ak 是 String DIS服务端的AK。 linkConfig.sk 是 String DIS服务端的SK。 linkConfig.projectId 是 String 项目ID,获取方法请参见项目ID和账号ID。
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.queue 是 String 写入数据的资源队列。 toJobConfig.database 是 String 写入数据到 数据湖探索 (DLI)的哪个数据库。 toJobConfig.table 是 String 写入数据的表名。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.shouldClearTable 否 Boolean 导入前是否清空资源队列的数据。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.queue", "value": "cdm" }, { "name": "toJobConfig.database", "value": "sqoop" }, { "name": "toJobConfig.table", "value": "est1" }, { "name": "toJobConfig.columnList", "value": "string_&int_&date_&double_&boolean_&short_×tamp_&long_&smallint_&bigint_" }, { "name": "toJobConfig.shouldClearTable", "value": "false" } ], "name": "toJobConfig" } ] }
  • 响应消息头 对应请求消息头,响应同样也有消息头,如“Content-type”。 表1 公共响应消息头 消息头名称 描述 是否必选 Content-Type 用于指明发送给接收者的实体正文的媒体类型。 类型:字符串。 默认值:application/json; charset=UTF-8 是 X-request-id 此字段携带请求ID号,以便任务跟踪。 类型:字符串。request_id-timestamp-hostname(request_id在服务器端生成UUID, timestamp为当前时间戳,hostname为处理当前接口的服务器名称)。 默认值:无。 否 X-ratelimit 此字段携带总计流控请求数。 类型:整型。 默认值:无。 否 X-ratelimit-used 此字段携带剩下请求数。 类型:整型。 默认值:无。 否 X-ratelimit-window 此字段携带流控单位。 类型:字符串。单位按照分钟、小时、天。 默认值:小时。 否 对于“获取用户Token”接口,返回如图1所示的消息头。 其中“x-subject-token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。 图1 获取用户Token响应消息头
  • 响应消息体 响应消息体通常以结构化格式返回,与响应消息头中Content-type对应,传递除响应消息头之外的内容。 对于“获取用户Token”接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "token": { "expires_at": "2019-02-13T06:52:13.855000Z", "methods": [ "password" ], "catalog": [ { "endpoints": [ { "region_id": "cn-north-4", ...... 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": "The format of message is error", "error_code": "AS.0001" } 其中,error_code表示错误码,error_msg表示错误描述信息,具体请参见错误码。
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.serverList", "value": "10.120.84.149:27017" }, { "name": "linkConfig.database", "value": "DB_name" }, { "name": "linkConfig.userName", "value": "username" }, { "name": "linkConfig.password", "value": "Add password here" } ], "name": "linkConfig" } ] }, "name": "mongo_link", "connector-name": "mongodb-connector" } ] }
  • 连接参数 参数 是否必选 类型 说明 linkConfig.serverList 是 String 服务器地址列表,格式如:“host1:port1;host2:port2”。 linkConfig.database 是 String MongoDB的数据库名称。 linkConfig.userName 是 String 连接MongoDB服务器的用户名。 linkConfig.password 是 String 连接MongoDB服务器的密码。
共100000条