华为云用户手册

  • 请求示例 在 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" ] }
  • 响应示例 状态码: 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 作业执行完成后是否删除
  • 请求参数 表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/D CS 连接。 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 扩展配置值,暂不对外开放,用户无需填写。
  • 连接参数 参数 是否必选 类型 说明 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。
  • 连接样例 { "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" } ] }
  • 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" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.queue 是 String 写入数据的资源队列。 toJobConfig.database 是 String 写入数据到 数据湖探索 (DLI)的哪个数据库。 toJobConfig.table 是 String 写入数据的表名。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.shouldClearTable 否 Boolean 导入前是否清空资源队列的数据。
  • 响应消息头 对应请求消息头,响应同样也有消息头,如“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服务器的密码。
  • JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.inputDirectory", "value": "http://10.114.196.186:8080/httpfrom/symbol.txt" }, { "name": "fromJobConfig.inputFormat", "value": "BINARY_FILE" }, { "name": "fromJobConfig.fromCompression", "value": "TARGZ" }, { "name": "fromJobConfig.compressedFileSuffix", "value": "*" }, { "name": "fromJobConfig.fileSeparator", "value": "|" } ], "name": "fromJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 fromJobConfig.inputDirectory 是 String 待抽取文件的URL。 用于读取一个公网HTTP/HTTPS URL的文件,包括第三方对象存储的公共读取场景和网盘场景。 fromJobConfig.inputFormat 是 枚举 传输数据时所用的文件格式,目前只支持二进制格式。 fromJobConfig.fromCompression 否 枚举 选择对应压缩格式的源文件进行迁移: NONE:表示传输所有格式的文件。 GZIP:表示只传输GZIP格式的文件。 ZIP:表示只传输ZIP格式的文件。 TAR.GZ:表示只传输TAR.GZ格式的文件。 fromJobConfig.compressedFileSuffix 否 String 需要解压缩的文件后缀名。当一批文件中以该值为后缀时,才会执行解压缩操作,否则则保持原样传输。当输入*或为空时,所有文件都会被解压。 fromJobConfig.fileSeparator 否 String 传输多个文件时,CDM使用这里配置的文件分隔符来区分各个文件,默认为|。 fromJobConfig.useQuery 否 Boolean 该参数设置为“true”时,上传到OBS的对象使用的对象名,为去掉query参数后的字符。 该参数设置为“false”时,上传到OBS的对象使用的对象名,包含query参数。 fromJobConfig.md5FileSuffix 否 String 校验CDM抽取的文件,是否与源文件一致。
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.openTSDBQuorum", "value": "opentsdb-sp8afz7bgbps5ur.cloudtable.com:4242" }, { "name": "linkConfig.securityMode", "value": "UNSAFE" } ], "name": "linkConfig" } ] }, "name": "opentsdb", "connector-name": "opentsdb-connector" } ] }
  • 连接参数 参数 是否必选 类型 说明 linkConfig.openTSDBQuorum 是 String OpenTSDB的ZooKeeper链接地址。 linkConfig.securityMode 是 String 选择安全或非安全模式。 选择安全模式时,需要输入项目ID、用户名、AK/SK。 linkConfig.user 否 String 访问CloudTable服务的用户名。 linkConfig.ak 否 String 访问CloudTable服务的AK。 linkConfig.sk 否 String 访问CloudTable服务的SK。 linkConfig.projectId 否 String CloudTable服务的项目ID。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 links Array of links objects 连接列表,请参见links数据结构说明 fromTo-unMapping String 表/文件迁移不支持哪些数据源迁移到哪些数据源 batchFromTo-mapping String 整库迁移支持哪些数据源迁移到哪些数据源 表4 links 参数 参数类型 描述 link-config-values link-config-values object 连接参数配置,请参见link-config-values参数说明 creation-user String 创建连接的用户 name String 连接名称 id Integer 连接ID creation-date Long 创建连接的时间 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连接 update-date Long 更新连接的时间 enabled Boolean 是否激活连接,默认为“true” update-user String 更新连接的用户 表5 link-config-values 参数 参数类型 描述 configs Array of configs objects 连接配置参数数据结构,请参见configs参数说明。 extended-configs extended-configs object 扩展配置,请参见extended-configs参数说明。 validators Array of strings 校验器 表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 值
  • 响应示例 状态码: 200 OK { "links" : [ { "link-config-values" : { "configs" : [ { "inputs" : [ { "name" : "linkConfig.server", "type" : "STRING", "value" : "100.94.8.163" }, { "name" : "linkConfig.port", "type" : "INTEGER", "value" : 22 }, { "name" : "linkConfig.username", "type" : "STRING", "value" : "root" }, { "name" : "linkConfig.password", "type" : "STRING", "value" : "Add password here" } ], "name" : "linkConfig" } ] }, "creation-user" : "cdm", "name" : "sftp_link", "creation-date" : 1516674482640, "connector-name" : "sftp-connector", "update-date" : 1516674476022, "enabled" : true, "update-user" : "cdm" } ] }
  • 支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。 “√”表示支持,“x”表示暂不支持。 CDM的支持自定义策略授权项如表1所示,表中的授权项作用域支持项目(Project)和企业项目(Enterprise Project)。 表1 API授权项列表 权限 对应API接口 授权项(Action) IAM项目(Project) 企业项目(Enterprise Project) 创建集群 POST /v1.1/{project_id}/clusters cdm:cluster:create √ × 查询集群列表 GET /v1.1/{project_id}/clusters cdm:cluster:list √ × 查询集群详情 GET /v1.1/{project_id}/clusters/{cluster_id} cdm:cluster:get √ × 重启集群 POST /v1.1/{project_id}/clusters/{cluster_id}/action cdm:cluster:operate √ × 修改集群配置 POST /v1.1/{project_id}/cluster/modify/{cluster_id} cdm:cluster:modify √ × 删除集群 DELETE /v1.1/{project_id}/clusters/{cluster_id} cdm:cluster:delete √ × 创建连接 POST /v1.1/{project_id}/clusters/{cluster_id}/cdm/link cdm:link:operate √ × 查询连接 GET /v1.1/{project_id}/clusters/{cluster_id}/cdm/link/{linkName} cdm:cluster:get √ × 修改连接 PUT /v1.1/{project_id}/clusters/{cluster_id}/cdm/link/{link_name} cdm:link:operate √ × 删除连接 DELETE /v1.1/{project_id}/clusters/{cluster_id}/cdm/link/{linkName} cdm:link:operate √ × 指定集群创建作业 POST /v1.1/{project_id}/clusters/{cluster_id}/cdm/job cdm:job:operate √ × 查询作业 GET /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName} cdm:cluster:get √ × 修改作业 PUT /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName} cdm:job:operate √ × 启动作业 PUT /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName}/start cdm:job:operate √ × 停止作业 PUT /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName}/stop cdm:job:operate √ × 查询作业状态 GET /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName}/status cdm:cluster:get √ × 查询作业执行历史 GET /v1.1/{project_id}/clusters/{cluster_id}/cdm/submissions cdm:cluster:get √ × 删除作业 DELETE /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{jobName} cdm:job:operate √ ×
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.ak", "value": "GRC2WR0IDC6NGROYLWU2" }, { "name": "linkConfig.sk", "value": "Add password here" }, { "name": "linkConfig.region", "value": "cn-north-1" }, { "name": "linkConfig.projectId", "value": "c48475ce8e174a7a9f775706a3d5ebe2" } ], "name": "linkConfig" } ] }, "name": "dli", "connector-name": "dli-connector" } ] }
  • 参数说明 HDFS作业参数说明 参数 是否必选 类型 说明 fromJobConfig.inputDirectory 是 String 待抽取数据的路径,例如:“/data_dir”。 fromJobConfig.inputFormat 是 枚举 传输数据时所用的文件格式,目前支持以下文件格式: CSV_FILE:CSV格式。 PARQUET_FILE:PARQUET格式。 BINARY_FILE:二进制格式。 当选择“BINARY_FILE”时,目的端也必须为文件系统。 fromJobConfig.columnList 否 String 需要抽取的列号,列号之间使用“&”分割,并由小到大排序,例如:“1&3&5”。 fromJobConfig.lineSeparator 否 String 文件中的换行符,默认自动识别"\\n"、"\\r"或"\\r\\n"。手动配置特殊字符,如空格回车需使用URL编码后的值。或通过编辑作业json方式配置,无需URL编码。 fromJobConfig.fieldSeparator 否 String 字段分隔符,当文件格式为“CSV_FILE”时此参数有效,默认值为:“,”。 fromJobConfig.quoteChar 否 Boolean 是否使用包围符,选择“true”时,包围符内的字段分隔符会被视为字符串值的一部分,目前CDM默认的包围符为:"。 fromJobConfig.regexSeparator 否 Boolean 是否使用正则表达式分割字段,当文件格式为“CSV_FILE”时此参数有效。 fromJobConfig.encodeType 否 String 编码类型,例如:“UTF_8”或“GBK”。 fromJobConfig.firstRowAsHeader 否 Boolean 是否默认首行为标题行,当文件格式为“CSV_FILE”时此参数有效。在迁移CSV文件到表时,CDM默认是全部写入,当该参数选择“true”时,CDM会将CSV文件的第一行数据作为标题行,不写入目的端的表。 fromJobConfig.fromCompression 否 枚举 压缩格式,表示选择只传输对应压缩格式的源文件。“NONE”表示传输所有格式的文件。 fromJobConfig.compressedFileSuffix 否 String 需要解压缩的文件后缀名。当一批文件中以该值为后缀时,才会执行解压缩操作,否则则保持原样传输。当输入*或为空时,所有文件都会被解压。 fromJobConfig.splitType 否 枚举 指定任务分片方式,选择按文件或文件大小进行分割。HDFS上的文件,如果在HDFS上已经分片,则HDFS每个分片视为一个文件。 FILE:按文件数量进行分片。例如有10个文件,并在任务参数中指定“throttlingConfig.numExtractors”(抽取并发数)为“5”,则每个分片2个文件。 SIZE:按文件大小分割。注意这里不会将文件做切分来实现均衡。例如:有10个文件,9个10M,1个200M,在并发任务数中指定“throttlingConfig.numExtractors”(抽取并发数)为“2”,则会分两个分片,一个处理9个10M的文件,一个处理1个200M的文件。 fromJobConfig.useMarkerFile 否 Boolean 选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“fromJobConfig.waitTime”(等待时间)参数中配置。 fromJobConfig.markerFile 否 String 启动作业的标识文件名。指定文件后,只有在源端路径下存在该文件的情况下才会运行任务,不指定时默认不启用该功能,例如:“ok.txt”。 fromJobConfig.fileSeparator 否 String “fromJobConfig.inputDirectory”(抽取文件的路径)参数中如果输入的是多个文件路径,CDM使用这里配置的文件分隔符来区分各个文件,默认为“|”。 fromJobConfig.filterType 否 枚举 选择过滤器类型: WILDCARD:输入通配符作为过滤文件,满足过滤条件的路径或文件会被传输。 TIME:时间过滤器,当文件的修改时间晚于输入的时间时,该文件才会被传输。 fromJobConfig.pathFilter 否 String 路径过滤器,过滤类型为通配符时配置,用于过滤文件目录,例如:“*input”。 fromJobConfig.fileFilter 否 String 文件过滤器,过滤类型为通配符时配置,用于过滤目录下的文件,支持配置多个文件,中间使用“,”分隔,例如:“*.csv,*.txt”。 fromJobConfig.startTime 否 String “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间大于等于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss,-90,DAY))}表示:只迁移最近90天内的文件。 fromJobConfig.endTime 否 String “过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间小于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”。 该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss))}表示:只迁移修改时间为当前时间以前的文件。 fromJobConfig.createSnapshot 否 Boolean 如果配置为“true”,CDM读取HDFS系统上的文件时,会先对待迁移的源目录创建快照(不允许对单个文件创建快照),然后CDM迁移快照中的数据。 需要HDFS系统的管理员权限才可以创建快照,CDM作业完成后,快照会被删除。 fromJobConfig.formats 否 数据结构 时间格式,当“fromJobConfig.inputFormat”(文件格式)为“CSV_FILE”(CSV格式),并且文件中有时间类型字段时,才需要输入,具体说明请参见fromJobConfig.formats参数说明。 fromJobConfig.decryption 否 枚举 “fromJobConfig.inputFormat”(文件格式)选择为“BINARY_FILE”(二进制格式)时才有该参数,选择是否对已加密的文件解密后再导出,以及解密方式: NONE:不解密,直接导出文件。 AES-256-GCM:使用AES-256-GCM(NoPadding)算法解密后再导出文件。 fromJobConfig.dek 否 String 数据解密密钥,密钥由长度64的十六进制数组成,且必须与加密时配置的“toJobConfig.dek”(导入时配置的 数据加密 密钥)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 fromJobConfig.iv 否 String 解密需要的初始化向量,初始化向量由长度32的十六进制数组成,且必须与加密时配置的“toJobConfig.iv”(导入时配置的初始化向量)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。
  • JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.inputDirectory", "value": "/hdfsfrom/from_hdfs_est.csv" }, { "name": "fromJobConfig.inputFormat", "value": "CSV_FILE" }, { "name": "fromJobConfig.columnList", "value": "1" }, { "name": "fromJobConfig.fieldSeparator", "value": "," }, { "name": "fromJobConfig.quoteChar", "value": "false" }, { "name": "fromJobConfig.regexSeparator", "value": "false" }, { "name": "fromJobConfig.firstRowAsHeader", "value": "false" }, { "name": "fromJobConfig.encodeType", "value": "UTF-8" }, { "name": "fromJobConfig.fromCompression", "value": "NONE" }, { "name": "fromJobConfig.compressedFileSuffix", "value": "*" }, { "name": "fromJobConfig.splitType", "value": "FILE" }, { "name": "fromJobConfig.useMarkerFile", "value": "false" }, { "name": "fromJobConfig.fileSeparator", "value": "|" }, { "name": "fromJobConfig.filterType", "value": "NONE" } ], "name": "fromJobConfig" } ] }
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.host", "value": "192.168.0.50:9200;192.168.0.62:9200" }, { "name": "linkConfig.safemode", "value": "true" }, { "name": "linkConfig.user", "value": "admin" }, { "name": "linkConfig.password", "value": "Add password here." }, { "name": "linkConfig.linkType", "value": " CSS " } ], "name": "linkConfig" } ], "extended-configs": { "name": "linkConfig.extendedFields", "value": "eyLodHRwc0FjY2VzcyI6InRydWUifQ==" } }, "name": "css-cdm-autotest-nodel", "connector-name": "elasticsearch-connector" } ] }
  • 连接参数 参数 是否必选 类型 说明 linkConfig.host 是 String 配置为Elasticsearch服务器的IP地址或 域名 ,包括端口号,格式为“ip:port”,多个地址之间使用分号(;)分隔,例如:192.168.0.1:9200;192.168.0.2:9200。 linkConfig.safemode 否 Boolean 当选择安全模式认证时,需要输入用户名、密码和选择是否https访问。 linkConfig.user 否 String 对于支持用户名密码鉴权的Elasticsearch,需要在创建连接时配置用户名和密码。 linkConfig.password 否 String 登录Elasticsearch的密码。 linkConfig.linkType 是 String 连接类型,用于区分连接的是Elasticsearch或云搜索服务。
  • 连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.storageType", "value": "OBS" }, { "name": "linkConfig.server", "value": "10.121.16.183" }, { "name": "linkConfig.port", "value": "443" }, { "name":"linkConfig.accessKey", "value": "RSO6TTEZMJ6TTFBBAACE" }, { "name":"linkConfig.securityKey", "value":"Add password here" } ], "name": "linkConfig" } ] }, "name": "obs_link", "connector-name": "obs-connector" } ] }
  • 连接参数 参数 是否必选 类型 说明 linkConfig.storageType 是 String 对象存储的类型。 linkConfig.server 是 String OBS服务器的终端节点(Endpoint)。 linkConfig.port 是 String 数据传输协议端口,https是443,http是80。 linkConfig.accessKey 是 String 访问标识(AK)。 linkConfig.securityKey 是 String 密钥(SK)。
  • 响应参数 状态码: 200 表10 响应Body参数 参数 参数类型 描述 name String 连接名称 validation-result Array of validationResult objects 校验结构:如果创建连接失败,返回失败原因,请参见validation-result参数说明。如果创建成功,返回空列表。 表11 validationResult 参数 参数类型 描述 linkConfig Array of validationLinkConfig objects 创建或更新连接校验结果,请参见linkConfig参数说明 表12 validationLinkConfig 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING 状态码: 400 表13 响应Body参数 参数 参数类型 描述 code String 返回编码 errCode String 错误码 message String 报错信息 externalMessage String 附加信息 状态码: 500 表14 响应Body参数 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING
  • 响应示例 状态码: 200 OK { "name" : "rdb_link", "validation-result" : [ { } ] } 状态码: 400 请求错误 { "code" : "Cdm.0315", "errCode" : "Cdm.0315", "message" : "Link name [ftp_link] already exist or created by other user.", "externalMessage" : "Link name [ftp_link] already exist or created by other user." } 状态码: 500 服务内部错误,具体返回错误码请参考错误码 { "validation-result" : [ { "linkConfig" : [ { "message" : "Can't connect to the database with given credentials: The authentication type 12 is not supported. Check that you have configured the pg_hba.conf file to include the client's IP address or subnet, and that it is using an authentication scheme supported by the driver.", "status" : "ERROR" } ] } ] }
  • 请求示例 创建一个名为mysql_link的数据连接。 POST /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/link { "links" : [ { "link-config-values" : { "configs" : [ { "inputs" : [ { "name" : "linkConfig.databaseType", "value" : "MYSQL" }, { "name" : "linkConfig.host", "value" : "100.94.8.163" }, { "name" : "linkConfig.port", "value" : "3306" }, { "name" : "linkConfig.database", "value" : "DB_name" }, { "name" : "linkConfig.username", "value" : "username" }, { "name" : "linkConfig.password", "value" : "DB_password" }, { "name" : "linkConfig.fetchSize", "value" : "100000" }, { "name" : "linkConfig.usingNative", "value" : "false" } ], "name" : "linkConfig" } ] }, "name" : "mysql_link", "creation-date" : 1496654788622, "connector-name" : "generic-jdbc-connector", "update-date" : 1496654788622, "enabled" : true } ] }
  • URI POST /v1.1/{project_id}/clusters/{cluster_id}/cdm/link 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参见项目ID和账号ID cluster_id 是 String 集群ID 表2 Query参数 参数 是否必选 参数类型 描述 validate 否 String 为“true”时,此API仅校验参数是否正确,不创建连接
共100000条