华为云用户手册
-
连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.server", "value": "10.120.85.167" }, { "name": "linkConfig.port", "value": "22" }, { "name": "linkConfig.username", "value": "username" }, { "name": "linkConfig.password", "value": "Add password here" } ], "name": "linkConfig" } ] }, "name": "sftp_link", "connector-name": "sftp-connector" } ] }
-
连接参数 FTP和SFTP的连接参数相同。 参数 是否必选 类型 说明 linkConfig.server 是 String FTP或SFTP服务器的地址。 linkConfig.port 是 String FTP或SFTP服务器端口号。 linkConfig.username 是 String 登录FTP或SFTP服务器的用户名。 linkConfig.password 是 String 登录用户的密码。
-
参数说明 参数 是否必选 类型 说明 toJobConfig.schemaName 是 String 数据库模式或表空间。 toJobConfig.tablePreparation 是 枚举 只有当源端和目的端都为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作: DO_NOTHING:不自动建表。 CREATE_WHEN_NOT_EXIST:当目的端的数据库没有“tableName”参数中指定的表时, CDM 会自动创建该表。 DROP_AND_CREATE:先删除“tableName”参数中指定的表,然后再重新创建该表。 toJobConfig.tableName 是 String 写入数据的表名。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.beforeImportType 否 枚举 导入数据前,选择是否清除目的表的数据: none:写入数据前不清除目标表中数据,数据追加写入。 shouldClearTable:写入数据前会清除目标表中数据。 whereClause:选择根据where条件删除时,需要配置“toJobConfig.whereClause”参数,CDM根据条件选择性删除目标表的数据。 toJobConfig.whereClause 否 String where条件,导入前根据where条件删除目的表的数据。 toJobConfig.orientation 否 枚举 存储方式,此参数只有当数据库类型为DWS时启用,当需要自动创建DWS数据库表,指定表的数据存储方式: ROW:表的数据以行式存储。 COLUMN:表的数据以列式存储。 toJobConfig.isCompress 否 Boolean 是否压缩,此参数只有当数据库类型为DWS时启用,当需要自动创建DWS数据库表,指定是否对表的数据进行压缩存储。 toJobConfig.useStageTable 否 Boolean 先导入阶段表,如果设置为“true”,数据导入目的表之前会把数据先导入阶段表,如果成功导入阶段表,则再从阶段表导入到目的表,这样避免导入过程失败,在目的表遗留部分成功数据。 toJobConfig.extendCharLength 否 Boolean 扩大字符字段长度,如果设置为“true”,当需要自动创建目的表时,目标表的字符类型字段长度设置为源表相应字段长度的3倍。 toJobConfig.useNullable 否 Boolean 当选择自动创建目的表时,如果选择使用非空约束,则目的表字段的是否非空约束,与原表具有相应非空约束的字段保持一致。
-
JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.schemaName", "value": "cdm" }, { "name": "toJobConfig.tablePreparation", "value": "DROP_AND_CREATE" }, { "name": "toJobConfig.tableName", "value": "rf_to" }, { "name": "toJobConfig.columnList", "value": "id&gid&name" }, { "name": "toJobConfig.isCompress", "value": "false" }, { "name": "toJobConfig.orientation", "value": "ROW" }, { "name": "toJobConfig.useStageTable", "value": "false" }, { "name": "toJobConfig.shouldClearTable", "value": "false" }, { "name": "toJobConfig.extendCharLength", "value": "false" } ], "name": "toJobConfig" } ] }
-
参数说明 参数 是否必选 类型 说明 fromJobConfig.database 是 String MongoDB/DDS的数据库名称。 fromJobConfig.collectionName 是 String MongoDB/DDS的集合名称。 fromJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 fromJobConfig.isBatchMigration 否 Boolean 是否为整库迁移。 fromJobConfig.filters 否 String 创建用于匹配文档的筛选条件,CDM只迁移符合条件的数据。例如: 按表达式对象筛选:例如{'last_name': 'Smith'},表示查找所有“last_name”属性值为“Smith”的文档。 按参数选项筛选:例如{ x : "john" }, { z : 1 },表示查找x=john的所有z字段。 按条件筛选:例如{ "field" : { $gt: 5 } },表示查找field字段中大于5的值。
-
JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.database", "value": "cdm" }, { "name": "fromJobConfig.collectionName", "value": "rf_from" }, { "name": "fromJobConfig.columnList", "value": "TINYTEST&SMALLTEST&INTTEST&INTEGERTEST&BIGINTTEST&FLOATTEST" }, { "name": "fromJobConfig.isBatchMigration", "value": "false" }, { "name": "fromJobConfig.filters", "value": "{'last_name': 'Smith'}" } ], "name": "fromJobConfig" } ] }
-
JSON样例 "driver-config-values": { "configs": [ { "inputs": [ { "name": "throttlingConfig.numExtractors", "value": "1" }, { "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" } ] }
-
参数说明 参数 是否必选 类型 说明 throttlingConfig.numExtractors 否 Integer 最大抽取任务并发数,例如:“20”。 groupJobConfig.groupName 否 枚举 选择作业所属的分组,默认分组为“DEFAULT”。 throttlingConfig.numLoaders 否 Integer 仅当HBase或Hive作为目的数据源时该参数才有效。 最大加载任务数,例如:“5”。 throttlingConfig.recordDirtyData 否 Boolean 是否写入脏数据,例如:“true”。 throttlingConfig.writeToLink 否 String 脏数据要写入的连接,目前只支持写入到OBS连接或HDFS连接。例如:“obslink”。 throttlingConfig.obsBucket 否 String 写入脏数据的OBS桶的名称,只有当脏数据要写入OBS连接的时候,此参数才生效。例如:“dirtyData”。 throttlingConfig.dirtyDataDirectory 否 String 写入脏数据的目录: 如果选择写入到HDFS,此参数即为HDFS目录。 如果选择写入到OBS,此参数表示相应的OBS桶下的目录,例如:“/data/dirtydata/”。 throttlingConfig.maxErrorRecords 否 String 单个分片的最大错误记录数。单个map的错误记录超过设置的最大错误记录数时,任务自动结束,已经导入的数据不回退。 schedulerConfig.isSchedulerJob 否 Boolean 是否开启定时任务,例如:“true”。 schedulerConfig.cycleType 否 String 定时任务的周期类型,目前支持五种周期类型: minute:分钟 hour:小时 day:天 week:周 month:月 schedulerConfig.cycle 否 Integer 定时任务的周期,如果周期类型选择了“minute”,“cycle”输入“10”,就表示该定时任务每10分钟执行一次。 schedulerConfig.runAt 否 String 定时任务在周期内的触发时间,当周期为“hour”、“week”或“month”时,该参数有效。 如果周期类型为“month”,设定周期为“1”,“runAt”输入“15”,就表示每个月的15号执行该定时任务。并且该参数支持输入多个,以英文的逗号“,”分隔开。 例如上述场景中“runAt”输入“1,2,3,4,5”,就表示每个月的1日、2日、3日、4日和5日执行该定时任务。 周期类型为“week”时,“runAt”输入“mon,tue,wed,thu,fri”,就表示周一到周五执行该定时任务。 周期类型为“hour”时,“runAt”输入“27,57”,表示周期内的的27分和57分执行该定时任务。 schedulerConfig.startDate 否 String 定时任务的开始时间,例如:“2018-01-24 19:56:19”。 schedulerConfig.stopDate 否 String 定时任务的结束日期,例如:“2018-01-27 23:59:00”。 如果不输入结束时间,则表示定时任务将一直执行,永远不会结束。 schedulerConfig.disposableType 否 枚举 作业运行完是否删除: NONE:作业执行完不删除。 DELETE_AFTER_SUCCEED:仅作业执行成功时删除该作业,适合海量一次性作业。 DELETE:作业执行完删除该作业,执行成功或失败都会删除。 retryJobConfig.retryJobType 否 枚举 如果作业执行失败,选择是否自动重试: NONE:不重试。 RETRY_TRIPLE:重试三次。
-
创建CDM集群 调用创建集群API创建集群,假设集群详情如下: 集群名称为“cdm-ab82”。 集群规格为“cdm.medium”。 VPC、子网、安全组与DWS一致,且自动绑定弹性IP。 如果返回状态码为200,则说明创建命令执行成功。 curl -X POST -H 'Content-Type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" -d ' { "cluster": { "name": "cdm-ab82", "vpcId": "6b47302a-bf79-4b20-bf7a-80987408e196", "instances": [{ "flavorRef": "fb8fe666-6734-4b11-bc6c-43d11db3c745", "nics": [{ "net-id": "63bdc3cb-a4e7-486f-82ee-d9bf208c8f8c", "securityGroupId": "005af77a-cce5-45ac-99c7-2ea50ea8addf" }], "availability_zone": "Project Name", "type": "cdm" }], "datastore": { "version": "1.8.5", "type": "cdm" }, "isScheduleBootOff": false, "scheduleBootTime": "null", "scheduleOffTime": "null", "isAutoOff": false, "sys_tags": [{ "key": "_sys_enterprise_project_id", "value": "1ce45885-4033-40d2-bdde-d4dbaceb387d" }] }, "autoRemind": false, "phoneNum": "null", "email": "null" }' https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters -v -k 调用查询集群列表查询集群信息,获取集群的ID,并设置为全局变量。 curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Auth-Token:$Token" https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters -k -v 获取响应如下所示。 { "clusters": [{ "version": "x.x.x", "updated": "2018-09-05T08:38:25", "name": "cdm-ab82", "created": "2018-09-05T08:38:25", "id": "bae65496-643e-47ca-84af-948672de7eeb", "status": "200", "isFrozen": "0", "statusDetail": "Normal", "actionProgress": {}, "config_status": "In-Sync" }] } “status”的状态如果为200则表示集群创建成功,集群对应的ID为bae65496-643e-47ca-84af-948672de7eeb。 使用如下命令将集群对应的ID设置为全局变量,方便后续事项。 export ID = bae65496-643e-47ca-84af-948672de7eeb
-
获取token 调用其他API前,需要获取token,并设置成环境变量。 curl -H "Content-Type:application/json" https://{iam_endpoint}/v3/auth/tokens -X POST -d ' { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "Username", "password": "password", "domain": { "name": "Account Name" } } } }, "scope": { "project": { "id": "1551c7f6c808414d8e9f3c514a170f2e" } } } } ' -v -k 响应Header中“X-Subject-Token”的值即为Token: X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX... 使用如下命令将token设置为环境变量,方便后续事项。 export Token = MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...
-
创建连接 调用创建连接API创建MySQL连接,连接名称为mysql_link。这里假设本地MySQL数据库信息如下: IP地址为1xx.120.85.24。 端口为3306。 数据库名称为DB_name。 登录用户为username。 密码为DB_password。 如果返回状态码为200,则说明创建命令执行成功。 curl -X POST -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -d '{ "links": [{ "enabled": true, "update-user": null, "name": "mysql_link", "link-config-values": { "configs": [ { "name": "linkConfig", "inputs": [ { "name": "linkConfig.databaseType", "value": "MYSQL" }, { "name": "linkConfig.host", "value": "1xx.120.85.24" }, { "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": "true" } ] } ] }, "connector-name": "generic-jdbc-connector", "creation-date": 1536654788622, "update-date": 1536654788622, "creation-user": null }] }' https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/bae65496-643e-47ca-84af-948672de7eeb/cdm/link -k -v 调用创建连接API创建DWS连接,连接名称为dws_link。这里假设DWS数据库信息如下: 数据库的IP地址为10.120.85.24。 端口为3306。 数据库的名称为DWS。 登录用户为user_dws。 密码为dws_password。 curl -X POST -H "Content-Type:application/json" -H "X-Auth-Token:$Token" -d '{ "links": [{ "enabled": true, "update-user": null, "name": "dws_link", "link-config-values": { "configs": [ { "name": "linkConfig", "inputs": [ { "name": "linkConfig.databaseType", "value": "DWS" }, { "name": "linkConfig.host", "value": "10.120.85.24" }, { "name": "linkConfig.port", "value": "3306" }, { "name": "linkConfig.database", "value": "DWS" }, { "name": "linkConfig.username", "value": "user_dws" }, { "name": "linkConfig.password", "value": "dws_password" }, { "name": "linkConfig.fetchSize", "value": "100000" }, { "name": "linkConfig.usingNative", "value": "true" } ] } ] }, "connector-name": "generic-jdbc-connector", "creation-date": 1536654788622, "update-date": 1536654788622, "creation-user": null }] }' https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/bae65496-643e-47ca-84af-948672de7eeb/cdm/link -k -v
-
查看作业结果 调用查询作业状态API查询作业状态。 curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Cluster-ID:$ID" -H "X-Auth-Token:$Token" https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/job/mysql2dws/status -k -v 查看作业执行结果,作业执行成功的响应如下: { "submissions": [{ "progress": 0, "job-name": "mysql2dws", "status": "SUCCEEDED", "creation-date": 1536654788622, "creation-user": "cdm", "isStopingIncrement": "", "last-update-date": 1536654888622, "is-execute-auto": false, "last-udpate-user": "cdm", "isDeleteJob": false, "isIncrementing": false, "external-id": "job_local1127970451_0009", "counters": { "org.apache.sqoop.submission.counter.SqoopCounters": { "BYTES_WRITTEN": -1, "TOTAL_FILES": -1, "BYTES_READ": -1, "FILES_WRITTEN": -1, "TOTAL_SIZE": -1, "FILES_READ": -1, "ROWS_WRITTEN": 80, "ROWS_READ": 80 } } }] } BYTES_WRITTEN:表示写入的字节数。 BYTES_READ:表示读取的字节数。 TOTAL_FILES:表示总文件数。 FILES_WRITTEN:表示写入的文件数。 FILES_READ:表示读取的文件数。 ROWS_WRITTEN:表示写入成功的行数。 ROWS_READ:表示读取成功的行数。
-
创建迁移作业 连接创建成功后,调用指定集群创建作业API创建迁移作业,作业样例如下: 作业名称:mysql2dws。 从MySQL导出数据的数据库名称为default,导出的表名称为mysql_tbl,依据id字段将作业分割为多个任务并发执行。 导入DWS的数据库名称为public,表名为cdm_all_type,导入前不清空数据。 当DWS数据库里没有本地MySQL数据库中的表时,CDM自动在DWS端创建该表。 DWS端加载的字段列表为id&gid&name。 作业抽取数据时,并发执行的Extractor数量为3。 如果返回状态码为200,则说明创建命令执行成功。 curl -X POST -H "Content-Type:application/json" -H "X-Cluster-ID:$ID" -H "X-Auth-Token:$Token" -d '{ "jobs": [{ "job_type": "NORMAL_JOB", "name": "mysql2dws", "from-link-name": "mysql_link", "from-connector-name": "generic-jdbc-connector", "to-link-name": "dws_link", "to-connector-name": "generic-jdbc-connector", "from-config-values": { "configs": [{ "name": "fromJobConfig", "inputs": [{ "name": "fromJobConfig.schemaName", "value": "default" }, { "name": "fromJobConfig.tableName", "value": "mysql_tbl" }, { "name": "fromJobConfig.partitionColumn", "value": "id" }] }] }, "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.schemaName", "value": "public" }, { "name": "toJobConfig.tablePreparation", "value": "CREATE_WHEN_NOT_EXIST" }, { "name": "toJobConfig.tableName", "value": "cdm_all_type" }, { "name": "toJobConfig.columnList", "value": "id&gid&name" }, { "name": "toJobConfig.shouldClearTable", "value": "false" } ], "name": "toJobConfig" } ] }, "driver-config-values": { "configs": [{ "name": "throttlingConfig", "inputs": [{ "name": "throttlingConfig.numExtractors", "value": "3" }] }] } }] }' https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/bae65496-643e-47ca-84af-948672de7eeb/cdm/job -k -v 调用启动作业API开始执行作业。 curl -X GET -H 'Content-Type:application/json;charset=utf-8' -H "X-Cluster-ID:$ID" -H "X-Auth-Token:$Token" https://{cdm_endpoint}/v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/bae65496-643e-47ca-84af-948672de7eeb/cdm/job/mysql2dws/start -k -v 响应如下: { "submissions": [{ "progress": 1, "job-name": "mysql2dws", "status": "BOOTING", "creation-date": 1536654788622, "creation-user": "cdm" }] }
-
准备数据 在调用API之前,您需要准备如下数据。 表1 准备数据 数据项 名称 说明 样例 云账户信息 项目名 CDM所属的项目名。 Project Name 项目ID CDM所属的项目ID。 1551c7f6c808414d8e9f3c514a170f2e 账号名 用户所属的企业账户名称。 Account Name 用户名 使用云服务的用户名,该用户需要拥有CDM的操作权限。 Username 密码 用户密码。 password VPC信息 VPC的ID CDM所属的VPC必须与DWS一致。 6b47302a-bf79-4b20-bf7a-80987408e196 子网ID CDM所属的子网必须与DWS一致。 63bdc3cb-a4e7-486f-82ee-d9bf208c8f8c 安全组ID CDM所属的安全组必须与DWS一致。 005af77a-cce5-45ac-99c7-2ea50ea8addf Endpoint IAM 的Endpoint 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。Endpoint您可以从终端节点及区域说明获取。 iam_endpoint CDM的Endpoint 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。本服务的Endpoint您可以从终端节点Endpoint获取。 cdm_endpoint MySQL数据库 IP地址 本地的MySQL数据库的IP地址,且该地址允许CDM通过公网IP访问。 1xx.120.85.24 端口 MySQL数据库的端口。 3306 数据库名称 待导出数据的MySQL数据库名称。 DB_name 用户名 访问MySQL数据库的用户,该用户拥有MySQL数据库的读、写和删除权限。 username 密码 访问MySQL数据库的用户密码。 DB_password DWS数据库 IP地址 DWS数据库的IP地址,CDM可通过内网访问该地址。 10.120.85.24 端口 DWS数据库的端口。 3306 数据库名称 待写入数据的DWS数据库名称。 DWS 用户名 访问DWS数据库的用户,该用户拥有DWS数据库的读、写和删除权限。 user_dws 密码 访问DWS数据库的用户密码。 dws_password
-
响应示例 状态码: 200 ok { "name" : "mysql2hive" } 状态码: 400 请求报错 { "code" : "Cdm.0104", "errCode" : "Cdm.0104", "message" : "Job name already exist or created by other.", "ternalMessage" : "Job name already exist or created by other." }
-
响应参数 状态码: 200 表9 响应Body参数 参数 参数类型 描述 name String 作业名称。 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的数据迁移作业。 POST /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/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" } ] }
-
请求参数 表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/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 扩展配置值,暂不对外开放,用户无需填写。
-
响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 submissions Array of Submission objects 作业运行信息,详见submissions参数说明。 表4 Submission 参数 参数类型 描述 isIncrementing Boolean 作业是否为增量迁移 job-name String 作业名称 counters counters object 作业运行结果统计,当“status”为“SUCCEEDED”时才有此字段,请参见counters数据结构参数说明 isStopingIncrement String 是否停止增量迁移 is-execute-auto Boolean 是否定时执行作业 last-update-date Long 作业最后更新时间 last-udpate-user String 最后更新作业状态的用户 isDeleteJob Boolean 作业执行完成后是否删除 creation-user String 创建用户 creation-date Long 创建时间 external-id String 作业ID progress Float 作业进度,失败时为“-1”,其它情况为0~100 submission-id Integer 作业提交id delete_rows Integer 删除数据行数 update_rows Integer 更新数据行数 write_rows Integer 写入数据行数 execute-date Long 执行时间 status String 作业状态: BOOTING:启动中。 FAILURE_ON_SUBMIT:提交失败。 RUNNING:运行中。 SUCCEEDED:成功。 FAILED:失败。 UNKNOWN:未知。 NEVER_EXECUTED:未被执行 error-details String 错误详情,当“status”为“FAILED”时才有此字段。 error-summary String 错误总结,当“status”为“FAILED”时才有此字段。 表5 counters 参数 参数类型 描述 org.apache.sqoop.submission.counter.SqoopCounters counter object 作业运行结果统计,请参见统计结果参数说明 表6 counter 参数 参数类型 描述 BYTES_WRITTEN Long 写入的字节数 TOTAL_FILES Integer 总文件数 ROWS_READ Long 读取的行数 BYTES_READ Long 读取的字节数 ROWS_WRITTEN Long 写入的行数 FILES_WRITTEN Integer 写入的文件数 FILES_READ Integer 读取的文件数 TOTAL_SIZE Long 总字节数 FILES_SKIPPED Integer 跳过的文件数 ROWS_WRITTEN_SKIPPED Long 跳过的行数
-
响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 submissions Array of StartJobSubmission objects 作业运行信息,请参见submission参数说明 表4 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 作业执行完成后是否删除
-
连接样例 { "links": [ { "link-config-values": { "configs": [ { "inputs": [ { "name": "linkConfig.databaseType", "value": "MYSQL" }, { "name": "linkConfig.host", "value": "10.120.205.30" }, { "name": "linkConfig.port", "value": "3306" }, { "name": "linkConfig.database", "value": "DB_name" }, { "name": "linkConfig.username", "value": "username" }, { "name": "linkConfig.password", "value": "Add password here" }, { "name": "linkConfig.useAgent", "value": "false" }, { "name": "linkConfig.fetchSize", "value": "100000" }, { "name": "linkConfig.commitSize", "value": "10000" }, { "name": "linkConfig.usingNative", "value": "false" }, { "name": "linkConfig.useSSL", "value": "false" } ], "name": "linkConfig" } ] }, "name": "mysql_link", "connector-name": "generic-jdbc-connector" } ] }
-
连接参数 参数 是否必选 类型 说明 linkConfig.databaseType 是 枚举 数据库类型: ORACLE MYSQL SQLSERVER DB2 POSTGRESQL DWS DDM SAP HANA linkConfig.host 是 String 数据库服务器地址。 linkConfig.port 是 String 数据库服务器的端口号。 linkConfig.databaseconfig 否 枚举 创建Oracle连接时才有该参数,选择Oracle数据库连接类型: SERVICENAME:通过SERVICE_NAME连接Oracle数据库。 SID:通过SID连接Oracle数据库。 linkConfig.sidname 否 String 配置Oracle实例ID,用于实例区分各个数据库。创建Oracle连接,且linkConfig.databaseconfig(数据库连接类型)选择为“SID”时才有该参数。 linkConfig.database 否 String 数据库名称。 linkConfig.username 是 String 用户名。 linkConfig.password 是 String 用户密码。 linkConfig.useAgent 是 Boolean 选择是否通过agent从源端获取数据。 linkConfig.fetchSize 否 String 每次请求获取的数据行数。 linkConfig.commitSize 否 String 每次请求提交的数据行数。 linkConfig.usingNative 否 Boolean 是否使用数据库本地API加速。 创建MySQL连接时,使用本地API加速,可以使用MySQL的LOAD DATA功能加快数据导入,提高导入数据到MySQL数据库的性能。 说明: REPLACE 和 IGNORE 修饰符用于处理与现有行具有相同唯一键值(PRIMARY KEY或UNIQUE索引值)的新输入的行。 约束冲突处理配置为"replace into"或"local",使用REPLACE,与现有行中的唯一键值具有相同值的新行将替换现有行。 约束冲突处理配置为"insert into",默认使用IGNORE,与唯一键值上的现有行重复的新行将被丢弃,任务不会终止。因为Mysql服务机制无法在操作过程中停止文件传输,此情况下,CDM界面显示写入记录与实际更新行数会不一致。 Mysql Local模式详情请参见:https://dev.mysql.com/doc/refman/8.0/en/load-data.html linkConfig.isRds 否 Boolean 是否支持RDS服务,云数据库默认true,其余默认false linkConfig.useSSL 否 Boolean 是否使用加密传输,支持对RDS服务启用SSL加密传输,仅在创建dws连接时才有此参数。 linkConfig.jdbcProperties 否 Map 连接属性,指定数据源的JDBC连接器的属性,参考对应数据库的JDBC连接器说明文档进行配置。 linkConfig.version 否 枚举 创建Oracle连接时才有该参数,根据您Oracle数据库的版本来选择。 HIGH_VERSION:当您的Oracle数据库版本高于12.1时,选择该值。 MED_VERSION:当您的Oracle数据库版本为12.1时,选择该值。 LOW_VERSION:当您的Oracle数据库版本低于12.1时,选择该值。 当出现“java.sql.SQLException: Protocol violation异常”时,可以尝试更换版本号。 dialect.identifierEnclose 否 String 引用符号,连接引用表名或列名时的分隔符号,参考对应数据库的产品文档进行配置。
-
参数说明 参数 是否必选 类型 说明 toJobConfig.hive 否 String 写入数据的数据源。 toJobConfig.database 否 String 写入数据的数据库名称,例如:“default”。 toJobConfig.table 是 String 写入数据的表名。 toJobConfig.tablePreparation 是 枚举 写入表数据时,用户选择的操作: DO_NOTHING:不自动建表。 CREATE_WHEN_NOT_EXIST:当目的端的数据库没有“tableName”参数中指定的表时,CDM会自动创建该表。 DROP_AND_CREATE:先删除“tableName”参数中指定的表,然后再重新创建该表。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.shouldClearTable 否 Boolean 导入前是否清空目标表的数据,如果设置为true,任务启动前会清除目标表中数据。
-
JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.hive", "value": "hive" }, { "name": "toJobConfig.database", "value": "rf_database" }, { "name": "toJobConfig.table", "value": "rf_to" }, { "name": "toJobConfig.tablePreparation", "value": "DO_NOTHING" }, { "name": "toJobConfig.columnList", "value": "aa&bb&cc&dd" }, { "name": "toJobConfig.shouldClearTable", "value": "true" } ], "name": "toJobConfig" } ] }
-
错误码 调用API出错后,将不会返回结果数据。调用方可根据每个API对应的错误码来定位错误原因。当调用出错时,HTTP请求返回一个4xx或5xx的HTTP状态码。返回的消息体中是具体的错误代码及错误信息。在调用方找不到错误原因时,可以联系客服,并提供错误码,以便尽快帮您解决问题。 异常响应样例 { "errCode": "Cdm.0100", "externalMessage": "Job[jdbc2hive] doesn't exist." } 参数说明 参数 是否必选 类型 说明 errCode 否 String 错误码。 externalMessage 否 String 错误消息。 错误码说明 以下错误信息中的%s为变量,实际返回信息时会替换为具体的参数名、表名、作业名、连接名等。 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 错误码 状态码 错误信息 描述 处理措施 Cdm.0000 400 系统错误。 系统错误。 请联系客服或技术支持人员协助解决。 Cdm.0001 400 资源不存在或不合法。 请求的资源不存在或无访问权限。 请联系客服或技术支持人员协助解决。 Cdm.0004 400 无效的参数类型 输入参数和类型不匹配 请根据错误提示将参数修改正确后请重试。 Cdm.0009 400 %s不是整型数字或超出整型数的取值范围[0~2147483647]。 输入参数不是整型数字或超出整型数的取值范围。 请根据错误提示将参数修改正确后请重试。 Cdm.0010 400 整数必须在区间[%s]。 校验程序的参数缺失或长度为0。 请根据错误提示将参数修改正确后请重试。 Cdm.0011 400 输入超过取值范围。 参数格式不正确或超过取值范围,无法解析。 请根据返回的详细错误信息,确认参数值是否合法,修改正确后请重试。 Cdm.0012 400 没有匹配的数据库JDBC驱动。 没有匹配的数据库JDBC驱动。 请联系客服或技术支持人员协助解决。 Cdm.0013 400 Agent连接失败。 Agent连接失败。 可能是由于网络不通、安全组或防火墙规则未放行等原因。若排除上述原因后仍无法解决,请联系技术支持人员协助解决。 Cdm.0014 400 非法参数。 参数不合法。 请确认参数值是否合法,修改正确后请重试。 Cdm.0015 400 解析文件内容出错。 解析文件内容失败。 请确认上传的文件内容或格式是否正确,修改正确后请重试。 Cdm.0016 400 上传文件不能为空。 上传的文件为空。 请确认上传的文件是否为空,修改正确后请重试。 Cdm.0017 400 无法将输入值保存到存储库 无法将输入值保存到存储库。 请联系客服或技术支持人员协助解决。 Cdm.0018 400 作业和连接内容不合法。 作业和连接内容非法。 请联系客服或技术支持人员协助解决。 Cdm.0019 400 无法删除存储库中的链接 删除存储库中的链接失败。 请稍后重试,或联系或客服或技术支持人员协助解决。 Cdm.0020 400 必须包含子字符串:%s。 被校验参数为空或不包含指定子字符串。 请根据错误提示将参数修改正确后,再重试。 Cdm.0021 400 不能连接服务器:%s。 连接服务器失败。 请联系客服或技术支持人员协助解决。 Cdm.0024 400 [%s]必须在区间[%s]。 被校验参数不在指定区间范围内。 请根据错误提示将参数修改正确后,再重试。 Cdm.0031 400 无法创建新的提交数据 无法创建新的提交数据 请联系客服或技术支持人员协助解决。 Cdm.0032 400 当前用户没有操作权限,请通过IAM检查账户权限! 用户权限不足 在CDM控制台操作时,请参考CDM权限管理为该用户授予足够的操作权限。 在 DataArts Studio 控制台操作时,请参考DataArts Studio权限管理为该用户授予足够的操作权限。 Cdm.0037 400 无法提交作业。 无法提交作业。 请联系客服或技术支持人员协助解决。 Cdm.0051 400 无效的提交引擎:%s。 作业引擎名称非法。 请指定正确的作业引擎后再重试。 Cdm.0052 400 作业%s正在运行。 作业正在运行。 作业正在运行,无法执行当前操作,请等待作业运行结束后再重试。 Cdm.0053 400 作业%s未运行。 作业未运行。 请运行作业后再重试。 Cdm.0054 400 作业%s不存在。 作业不存在。 请确认作业是否存在。 Cdm.0055 400 作业类型不支持。 作业类型不支持。 请参考官网,配置支持的作业类型。 Cdm.0056 400 不能提交作业。原因:%s。 作业提交失败。 请根据返回的详细错误信息,定位原因,修改正确后请重试。 Cdm.0057 400 无效的作业执行引擎:%s。 作业引擎无效。 请指定正确的作业引擎后再重试。 Cdm.0058 400 提交和执行引擎组合不合法。 提交和执行引擎组合不合法。 请指定正确的作业引擎后再重试。 Cdm.0059 400 作业%s已被禁用。不能提交作业。 作业已被禁用,无法提交。 当前作业无法提交,建议重新创建一个作业后再重试。或者,请联系客服或技术支持人员协助解决。 Cdm.0060 400 作业使用的连接%s已被禁用。不能提交作业。 作业使用的连接已被禁用。 请改为其他连接后,再重新提交作业。 Cdm.0061 400 连接器%s不支持此方向。不能提交作业。 该连接器不能作为作业的源端或目的端。 该连接器不能作为作业的源端或目的端,请改为其他连接后,再重新提交作业。 Cdm.0062 400 二进制文件仅适合SFTP/FTP/HDFS/OBS连接器。 连接器不在指定的范围内。 请指定正确的连接器后再重试。 Cdm.0063 400 创建表格错误。原因:%s。 创建表格失败。 请根据返回的详细错误信息定位原因,修改正确后请重试。 Cdm.0064 400 数据格式不匹配。 数据格式不匹配。 请根据返回的详细错误信息,确认数据格式是否正确,修改正确后请重试。 Cdm.0065 400 定时器启动失败,原因%s。 定时器启动失败。 请联系客服或技术支持人员协助解决。 Cdm.0066 400 获取样值失败,原因:%s。 获取样值失败。 请联系客服或技术支持人员协助解决。 Cdm.0067 400 获取Schema失败,原因:%s。 获取Schema失败。 请联系客服或技术支持人员协助解决。 Cdm.0085 400 %s 超过最大值 %s。 参数超过最大值。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0089 400 配置项 [%s] 不存在。 配置项不存在。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0100 400 作业[%s]不存在。 作业不存在。 请指定正确的作业后再重试。 Cdm.0101 400 连接[%s]不存在。 连接不存在。 请指定正确的连接后再重试。 Cdm.0102 400 连接器[%s]不存在。 连接器不存在。 请指定正确的连接器后再重试。 Cdm.0104 400 作业名已存在。 作业名已存在。 作业名已存在,请重新命名后,再重试。 Cdm.0201 400 获取实例失败。 获取实例失败。 请联系客服或技术支持人员协助解决。 Cdm.0202 400 作业状态未知。 作业状态未知。 请稍后重试,或请联系客服或技术支持人员协助解决。 Cdm.0204 400 没有已创建的 MRS 连接。 没有已创建的MRS连接。 当前没有MRS连接,您需要先前往集群的“连接管理”页面创建一个MRS连接,然后再重新执行当前的操作。 Cdm.0230 400 不能加载该类:%s。 类加载失败。 请联系客服或技术支持人员协助解决。 Cdm.0231 400 不能初始化该类:%s。 类初始化失败。 请联系客服或技术支持人员协助解决。 Cdm.0232 400 数据写入失败。原因:%s。 数据写入失败。 请联系客服或技术支持人员协助解决。 Cdm.0233 400 提取数据过程异常。原因:%s。 提取数据过程异常。 请联系客服或技术支持人员协助解决。 Cdm.0234 400 载入数据过程异常。原因:%s。 载入数据过程异常。 请联系客服或技术支持人员协助解决。 Cdm.0235 400 数据已全部消费完毕。原因:%s。 数据已全部消费完毕。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0236 400 从分区程序中检索到无效分区数。 从分区程序中检索到无效分区数。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0238 400 %s不能为空。 参数不合法。 请根据错误提示将参数修改正确后再重试。 Cdm.0240 400 获取文件%s状态失败。 获取文件状态失败。 请联系客服或技术支持人员协助解决。 Cdm.0241 400 获取文件%s类型失败。 获取文件类型失败。 请联系客服或技术支持人员协助解决。 Cdm.0242 400 文件检查异常:%s。 文件检查异常。 请联系客服或技术支持人员协助解决。 Cdm.0243 400 重命名%s为%s失败。 重命名失败。 可能是名称已存在,请重新命名后再重试。 Cdm.0244 400 创建文件%s失败。 创建文件失败。 请确认是否具有创建权限,或稍后重试。若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0245 400 删除文件%s失败。 删除文件失败。 请确认是否具有删除权限,或稍后重试。若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0246 400 创建目录%s失败。 创建目录失败。 请确认是否具有创建权限,或稍后重试。若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0247 400 操作HBase失败。原因:%s。 操作HBase失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0248 400 清空%s数据失败。原因:%s。 清空数据失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0249 400 文件名%s无效。 文件名无效。 请将文件名修改正确后,再重试。 Cdm.0250 400 不能操作该路径:%s。 不能操作该路径。 请确认是否具有该路径的操作权限,或稍后重试。若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0251 400 向HBase加载数据失败。原因:%s。 向HBase加载数据失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0307 400 无法获得请求事务的链接租约,原因:%s。 无法获得请求事务的链接租约。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0315 400 连接名%s已存在。 该连接已存在。 请指定其他连接名后再重试。 Cdm.0316 400 无法更新不存在的连接。 无法更新不存在的连接。 请指定正确的连接后再重试。 Cdm.0317 400 连接%s无效。 连接无效。 请指定正确的连接后再重试。 Cdm.0318 400 作业已存在,无法重复创建。 作业已存在。 请指定其他作业名再重试。 Cdm.0319 400 无法更新不存在的作业。 无法更新不存在的作业。 请确认待更新的作业是否存在,作业名修改正确后再重试。 Cdm.0320 400 作业%s无效。 作业无效。 请联系客服或技术支持人员协助解决。 Cdm.0321 400 连接%s已被使用。 连接已被使用。 连接已被使用,无法执行当前的操作,请将连接释放后再重试。 Cdm.0322 400 作业%s已被使用。 作业已被使用。 请联系客服或技术支持人员协助解决。 Cdm.0323 400 该提交已存在,无法重复创建。 该提交已存在。 您已提交过相同操作的请求,请稍后再重试。 Cdm.0327 400 无效的连接或作业:%s。 无效的连接或作业。 请指定正确的连接或作业再重试。 Cdm.0411 400 连接到文件服务器时出错。 连接到文件服务器时出错。 请联系客服或技术支持人员协助解决。 Cdm.0413 400 向文件服务器传输数据时出错。 向文件服务器传输数据时出错。 请联系客服或技术支持人员协助解决。 Cdm.0415 400 从文件服务器下载文件出错。 从文件服务器下载文件出错。 请联系客服或技术支持人员协助解决。 Cdm.0416 400 抽取数据时出错。 抽取数据时出错。 请联系客服或技术支持人员协助解决。 Cdm.0420 400 源文件或源目录不存在。 源文件或源目录不存在。 请确认源文件或源目录是否存在,修改正确后再重试。 Cdm.0423 400 目的路径存在重复文件。 目的路径存在重复文件。 请在目的路径中删除重复文件后再重试。 Cdm.0501 400 无效的URI[%s]。 无效的URI。 请指定正确的URI后,再重试。 Cdm.0518 400 连接HDFS失败。原因:%s。 连接HDFS失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0600 400 无法连接FTP服务器。 无法连接FTP服务器。 可能是由于网络不通、安全组或防火墙规则未放行、FTP主机名无法解析、FTP用户名密码错误等原因。若排除上述原因后仍无法解决,请联系客服或技术支持人员协助解决。 Cdm.0700 400 无法连接SFTP服务器。 无法连接SFTP服务器。 可能是由于网络不通、安全组或防火墙规则未放行、SFTP主机名无法解析、SFTP用户名密码错误等原因。若排除上述原因后仍无法解决,请联系客服或技术支持人员协助解决。 Cdm.0800 400 无法连接OBS服务器。 无法连接OBS服务器。 可能是由于OBS终端节点与当前区域不一致、AK/SK错误、AK/SK不是当前用户的AK/SK、安全组或防火墙规则未放行等原因。若排除上述原因后仍无法解决,请联系客服或技术支持人员协助解决。 Cdm.0801 400 OBS桶[%s]不存在。 OBS桶不存在。 指定的OBS桶可能不存在或不在当前区域,请指定正确的OBS桶后再重试。 Cdm.0831 400 无法连接到KODO服务器。原因:%s。 无法连接到KODO服务器。 请联系客服或技术支持人员协助解决。 Cdm.0900 400 表[%s]不存在。 表不存在。 请指定正确的表名后再重试。 Cdm.0901 400 无法连接数据库服务器。原因:%s。 无法连接数据库服务器。 请联系客服或技术支持人员协助解决。 Cdm.0902 400 SQL语句无法执行。原因%s。 SQL语句无法执行。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0903 400 元数据获取失败。原因:%s。 元数据获取失败。 请确认在集群的“连接管理”页面创建连接时引用符号是否正确或查看数据库表是否存在。若仍无法解决,请联系客服或技术支持人员协助解决。 Cdm.0904 400 从结果中检索数据时发生错误。原因:%s。 从结果中检索数据时发生错误。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0913 400 Schema和SQL不可以同时为空。 Schema和SQL需指定其中一项。 请确认Schema和SQL是否同时为空,请指定其中一项后,再重试。 Cdm.0916 400 增量读取情况下必须指定上次的值。 增量读取时未指定上次的值。 请指定上次的值后再重试。 Cdm.0917 400 缺少字段检查将无法获得上次的值。 缺少字段。 请联系客服或技术支持人员协助解决。 Cdm.0921 400 不支持类型%s。 类型不合法。 请指定正确的类型后再重试。 Cdm.0925 400 分区字段含有不支持的值。 分区字段含有不支持的值。 请确认分区字段是否含有不支持的值,修改正确后再重试。 Cdm.0926 400 取不到Schema。原因:%s。 获取Schema失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.0927 400 中转表不为空。 中转表不为空。 请指定一个空的中转表后再重试。 Cdm.0928 400 中转表到目的表进行数据迁移时发生错误。 中转表到目的表进行数据迁移时发生错误。 请联系客服或技术支持人员协助解决。 Cdm.0931 400 Schema字段大小[%s]与结果集的字段大小[%s]不匹配。 Schema字段大小与结果集的字段大小不匹配。 请将Schema字段大小和结果集中的字段大小改为一致后再重试。 Cdm.0932 400 找不到字段最大值。 找不到字段最大值。 请联系客服或技术支持人员协助解决。 Cdm.0934 400 不同Schema/Catalog下有重名表。 不同Schema/Catalog下有重名表。 请联系客服或技术支持人员协助解决。 Cdm.0936 400 错误脏数据条数达到上限。 错误脏数据条数达到上限。 您可以编辑作业,在作业的任务配置中将错误脏数据条数增大。 Cdm.0940 400 表名准确匹配失败。 表名准确匹配失败。 匹配不到表名,请指定正确的表名后再重试。 Cdm.0941 400 无法连接服务器。原因:[%s] 无法连接服务器。 请检查IP、主机名、端口填写是否正确,检查网络安全组和防火墙配置是否正确,参考数据库返回消息进行定位。若仍无法解决,请联系客服或技术支持人员协助解决。 Cdm.0950 400 当前认证信息无法连接到数据库。 当前认证信息无法连接到数据库。 认证信息错误,请修改正确后再重试。 Cdm.0962 400 必须指定主机IP。 未指定主机IP。 未指定主机IP,请指定主机IP后,再重试。 Cdm.0963 400 必须指定主机端口。 未指定主机端口。 未指定主机端口,请指定主机端口后,再重试。 Cdm.0964 400 必须指定数据库。 未指定数据库。 未指定数据库,请指定数据库后,再重试。 Cdm.1000 400 Hive表[%s]不存在。 Hive表不存在。 请输入正确的Hive表名后,再重试。 Cdm.1010 400 无效的URI %s。URI必须为null或有效的URI。 无效的URI。 请输入正确的URI后,再重试。下面是一些URI示例: hdfs://example.com:8020/ hdfs://example.com/ file:/// file:///tmp file://localhost/tmp Cdm.1011 400 连接Hive失败,原因:%s。 连接Hive失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1100 400 表[%s]不存在。 表不存在。 请确认表是否存在,输入正确的表名后再重试。 Cdm.1101 400 获取连接失败,原因:%s。 获取连接失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1102 400 创表失败,原因:%s。 创建表失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1103 400 未设置Rowkey。 未设置Rowkey。 请设置Rowkey后再重试。 Cdm.1104 400 打开表格失败。原因:%s。 打开表格失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1105 400 作业初始化失败。原因%s。 作业初始化失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1111 400 表名不能为空。 表名为空。 请输入正确的表名后,再重试。 Cdm.1114 400 Rowkey为空,请在字段映射步骤重新设置。 Rowkey为空。 请按照错误提示进行处理。 Cdm.1115 400 Columns为空,请在字段映射步骤重新设置。 Columns为空。 请按照错误提示进行处理。 Cdm.1116 400 列名重复,请在字段映射步骤重新设置。 列名重复。 请按照错误提示进行处理。 Cdm.1117 400 判断表格是否存在失败,原因:%s。 判断表格是否存在失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1118 400 表%s不包含列族%s。 表中不包含列族。 请指定列族后再重试。 Cdm.1120 400 表中有数据,请清空表数据或重新设置导入前是否清空表数据配置项。 表中有数据,请清空表数据或重新设置导入前是否清空表数据配置项。 请按照错误提示进行处理。 Cdm.1121 400 关闭连接已失败。原因:%s。 关闭连接失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1201 400 不能连接到Redis服务器,原因:%s。 无法连接到Redis服务器。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1203 400 从Redis服务器抽取数据失败,原因:%s。 从Redis服务器获取数据失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1205 400 Redis值前缀不能为空白符。 Redis值前缀不能为空白符。 请去除Redis前缀前的空白符,然后再重试。 Cdm.1206 400 Redis值存储类型必须指定为“string”或“hash”。 Redis值存储类型必须指定为“string”或“hash”。 请按照错误提示进行处理。 Cdm.1207 400 当值存储类型为“string”时,必须指定值分隔符。 值存储类型为“string”,未指定值分隔符。 请指定分隔符后再重试。 Cdm.1208 400 Redis存储字段列表必须指定。 Redis存储字段列表未指定。 请指定Redis存储字段列表后再重试。 Cdm.1209 400 Redis键分隔符不能为空白符。 Redis键分隔符不能为空白符。 请输入正确的分隔符后,再重试。 Cdm.1210 400 必须指定Redis主键字段列表。 Redis主键字段列表未指定。 请指定Redis主键字段列表后再重试。 Cdm.1211 400 Redis主键字段列表必须在字段列表中存在。 Redis主键字段列表不在字段列表中。 请指定Redis主键字段列表后再重试。 Cdm.1213 400 必须指定Redis服务器列表。 未指定Redis服务器列表。 请指定Redis服务器列表后再重试。 Cdm.1301 400 不能连接到MongoDB服务器,原因:%s。 连接到MongoDB服务器失败 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1302 400 从MongoDB服务器抽取数据失败,原因:%s。 从MongoDB服务器抽取数据失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1304 400 必须指定MongoDB服务器的集合。 未指定MongoDB服务器的集合。 未指定MongoDB服务器的集合,请指定后,再重试。 Cdm.1305 400 必须指定MongoDB服务列表。 未指定MongoDB服务列表。 未指定MongoDB服务列表,请指定后,再重试。 Cdm.1306 400 必须指定MongoDB服务的数据库名称。 未指定MongoDB服务的数据库名称。 未指定MongoDB服务的数据库名称,请指定数据库后,再重试。 Cdm.1307 400 必须指定MongoDB服务的字段列表。 未指定MongoDB服务的字段列表。 未指定MongoDB服务的字段列表,请指定字段列表后,再重试。 Cdm.1501 400 不能连接到Elasticsearch服务器,原因:%s。 无法连接到Elasticsearch服务器 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1502 400 向Elasticsearch服务器写入数据失败,原因:%s。 向Elasticsearch服务器写入数据失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1503 400 关闭Elasticsearch连接失败,原因:%s。 关闭Elasticsearch连接失败。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1504 400 获取Elasticsearch索引错误,原因:%s。 获取Elasticsearch索引错误 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1505 400 获取Elasticsearch类型错误,原因:%s。 获取Elasticsearch类型错误。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1506 400 获取Elasticsearch文档字段错误,原因:%s。 获取Elasticsearch文档字段错误。 请根据错误提示进行定位,若无法解决,请联系客服或技术支持人员协助解决。 Cdm.1508 400 必须指定Elasticsearch服务器主机名或IP地址。 未指定Elasticsearch服务器主机名或IP地址。 未指定Elasticsearch服务器主机名或IP地址,请指定后,再重试。 Cdm.1510 400 必须指定Elasticsearch索引。 未指定Elasticsearch索引。 当前未指定Elasticsearch索引,请指定后再重试。 Cdm.1511 400 必须指定Elasticsearch类型。 未指定Elasticsearch类型。 当前未指定Elasticsearch类型,请指定后再重试。 Cdm.1513 400 字段列表中必须包含字段类型定义。 字段列表中未包含字段类型定义。 请确认字段列表中是否包含字段类型定义,修改正确后再重试。 Cdm.1514 400 字段列表中必须包含主键字段。 未设置主键字段。 当前未设置主键字段,请设置主键字段后再重试。 Cdm.1516 400 非法列名%s。 列名不合法。 请确认列名是否合法,输入正确的列名后再重试。 Cdm.1517 400 获取文档数量产生错误。 获取文档数量产生错误。 请联系客服或技术支持人员协助解决。 Cdm.1519 400 抽取数据错误。 抽取数据错误。 请联系客服或技术支持人员协助解决。 Cdm.1601 400 连接服务器失败。 连接服务器失败。 请联系客服或技术支持人员协助解决。 Cdm.1603 400 获取topic %s的样值失败。 获取topic样值失败。 请联系客服或技术支持人员协助解决。 Cdm.1604 400 topic %s没有数据。 该topic中无数据。 该topic中无数据,请排查无数据的原因。或者,请改为其他topic后再重试。 父主题: 附录
-
调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取,接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可参考IAM文档获取。 接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。当返回多个id,请依据实际的区域(name)获取。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "region-name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" } }
-
JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.useSql", "value": "false" }, { "name": "fromJobConfig.schemaName", "value": "rf_database" }, { "name": "fromJobConfig.tableName", "value": "rf_from" }, { "name": "fromJobConfig.columnList", "value": "AA&BB" }, { "name": "fromJobConfig.incrMigration", "value": "false" } ], "name": "fromJobConfig" } ] }
-
JSON样例 "from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.hive", "value": "hive" }, { "name": "fromJobConfig.database", "value": "rf_database" }, { "name": "fromJobConfig.table", "value": "rf_from" }, { "name": "fromJobConfig.columnList", "value": "tiny&small&int&integer&bigint&float&double×tamp&char&varchar&text" } ], "name": "fromJobConfig" } ] }
-
参数说明 参数 是否必选 类型 说明 fromJobConfig.hive 否 String 待抽取数据的数据源,作业源端为Hive时,这里为“hive”。 fromJobConfig.database 否 String 待抽取数据的数据库,例如“default”。 fromJobConfig.table 是 String 待抽取数据的表名,例如“cdm”。 fromJobConfig.columnList 否 String 需要抽取的列号,列号之间使用“&”分割,并由小到大排序,例如:“1&3&5”。
-
响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 validation-result Array of JobValidationResult objects 校验结构:如果停止作业接失败,返回失败原因,请参见validation-result参数说明。如果停止成功,返回空列表。 表4 JobValidationResult 参数 参数类型 描述 message String 错误描述 status String ERROR,WARNING 枚举值: ERROR WARNING
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- ...
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章