华为云用户手册

  • 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/D CS 连接。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" } ] }
  • 连接参数 参数 是否必选 类型 说明 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.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" } ] }
  • 连接样例 { "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)。
  • 请求示例 创建一个名为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 } ] }
  • 响应参数 状态码: 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" } ] } ] }
  • 请求参数 表3 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表4 请求Body参数 参数 是否必选 参数类型 描述 links 是 Array of links objects 连接列表,请参见links数据结构说明 表5 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 更新连接的用户 表6 link-config-values 参数 是否必选 参数类型 描述 configs 是 Array of configs objects 连接配置参数数据结构,请参见configs参数说明。 extended-configs 否 extended-configs object 扩展配置,请参见extended-configs参数说明。 validators 否 Array of strings 校验器 表7 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。 表8 Input 参数 是否必选 参数类型 描述 name 是 String 参数名: 如果是连接管理API,则以“linkConfig.”开头,对于不同连接类型有不同的参数,具体可参见连接参数说明下相应连接的参数说明。 如果是作业管理API,对于源端连接参数,则以“fromJobConfig.”开头,具体可参见源端作业参数说明下相应的源端参数说明;对于目的端连接参数,则以“toJobConfig.”开头,具体可参见目的端作业参数说明下相应的目的端参数说明;对于作业任务参数,请参见作业任务参数说明下相应的任务参数说明。 value 是 String 参数值,参数名对应的值,必须填写为字符串 type 否 String 值类型,如STRING、INTEGER,由系统设定,用户无需填写。 表9 extended-configs 参数 是否必选 参数类型 描述 name 否 String 名称 value 否 String 值
  • 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仅校验参数是否正确,不创建连接
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.database 是 String MongoDB/DDS的数据库名称 toJobConfig.collectionName 是 String MongoDB/DDS的集合名称。 toJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.isBatchMigration 否 Boolean 是否为整库迁移。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.database", "value": "demo" }, { "name": "toJobConfig.collectionName", "value": "cdmbase" }, { "name": "toJobConfig.columnList", "value": "_char&_varchar" }, { "name": "toJobConfig.isBatchMigration", "value": "false" } ], "name": "toJobConfig" } ] }
  • 响应参数 状态码: 200 表9 响应Body参数 参数 参数类型 描述 validation-result Array of validationResult objects 校验结构:如果创建连接失败,返回失败原因,请参见validation-result参数说明。如果创建成功,返回空列表。 表10 validationResult 参数 参数类型 描述 linkConfig Array of validationLinkConfig objects 创建或更新连接校验结果,请参见linkConfig参数说明 表11 validationLinkConfig 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING 状态码: 500 表12 响应Body参数 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING
  • 请求示例 修改一个名为mysql_link的数据连接。 PUT /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/link/rdb_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 } ] }
  • 响应示例 状态码: 200 OK { "validation-result" : [ { } ] } 状态码: 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" } ] } ] }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 links 是 Array of links objects 连接列表,请参见links数据结构说明 表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 表4 响应Body参数 参数 参数类型 描述 total Integer 作业数,查询单个作业时为0 jobs Array of Job objects 作业列表,请参见jobs参数说明 page_no Integer 返回指定页号的作业 page_size Integer 每页作业数 表5 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:未被执行。 表6 ConfigValues 参数 参数类型 描述 configs Array of configs objects 源连接参数、目的连接参数和作业任务参数,它们的配置数据结构相同,其中“inputs”里的参数不一样,详细请参见configs数据结构说明 extended-configs extended-configs object 扩展配置,请参见extended-configs参数说明。扩展配置暂不对外开放,用户无需填写。 表7 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。 表8 Input 参数 参数类型 描述 name String 参数名: 如果是连接管理API,则以“linkConfig.”开头,对于不同连接类型有不同的参数,具体可参见连接参数说明下相应连接的参数说明。 如果是作业管理API,对于源端连接参数,则以“fromJobConfig.”开头,具体可参见源端作业参数说明下相应的源端参数说明;对于目的端连接参数,则以“toJobConfig.”开头,具体可参见目的端作业参数说明下相应的目的端参数说明;对于作业任务参数,请参见作业任务参数说明下相应的任务参数说明。 value String 参数值,参数名对应的值,必须填写为字符串 type String 值类型,如STRING、INTEGER,由系统设定,用户无需填写。 表9 extended-configs 参数 参数类型 描述 name String 扩展配置名称,暂不对外开放,用户无需填写。 value String 扩展配置值,暂不对外开放,用户无需填写。
  • 响应示例 状态码: 200 ok { "total" : 1, "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" } ], "page_no" : 1, "page_size" : 10 }
  • URI GET /v1.1/{project_id}/clusters/{cluster_id}/cdm/job/{job_name} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方法请参见项目ID和账号ID cluster_id 是 String 集群ID job_name 是 String 查询多个作业用all,查询单个作业输入作业名 表2 Query参数 参数 是否必选 参数类型 描述 filter 否 String 当“job_name”为“all”时,此参数用于模糊过滤作业 page_no 否 Integer 指定作业页号 最小值:1 page_size 否 Integer 每页作业数,值在10-100之间 最小值:10 最大值:100 jobType 否 String 作业类型: jobType=NORMAL_JOB:表示查询表/文件迁移的作业。 jobType=BATCH_JOB:表示查询整库迁移的作业。 jobType=SCENARIO_JOB:表示查询场景迁移的作业。 不指定该参数时,默认只查询表/文件迁移的作业。 枚举值: NORMAL_JOB BATCH_JOB SCENARIO_JOB
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.index 是 String 写入数据的索引,类似关系数据库中的数据库名称。 toJobConfig.type 是 String 写入数据的类型,类似关系数据库中的表名。 toJobConfig.shouldClearType 否 Boolean 导入前是否清除数据。 toJobConfig.primaryKey 否 String 主键或唯一索引。 toJobConfig.columnList 否 String 需要写入的字段列表,字段名之间使用“&”分隔,例如:“id&gid&name”。 toJobConfig.pipeLine 否 String 需要先在kibana中创建管道ID,这里才可以选择,该参数用于数据传到云搜索服务/Elasticsearch后,通过Elasticsearch的数据转换pipeline进行数据格式变换。 toJobConfig.createIndexStrategy 否 枚举 对于持续写入数据到Elasticsearch的流式作业,CDM支持在Elasticsearch中定时创建新索引并写入数据,方便用户后期删除过期的数据。支持按以下周期创建新索引: EveryHour:每小时整点创建新索引,新索引的命名格式为“索引名+年+月+日+小时”,例如“index2018121709”。 EveryDay:每天零点零分创建新索引,新索引的命名格式为“索引名+年+月+日”,例如“index20181217”。 EveryWeek:每周周一的零点零分创建新索引,新索引的命名格式为“索引名+年+周”,例如“index201842”。 EveryMonth:每月一号零点零分创建新索引,新索引的命名格式为“索引名+年+月”,例如“index201812”。 从文件类抽取数据时,必须配置单个抽取(“抽取并发数”参数配置为1),否则该参数无效。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.index", "value": "cdm" }, { "name": "toJobConfig.type", "value": "type1" }, { "name": "toJobConfig.shouldClearType", "value": "false" }, { "name": "toJobConfig.pipeLine", "value": "es_03" } ], "name": "toJobConfig" } ] }
共100000条