华为云用户手册

  • 弹性伸缩组 权限 对应API接口 授权项 IAM 项目 (Project) 企业项目 (Enterprise Project) 创建弹性伸缩组 POST /autoscaling-api/v1/{project_id}/scaling_group as:groups:create √ √ 查询弹性伸缩组列表 GET /autoscaling-api/v1/{project_id}/scaling_group as:groups:list √ √ 查询弹性伸缩组详情 GET /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id} as:groups:get √ √ 修改弹性伸缩组 PUT /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id} as:groups:update √ √ 删除弹性伸缩组 DELETE /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id} as:groups:delete √ √ 启用或停止弹性伸缩组 POST /autoscaling-api/v1/{project_id}/scaling_group/{scaling_group_id}/action as:groups:action √ √ 父主题: 权限和授权项
  • AK/SK认证 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):私有访问密钥。与访问密钥ID结合使用,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Token可通过调用获取用户Token接口获取。 调用本服务API需要项目级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", //IAM用户名 "password": $ADMIN_PASS, //IAM用户密码,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 "domain": { "name": "domainname" //IAM用户所属账号名 } } } }, "scope": { "project": { "name": "xxxxxxxx" //项目名称 } } }} 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 123 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/usersContent-Type: application/jsonX-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333。
  • 请求URI 请求URI由如下部分组成: {URI-scheme}://{Endpoint}/{resource-path}?{query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器 域名 或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。 例如IAM服务在“华北-北京四”区域的Endpoint为“iam.cn-north-4.myhuaweicloud.com”。 resource-path 资源路径,即API访问路径。从具体API的URI模块获取,例如“获取用户Token”API的resource-path为“/v3/auth/tokens”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“?limit=10”,表示查询不超过10条数据。 例如您需要创建IAM用户,由于IAM为全局服务,则使用任一区域的Endpoint,比如“华北-北京四”区域的Endpoint(iam.cn-north-4.myhuaweicloud.com),并在管理员创建IAM用户的URI部分找到resource-path(/v3.0/OS-USER/users),拼接起来如下所示。 1 https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users 图1 URI示意图 为方便查看,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而Endpoint在同一个区域也相同,所以简洁起见将这两部分省略。
  • 请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在管理员创建IAM用户的URI部分,您可以看到其请求方法为“POST”,则其请求为: 1 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/users
  • 请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 否 使用AK/SK认证时该字段必选。 code.test.com or code.test.com:443 Content-Type 消息体的类型(格式)。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 是 application/json Content-Length 请求body长度,单位为Byte。 否 3495 X-Project-Id project id,项目编号。请参考获取项目ID章节获取项目编号。 否 如果是专属云场景采用AK/SK认证方式的接口请求,或者多project场景采用AK/SK认证的接口请求,则该字段必选。 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,该接口是唯一不需要认证的接口。 请求响应成功后在响应消息头(Headers)中包含的“X-Subject-Token”的值即为Token值。 否 使用Token认证时该字段必选。 注:以下仅为Token示例片段。 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ API同时支持使用AK/SK认证,AK/SK认证使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于管理员创建IAM用户接口,使用AK/SK方式认证时,添加消息头后的请求如下所示。 1234 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/usersContent-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=****************
  • 请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。 accountid为IAM用户所属的账号ID。 username为要创建的IAM用户名。 email为IAM用户的邮箱。 **********为IAM用户的登录密码。 POST https://iam.cn-north-4.myhuaweicloud.com/v3.0/OS-USER/usersContent-Type: application/json X-Sdk-Date: 20240416T095341Z Authorization: SDK-HMAC-SHA256 Access=****************, SignedHeaders=content-type;host;x-sdk-date, Signature=**************** { "user": { "domain_id": "accountid", "name": "username", "password": "**********", "email": "email", "description": "IAM User Description" } } 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取用户Token接口,返回的响应消息头中的“X-Subject-Token”就是需要获取的用户Token。有了Token之后,您就可以使用Token认证调用其他API。
  • 操作步骤 Token认证,具体操作请参考认证鉴权。 获取项目ID(project_id),具体操作请参考获取项目ID。 在Request Header中增加“Content-Type”键,值为“application/json”。 在Request Header中增加“X-Auth-Token”键,值为1获取到的token。 发送“POST https://AS的Endpoint/v1/{project_id}/scaling_group”,project_id为2获取到的项目ID。 在Request Body中传入参数如下: { "scaling_group_name": "GroupNameTest",//伸缩组名称(必填String) "scaling_configuration_id": "47683a91-93ee-462a-a7d7-484c006f4440",//伸缩配置ID(非必填String,但启动伸缩组时组内必有伸缩配置) "desire_instance_number": 0,//期望实例数(非必填Integer) "min_instance_number": 0,//最小实例数(非必填Integer) "max_instance_number": 0,//最大实例数(非必填Integer) "cool_down_time": 200,//冷却时间(非必填Integer) "health_periodic_audit_method": "NOVA_AUDIT",//伸缩组实例健康检查方式(非必填String) "health_periodic_audit_time": 5,//伸缩组实例健康检查周期(非必填Integer) "instance_terminate_policy": "OLD_CONFIG_OLD_INSTANCE",//伸缩组实例移除策略(非必填String) "vpc_id": "a8327883-6b07-4497-9c61-68d03ee193a",//VPC信息(必填String) "networks": [ { "id": "3cd35bca-5a10-416f-8994-f79169559870" } ]//子网信息(必填列表数据结构)} 请求响应成功后,返回scaling_group_id。表示弹性伸缩组创建成功。 若请求失败,则会返回错误码及对应的错误信息说明,详细请参考错误码。 根据获取到的scaling_group_id,可对弹性伸缩组进行查询、修改、删除等操作。
  • API概览 通过使用弹性伸缩所提供的接口,您可以完整的使用弹性伸缩的所有功能,例如创建伸缩组。弹性伸缩支持的接口见表1。 表1 弹性伸缩接口说明 子类型 说明 弹性伸缩组 实现伸缩组的创建、查询、修改、删除等操作。 弹性伸缩配置 实现伸缩配置的创建、查询、删除等操作。 弹性伸缩实例 实现伸缩实例的查询、移出伸缩组等操作。 弹性伸缩策略 实现伸缩策略的创建、查询、修改、删除等操作。 伸缩策略执行日志 查询伸缩策略执行的历史记录。 伸缩活动日志 查询伸缩活动日志。 配额 查询指定租户的弹性伸缩组、伸缩配置、伸缩策略和伸缩实例的配额总数及已使用配额数。 通知 提供配置伸缩组通知、查询伸缩组通知列表和删除伸缩组通知功能。 生命周期挂钩 提供创建、查询、修改和删除生命周期挂钩等功能。 标签管理 提供查询租户或资源标签、创建或删除标签和查询资源实例的功能。 弹性伸缩API管理 提供查询弹性伸缩API版本信息的功能。
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目列表API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点,可以从地区和终端节点获取。接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。 { "projects": [ { "domain_id": "65ewtrgaggshhk1223245sghjlse684b", "is_domain": false, "parent_id": "65ewtrgaggshhk1223245sghjlse684b", "name": "project_name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4adasfjljaaaakla12334jklga9sasfg" }, "id": "a4adasfjljaaaakla12334jklga9sasfg", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • 返回值 正常 204 异常 返回值 说明 400 Bad Request 服务器未能处理请求。 401 Unauthorized 被请求的页面需要用户名和密码。 403 Forbidden 对被请求的页面访问禁止。 404 Not Found 服务器无法找到被请求的页面。 405 Method Not Allowed 请求中指定的方法不被允许。 406 Not Acceptable 服务器生成的响应无法被客户端所接受。 407 Proxy Authentication Required 用户必须首先使用代理服务器进行验证,这样请求才会被处理。 408 Request Timeout 请求超出了服务器的等待时间。 409 Conflict 由于冲突,请求无法被完成。 500 Internal Server Error 请求未完成。服务异常。 501 Not Implemented 请求未完成。服务器不支持所请求的功能。 502 Bad Gateway 请求未完成。服务器从上游服务器收到一个无效的响应。 503 Service Unavailable 请求未完成。系统暂时异常。 504 Gateway Timeout 网关超时。
  • 响应消息体(可选) 该部分可选。响应消息体通常以结构化格式(如JSON或XML)返回,与响应消息头中Content-Type对应,传递除响应消息头之外的内容。 对于管理员创建IAM用户接口,返回如下消息体。为篇幅起见,这里只展示部分内容。 { "user": { "id": "c131886aec...", "name": "IAMUser", "description": "IAM User Description", "areacode": "", "phone": "", "email": "***@***.com", "status": null, "enabled": true, "pwd_status": false, "access_mode": "default", "is_domain_owner": false, "xuser_id": "", "xuser_type": "", "password_expires_at": null, "create_time": "2024-05-21T09:03:41.000000", "domain_id": "d78cbac1..........", "xdomain_id": "30086000........", "xdomain_type": "", "default_project_id": null } } 当接口调用出错时,会返回错误码及错误信息说明,错误响应的Body体格式如下所示。 { "error_msg": The request message format is invalid.", "error_code": "AS.0001"} 其中,error_code表示错误码,error_msg表示错误描述信息。
  • 操作场景 标签是用户自定义的、用于标识云资源的键值对,它可以帮助用户对云资源进行分类和搜索。标签由标签“键”和标签“值”组成。 如果用户在其他云服务中使用了标签,建议用户为同一个业务所使用的云资源创建相同的标签键值对以保持一致性。 如您的组织已经设定 DLI 的相关标签策略,则需按照标签策略规则为资源添加标签。标签如果不符合标签策略的规则,则可能会导致资源创建失败,请联系组织管理员了解标签策略详情。 DLI支持以下两类标签: 资源标签:在DLI中创建的非全局的标签。 预定义标签:在标签管理服务(简称TMS)中创建的预定义标签,属于全局标签。 有关预定义标签的更多信息,请参见《标签管理服务用户指南》。 以下介绍如何为跨源连接添加标签、修改标签和删除标签。
  • 使用 CTS 审计DLI服务 通过 云审计 服务,您可以记录与DLI服务相关的操作事件,便于日后的查询、审计和回溯。 表1 云审计服务支持的DLI操作列表 操作名称 资源类型 事件名称 创建数据库 database createDatabase 删除数据库 database deleteDatabase 修改数据库所有者 database alterDatabaseOwner 创建表 table createTable 删除表 table deleteTable 导出表数据 table exportData 导入表数据 table importData 修改表的所有者 table alterTableOwner 创建队列 queue createQueue 删除队列 queue deleteQueue 队列授权 queue queueAuthorize 修改队列网段 queue replaceQueue 重启队列 queue queueActions 扩容/缩容队列 queue queueActions 提交作业(SQL) queue submitJob 取消作业(SQL) jobs cancelJob 授权obs桶给DLI服务 obs authorizeObsBucketsForStream 检查SQL语法 jobs checkSQL 删除作业 jobs deleteStreamJob 创建Flink opensource sql作业 jobs createStreamSqlJob 更新Flink opensource sql作业 jobs updateStreamSqlJob 批量删除Flink作业 jobs deleteStreamJobs 停止Flink作业 jobs stopStreamJobs 提交Flink作业 jobs submitStreamJobs 创建Flink jar作业 jobs createStreamJarJob 更新Flink jar作业 jobs updateStreamJarJob 查看flink作业 jobs checkStreamJob 导入保存点 jobs dealSavepoint 购买cu时套餐包 order orderPackage 数据授权 authorization dataAuthorize 跨项目数据授权 authorization projectDataAuthorize 导出查询结果 jobs storeJobResult 保存SQL模板 template createTemplate 更新SQL模板 template updateTemplate 删除SQL模板 template deleteTemplates 新建Flink模板 template createStreamTemplate 更新Flink模板 template updateStreamTemplate 查看Flink模板 template checkStreamTemplate 删除Flink模板 template deleteStreamTemplate 创建认证信息并上传证书 datasourceauth uploadAuthInfo 更新跨源认证信息 datasourceauth updateAuthInfo 删除跨源认证信息 datasourceauth deleteAuthInfo 上传资源包 resource uploadResources 删除资源包 resource deleteResource 创建增强型跨源连接 edsconnection createConnection 删除增强型跨源连接 edsconnection deleteConnection 创建经典型跨源连接 edsconnection createConnection 删除经典型跨源连接 edsconnection deleteConnection 绑定队列 edsconnection associateQueueToConnection 解绑队列 edsconnection disassociateQueueToConnection 修改主机信息 edsconnection updateHostInfo 添加路由 edsconnection addRoute 删除路由 edsconnection deleteRoute 创建批处理作业 jobs createBatch 取消批处理作业 jobs cancelBatch 创建全局变量 variable createGlobalVariable 删除全局变量 variable deleteGlobalVariable 修改全局变量 variable updateGlobalVariable 关于如何开通云审计服务以及如何查看追踪事件,请参考《云审计服务快速入门》中的相关章节。 关于云审计服务事件结构的关键字段详解,请参见《云审计服务用户指南》中的事件结构和事件样例。
  • 操作场景 增强型跨源支持项目级授权,授权后,项目内的用户具备该增强型跨源连接的操作权。可查看该增强型跨源连接、可将创建的弹性资源池与该增强型跨源连接绑定、可自定义路由等操作。以此实现增强型跨源连接的跨项目应用。本节操作介绍对增强型跨源连接授权或回收权限的操作步骤。 如果被授权的项目属于相同区域(region)的不同用户,则需使用被授权项目所属的用户账号进行登录。 如果被授权的项目属于相同区域(region)的同一用户,则需使用当前账号切换到对应的项目下。
  • 应用示例 项目B需要访问项目A上的数据源,对应操作如下。 对于项目A: 使用项目A对应的账号登录DLI服务。 通过对应数据源的VPC信息在DLI服务中创建增强型跨源连接“ds”。 将增强型跨源连接“ds”授权给项目B。 对于项目B: 使用项目B对应的账号登录DLI服务。 对增强型跨源连接“ds”进行绑定队列操作。 (可选)设置主机信息,创建路由。 通过上述操作项目A的增强型跨源连接与项目B的队列创建了对等连接和路由,即可在项目B的队列上创建作业访问项目A的数据源。
  • 步骤二:数据迁移 配置 CDM 数据源连接。 创建源端DWS数据库的连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“ 数据仓库 服务(DWS)”,单击“下一步”。 配置连接DWS的数据源连接参数,具体参数配置如下。 表1 DWS数据源配置 参数 值 名称 自定义DWS数据源名称。例如当前配置为:source_dws。 数据库服务器 单击输入框旁边的“选择”按钮,选择当前已创建的DWS集群名称。 端口 DWS数据库的端口,默认为:8000。 数据库名称 当前需要迁移的DWS数据库名称。当前示例为DWS集群上创建数据库和表中创建的数据库“testdwsdb”。 用户名 待连接数据库的用户。该数据库用户需要有数据表的读写权限,以及对元数据的读取权限。 本示例使用创建DWS数据库实例的默认管理员用户“dbadmin”。 密码 对应的DWS数据库用户的密码。 图2 CDM配置DWS数据源 其他更多参数保持默认即可,如果需要了解更多参数说明,可以参考配置关系数据库连接。单击“保存”完成DWS数据源连接配置。 创建目的端DLI数据源的连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“ 数据湖探索 (DLI)”,单击“下一步”。 图3 创建DLI数据源连接 配置目的端DLI数据源连接。具体参数配置可以参考在CDM上配置DLI连接。 图4 创建DLI数据源连接 配置完成后,单击“保存”完成DLI数据源配置。 创建CDM迁移作业。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。 在新建作业界面,配置当前作业配置信息,具体参数参考如下: 图5 CDM数据迁移作业配置 作业名称:自定义数据迁移的作业名称。例如,当前定义为:test。 源端作业配置,具体参考如下: 表2 源端作业配置 参数名 参数值 源连接名称 选择1.a中已创建的数据源名称。 使用SQL语句 “使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。 本示例当前选择为“否”。 模式或表空间 “使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。 本示例因为DWS集群上创建数据库和表中没有创建SCHEMA,则本参数为默认的“public”。 如果选择界面没有待选择的模式或表空间,请确认对应连接里的账号是否有元数据查询的权限。 说明: 该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如: SCHEMA*表示导出所有以“SCHEMA”开头的数据库。 *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。 *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。 表名 待迁移的DWS数据表名。当前为DWS集群上创建数据库和表中的“table1”表。 更多详细参数配置请参考配置关系数据库源端参数。 目的端作业参数配置,具体参考如下: 表3 目的端作业配置 参数名 参数值 目的连接名称 选择已创建的DLI数据源连接。 资源队列 选择已创建的DLI SQL类型的队列。 数据库名称 选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表创建的数据库名,即为“testdb”。 表名 选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表创建的表名,即为“tabletest”。 导入前清空数据 选择导入前是否清空目的表的数据。当前示例选择为“否”。 如果设置为是,任务启动前会清除目标表中数据。 详细的参数配置可以参考:CDM配置DLI目的端参数。 单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。 如果字段映射顺序不匹配,可通过拖拽字段调整。 如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。 CDM支持迁移过程中转换字段内容,详细请参见字段转换。 图6 字段映射 单击“下一步”配置任务参数,一般情况下全部保持默认即可。 该步骤用户可以配置如下可选功能: 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。 图7 迁移作业进度和结果查询
  • 前提条件 已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。 创建DLI队列时队列类型需要选择为“SQL队列”。 已创建数据仓库服务DWS集群。具体创建DWS集群的操作可以参考创建DWS集群。 已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。 如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 数据源为云上的DWS、 MRS 等服务时,网络互通需满足如下条件: i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。 配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。 本示例CDM集群的虚拟私有云、子网以及安全组和DWS集群保持一致。
  • 步骤一:数据准备 DWS集群上创建数据库和表。 参考使用gsql命令行客户端连接DWS集群连接已创建的DWS集群。 执行以下命令连接DWS集群的默认数据库“gaussdb”: gsql -d gaussdb -h DWS集群连接地址 -U dbadmin -p 8000 -W password -r gaussdb:DWS集群默认数据库。 DWS集群连接地址:请参见获取集群连接地址进行获取。如果通过公网地址连接,请指定为集群“公网访问地址”或“公网访问域名”,如果通过内网地址连接,请指定为集群“内网访问地址”或“内网访问域名”。如果通过弹性负载均衡连接,请指定为“弹性负载均衡地址”。 dbadmin:创建集群时设置的默认管理员用户名。 -W:默认管理员用户的密码。 在命令行窗口输入以下命令创建数据库“testdwsdb”。 CREATE DATABASE testdwsdb; 执行以下命令,退出gaussdb数据库,连接新创建的数据库“testdwsdb”。 \qgsql -d testdwsdb -h DWS集群连接地址 -U dbadmin -p 8000 -W password -r 执行以下命令创建表并插入数据。 创建表: CREATE TABLE table1(id int, a char(6), b varchar(6),c varchar(6)) ; 插入表数据: INSERT INTO table1 VALUES(1,'123','456','789');INSERT INTO table1 VALUES(2,'abc','efg','hif'); 查询表数据确认数据插入成功。 select * from table1; 图1 查询表数据 在DLI上创建数据库和表。 登录DLI管理控制台,选择“SQL编辑器”,在SQL编辑器中“执行引擎”选择“spark”,“队列”选择已创建的SQL队列。 在编辑器中输入以下语句创建数据库,例如当前创建迁移后的DLI数据库testdb。详细的DLI创建数据库的语法可以参考创建DLI数据库。 create database testdb; 在“SQL编辑器”中,数据库选择“testdb”,执行以下建表语句创建数据库下的表。详细的DLI建表语法可以参考创建DLI表。 create table tabletest(id INT, name1 string, name2 string, name3 string);
  • DLI支持的Prometheus基础监控指标 表1提供了DLI支持的Prometheus基础监控指标, AOM Prometheus支持免费存储基础指标。 除基础指标外,AOM Prometheus提供的自定义指标按计费规则付费使用。 表1 DLI支持的Prometheus监控指标 监控指标 指标含义 flink_jobmanager_Status_JVM_CPU_Load JobManager CPU的负载 flink_jobmanager_Status_JVM_CPU_Time JobManager CPU的使用 flink_taskmanager_Status_JVM_CPU_Load TaskManager CPU的负载 flink_taskmanager_Status_JVM_CPU_Time TaskManager CPU的使用 flink_jobmanager_Status_JVM_Memory_Heap_Used JobManager的堆内存使用量 flink_jobmanager_Status_JVM_Memory_Heap_Committed 保证JobManager的JVM可用的堆内存量 flink_jobmanager_Status_JVM_Memory_Heap_Max JobManager中可用于内存管理的最大堆内存量 flink_jobmanager_Status_JVM_Memory_NonHeap_Used JobManager的堆外内存使用量 flink_jobmanager_Status_JVM_Memory_NonHeap_Committed 保证JobManager的JVM可用的堆外内存量 flink_jobmanager_Status_JVM_Memory_NonHeap_Max JobManager中可用于内存管理的最大堆外内存量 flink_jobmanager_Status_JVM_Memory_Metaspace_Used JobManager MetaSpace内存池中当前使用的内存量 flink_jobmanager_Status_JVM_Memory_Metaspace_Committed JobManager MetaSpace内存池中保证可供JVM使用的内存量 flink_jobmanager_Status_JVM_Memory_Metaspace_Max JobManager MetaSpace内存池中可以使用的最大内存量 flink_jobmanager_Status_JVM_Memory_Direct_Count JobManager direct缓冲池中的缓冲区数 flink_jobmanager_Status_JVM_Memory_Direct_MemoryUsed JobManager中JVM用于direct缓冲池的内存量 flink_jobmanager_Status_JVM_Memory_Direct_TotalCapacity JobManager中direct缓冲池中所有缓冲区的总容量 flink_jobmanager_Status_JVM_Memory_Mapped_Count JobManager中mapped缓冲池中的缓冲区个数 flink_jobmanager_Status_JVM_Memory_Mapped_MemoryUsed JobManager中JVM用于mapped缓冲池的内存量 flink_jobmanager_Status_JVM_Memory_Mapped_TotalCapacity JobManager中mapped缓冲池中所有缓冲区的总容量 flink_jobmanager_Status_Flink_Memory_Managed_Used JobManager中已使用的托管内存量 flink_jobmanager_Status_Flink_Memory_Managed_Total JobManager中托管内存总量 flink_taskmanager_Status_JVM_Memory_Heap_Used TaskManager的堆内存使用量 flink_taskmanager_Status_JVM_Memory_Heap_Committed 保证TaskManager的JVM可用的堆内存量 flink_taskmanager_Status_JVM_Memory_Heap_Max TaskManager中可用于内存管理的最大堆内存量 flink_taskmanager_Status_JVM_Memory_NonHeap_Used TaskManager的堆外内存使用量 flink_taskmanager_Status_JVM_Memory_NonHeap_Committed 保证TaskManager的JVM可用的堆外内存量 flink_taskmanager_Status_JVM_Memory_NonHeap_Max TaskManager中可用于内存管理的最大堆外内存量 flink_taskmanager_Status_JVM_Memory_Metaspace_Used TaskManager MetaSpace内存池中当前使用的内存量 flink_taskmanager_Status_JVM_Memory_Metaspace_Committed TaskManager MetaSpace内存池中保证可供JVM使用的内存量 flink_taskmanager_Status_JVM_Memory_Metaspace_Max TaskManager MetaSpace内存池中可以使用的最大内存量 flink_taskmanager_Status_JVM_Memory_Direct_Count TaskManager direct缓冲池中的缓冲区数 flink_taskmanager_Status_JVM_Memory_Direct_MemoryUsed TaskManager中JVM用于direct缓冲池的内存量 flink_taskmanager_Status_JVM_Memory_Direct_TotalCapacity TaskManager中direct缓冲池中所有缓冲区的总容量 flink_taskmanager_Status_JVM_Memory_Mapped_Count TaskManager中mapped缓冲池中的缓冲区个数 flink_taskmanager_Status_JVM_Memory_Mapped_MemoryUsed TaskManager中JVM用于mapped缓冲池的内存量 flink_taskmanager_Status_JVM_Memory_Mapped_TotalCapacity TaskManager中mapped缓冲池中所有缓冲区的总容量 flink_taskmanager_Status_Flink_Memory_Managed_Used TaskManager中已使用的托管内存量 flink_taskmanager_Status_Flink_Memory_Managed_Total TaskManager中托管内存总量 flink_jobmanager_Status_JVM_Threads_Count JobManager中活动的线程总数 flink_taskmanager_Status_JVM_Threads_Count TaskManager中活动中的线程总数 flink_jobmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_Count JobManager CMS垃圾回收器的回收次数 flink_jobmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_Time JobManager CMS执行垃圾回收总耗时 flink_jobmanager_Status_JVM_GarbageCollector_ParNew_Count JobManager GC次数 flink_jobmanager_Status_JVM_GarbageCollector_ParNew_Time JobManager每次GC时间 flink_taskmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_Count TaskManager CMS垃圾回收器的回收次数 flink_taskmanager_Status_JVM_GarbageCollector_ConcurrentMarkSweep_Time TaskManager CMS执行垃圾回收总耗时 flink_taskmanager_Status_JVM_GarbageCollector_ParNew_Count TaskManager GC次数 flink_taskmanager_Status_JVM_GarbageCollector_ParNew_Time TaskManager每次GC时间 flink_jobmanager_Status_JVM_ClassLoader_ClassesLoaded JobManager自JVM启动以来加载的类的总数 flink_jobmanager_Status_JVM_ClassLoader_ClassesUnloaded JobManager自JVM启动以来卸载的类的总数 flink_taskmanager_Status_JVM_ClassLoader_ClassesLoaded TaskManager自JVM启动以来加载的类的总数 flink_taskmanager_Status_JVM_ClassLoader_ClassesUnloaded TaskManager自JVM启动以来卸载的类的总数 flink_taskmanager_Status_Network_AvailableMemorySegments TaskManager未使用的内存segments的个数 flink_taskmanager_Status_Network_TotalMemorySegments TaskManager中分配的内存segments的总数 flink_taskmanager_Status_Shuffle_Netty_AvailableMemorySegments TM未使用的内存segments的个数 flink_taskmanager_Status_Shuffle_Netty_UsedMemorySegments TM已使用的内存segments的个数 flink_taskmanager_Status_Shuffle_Netty_TotalMemorySegments TM分配的内存segments的个数 flink_taskmanager_Status_Shuffle_Netty_AvailableMemory TM中未使用的内存量 flink_taskmanager_Status_Shuffle_Netty_UsedMemory TM中已使用的内存量 flink_taskmanager_Status_Shuffle_Netty_TotalMemory TM中分配的内存量 flink_jobmanager_job_numRestarts 自作业提交以来的重新启动总数 flink_jobmanager_job_lastCheckpointDuration 完成最新checkpoint所用的时间 flink_jobmanager_job_lastCheckpointSize 最新checkpoint的大小,如果启用了增量检查点或更改日志,则此度量可能与lastCheckpointFullSize不同。 flink_jobmanager_job_numberOfInProgressCheckpoints 正在进行的checkpoint的数量 flink_jobmanager_job_numberOfCompletedCheckpoints 成功完成的checkpoint的数量 flink_jobmanager_job_numberOfFailedCheckpoints 失败的checkpoint的数量 flink_jobmanager_job_totalNumberOfCheckpoints 所有checkpoint的总数 flink_taskmanager_job_task_numBytesOut Task输出的字节总数 flink_taskmanager_job_task_numBytesOutPerSecond Task每秒输出的字节总数 flink_taskmanager_job_task_isBackPressured Task是否反压 flink_taskmanager_job_task_numRecordsIn Task收到的记录总数 flink_taskmanager_job_task_numRecordsInPerSecond Task每秒收到的记录总数 flink_taskmanager_job_task_numBytesIn Task收到的字节数 flink_taskmanager_job_task_numBytesInPerSecond Task每秒收到的字节数 flink_taskmanager_job_task_numRecordsOut Task发出的记录总数 flink_taskmanager_job_task_numRecordsOutPerSecond Task每秒发出的记录总数 flink_taskmanager_job_task_operator_numRecordsIn Operator收到的记录总数 flink_taskmanager_job_task_operator_numRecordsInPerSecond Operator每秒收到的记录总数 flink_taskmanager_job_task_operator_numRecordsOut Operator发出的记录总数 flink_taskmanager_job_task_operator_numRecordsOutPerSecond Operator每秒发出的记录总数 flink_taskmanager_job_task_operator_sourceIdleTime Source 闲置时长 flink_taskmanager_job_task_operator_currentEmitEventTimeLag 数据的事件时间与数据离开 Source 时的间隔 flink_taskmanager_job_task_operator_pendingRecords 尚未被 Source 拉取的数据数量 父主题: 使用AOM监控DLI服务
  • DLI对接AOM Prometheus监控的配置项 在配置DLI对接AOM Prometheus监控时,系统会自动完成DLI对接AOM Prometheus监控的配置项中的参数配置。如果这些默认配置不满足您的需求,您可以在Flink作业的“自定义配置”中手动配置以下参数,且优先以您的配置为准。 表1 DLI对接AOM Prometheus监控的配置项 参数 是否必选 默认值 数据类型 默认值 说明 metrics.reporter.remote.class 是 无 String com.huawei.flink.metrics.prometheus.remote.PrometheusRemoteReporter metric reporter的类名。 metrics.reporter.remote.factory.class 是 无 String com.huawei.flink.metrics.prometheus.remote.PrometheusRemoteReporterFactory metric reporter所对应的Factory类型。 metrics.reporter.remote.interval 是 无 Duration 30 SECONDS 指标上报周期,建议为30秒,若太低会上报过于频繁。 metrics.reporter.remote.remote-write-url 是 无 String - AOM Prometheus通用类型的remote write url。 自定义配置url的时候url里不需要添加https://,系统会自动拼接https。 配置样例: aom-internal-access.{regionId}.xxxxx.com:8xx3/v1/{projectId}/{prometheusId}/push metrics.reporter.remote.report-all-metrics 否 false Boolean false 是否上报所有指标。默认为false,即只上报基础指标。 metrics.reporter.remote.pool-name 否 None String - 为指标加上当前作业所在的弹性资源池名称作为标签。 metrics.reporter.remote.dli-job-id 否 None String - 为指标加上当前作业的DLI Flink作业ID作为标签。 metrics.reporter.remote.dli-job-name 否 None String - 为指标加上当前作业的DLI Flink作业名称作为标签。 父主题: 使用AOM监控DLI服务
  • 前提条件 已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。 创建DLI队列时队列类型需要选择为“SQL队列”。 已创建Elasticsearch类型的 CSS 集群。具体创建 CS S集群的操作可以参考创建CSS集群。 本示例创建的CSS集群版本为:7.6.2,集群为非安全集群。 已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。 如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 数据源为云上的CSS服务时,网络互通需满足如下条件: i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。 配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。 本示例CDM集群的虚拟私有云、子网以及安全组和创建的CSS集群保持一致。
  • 步骤二:数据迁移 配置CDM数据源连接。 配置源端CSS的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“ 云搜索服务 ”,单击“下一步”。 图1 创建CSS数据源 配置源端CSS的数据源连接,具体参数配置如下。详细参数配置可以参考CDM上配置CSS连接。 表1 CSS数据源配置 参数 值 名称 自定义CSS数据源名称。例如当前配置为“source_css”。 Elasticsearch服务器列表 单击输入框旁边的“选择”按钮,选择当前CSS集群即可自动关联出来Elasticsearch服务器列表。 安全模式认证 如果所需连接的CSS集群在创建时开启了“安全模式”,该参数需设置为“是”,否则设置为“否”。 本示例选择为“否”。 图2 CDM配置CSS数据源 单击“保存”完成CSS数据源配置。 配置目的端DLI的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“ 数据湖 探索(DLI)”,单击“下一步”。 图3 创建DLI数据源连接 配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。 图4 配置DLI数据源连接参数 配置完成后,单击“保存”完成DLI数据源配置。 创建CDM迁移作业。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。 在新建作业界面,配置当前作业配置信息,具体参数参考如下: 图5 新建CDM作业作业配置 作业名称:自定义数据迁移的作业名称。例如,当前定义为:css_to_dli。 源端作业配置,具体参考如下: 表2 源端作业配置 参数名 参数值 源连接名称 选择1.a中已创建的数据源名称。 索引 选择CSS集群中创建的Elasticsearch索引名。当前示例为CSS集群上创建索引并导入数据中创建的索引“my_test”。 索引名称只能全部小写,不能有大写。 类型 Elasticsearch的类型,类似关系数据库中的表名称。类型名称只能全部小写,不能有大写。当前示例为:“_doc”。 更多其他参数说明可以参考:CDM配置CSS源端参数。 目的端作业配置,具体参考如下: 表3 目的端作业配置 参数名 参数值 目的连接名称 选择1.b已创建的DLI数据源连接。 资源队列 选择已创建的DLI SQL类型的队列。 数据库名称 选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。 表名 选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“tablecss”。 导入前清空数据 选择导入前是否清空目的表的数据。当前示例选择为“否”。 如果设置为是,任务启动前会清除目标表中数据。 详细的参数配置可以参考:CDM配置DLI目的端参数。 单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。 如果字段映射顺序不匹配,可通过拖拽字段调整。 如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。 CDM支持迁移过程中转换字段内容,详细请参见字段转换。 图6 字段映射 单击“下一步”配置任务参数,一般情况下全部保持默认即可。 该步骤用户可以配置如下可选功能: 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。 图7 迁移作业进度和结果查询
  • 数据迁移数据类型映射 将其他云服务或业务平台数据迁移到DLI ,或者将DLI数据迁移到其他云服务或业务平台时,涉及到源和目的端数据类型的转换和映射,根据表2可以获取到源和目的端的数据类型映射关系。 表2 数据类型映射表 MySQL Hive DWS Oracle PostgreSQL Hologres DLI Spark CHAR CHAR CHAR CHAR CHAR CHAR CHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR VARCHAR/STRING DECIMAL DECIMAL NUMERIC NUMERIC NUMERIC DECIMAL DECIMAL INT INT INTEGER NUMBER INTEGER INTEGER INT BIGINT BIGINT BIGINT NUMBER BIGINT BIGINT BIGINT/LONG TINYINT TINYINT SMALLINT NUMBER SMALLINT SMALLINT TINYINT SMALLINT SMALLINT SMALLINT NUMBER SMALLINT SMALLINT SMALLINT/SHORT BINARY BINARY BYTEA RAW BYTEA BYTEA BINARY VARBINARY BINARY BYTEA RAW BYTEA BYTEA BINARY FLOAT FLOAT FLOAT4 FLOAT DOUBLE FLOAT4 FLOAT DOUBLE DOUBLE FLOAT8 FLOAT REAL/DOUBLE FLOAT8 DOUBLE DATE DATE TIMESTAMP DATE DATE DATE DATE TIME 不支持(推荐使用:String) TIME DATE TIME TIME 不支持(推荐使用:String) DATETIME TIMESTAMP TIMESTAMP TIME TIME TIMESTAMP TIMESTAMP TINYINT TINYINT BOOLEAN 不支持 TINYINT BOOLEAN BOOLEAN 不支持(推荐使用:TEXT) 不支持(推荐使用:String) 不支持(推荐使用:TEXT) 不支持(推荐使用:VARCHAR) 不支持(推荐使用:TEXT) 不支持(推荐使用:TEXT) ARRAY 不支持(推荐使用:TEXT) 不支持(推荐使用:String) 不支持(推荐使用:TEXT) 不支持(推荐使用:VARCHAR) 不支持(推荐使用:TEXT) 不支持(推荐使用:TEXT) MAP 不支持(推荐使用:TEXT) 不支持(推荐使用:String) 不支持(推荐使用:TEXT) 不支持(推荐使用:VARCHAR) 不支持(推荐使用:TEXT) 不支持(推荐使用:TEXT) STRUCT 推荐使用:表示当前服务没有支持的标准数据类型,可以使用推荐的数据类型来替换使用。
  • 常见迁移场景与迁移方案指导 表1 常见迁移场景与迁移方案指导 数据类型 迁移工具 迁移方案 Hive CDM 典型场景示例:迁移Hive数据至DLI Kafka CDM 典型场景示例:迁移Kafka数据至DLI Elasticsearch CDM 典型场景示例:迁移Elasticsearch数据至DLI RDS CDM 典型场景示例:迁移RDS数据至DLI DWS CDM 典型场景示例:迁移DWS数据至DLI
  • 步骤二:数据迁移 配置CDM数据源连接。 配置源端MRS Kafka的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“MRS Kafka”,单击“下一步”。 图2 创建MRS Kafka数据源 配置源端MRS Kafka的数据源连接,具体参数配置如下。 表1 MRS Kafka数据源配置 参数 值 名称 自定义MRS Kafka数据源名称。例如当前配置为“source_kafka”。 Manager IP 单击输入框旁边的“选择”按钮,选择当前MRS Kafka集群即可自动关联出来Manager IP。 用户名 在2中创建的MRS Kafka用户名。 密码 对应MRS Kafka用户名的密码。 认证类型 如果当前MRS集群为普通集群则选择为SIMPLE,如果是MRS集群启用了Kerberos安全认证则选择为KERBEROS。 本示例选择为:KERBEROS。 更多参数的详细说明可以参考CDM上配置Kafka连接。 图3 CDM配置MRS Kafka数据源连接 单击“保存”完成MRS Kafka数据源配置。 配置目的端DLI的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。 图4 创建DLI数据源连接 配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。 图5 配置DLI数据源连接参数 配置完成后,单击“保存”完成DLI数据源配置。 创建CDM迁移作业。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。 在新建作业界面,配置当前作业配置信息,具体参数参考如下: 图6 新建CDM作业作业配置 作业名称:自定义数据迁移的作业名称。例如,当前定义为:test。 源端作业配置,具体参考如下: 表2 源端作业配置 参数名 参数值 源连接名称 选择1.a中已创建的数据源名称。 Topics 选择MRS Kafka待迁移的Topic名称,支持单个或多个Topic。当前示例为:kafkatopic。 数据格式 根据实际情况选择当前消息格式。本示例选择为:CDC(DRS_JSON),以DRS_JSON格式解析源数据。 偏移量参数 从Kafka拉取数据时的初始偏移量。本示例当前选择为:最新。 最新:最大偏移量,即拉取最新的数据。 最早:最小偏移量,即拉取最早的数据。 已提交:拉取已提交的数据。 时间范围:拉取时间范围内的数据。 是否持久运行 用户自定义是否永久运行。当前示例选择为:否。 拉取数据超时时间 持续拉取数据多长时间超时,单位分钟。当前示例配置为:15。 等待时间 可选参数,超出等待时间还是无法读取到数据,则不再读取数据,单位秒。当前示例不配置该参数。 消费组ID 用户指定消费组ID。当前使用MRS Kafka默认的消息组ID:“example-group1”。 其他参数的详细配置说明可以参考:CDM配置Kafka源端参数。 目的端作业配置,具体参考如下: 表3 目的端作业配置 参数名 参数值 目的连接名称 选择1.b已创建的DLI数据源连接。 资源队列 选择已创建的DLI SQL类型的队列。 数据库名称 选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。 表名 选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“testdlitable”。 导入前清空数据 选择导入前是否清空目的表的数据。当前示例选择为“否”。 如果设置为是,任务启动前会清除目标表中数据。 详细的参数配置可以参考:CDM配置DLI目的端参数。 单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。 如果字段映射顺序不匹配,可通过拖拽字段调整。 如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。 CDM支持迁移过程中转换字段内容,详细请参见字段转换。 图7 字段映射 单击“下一步”配置任务参数,一般情况下全部保持默认即可。 该步骤用户可以配置如下可选功能: 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。 图8 迁移作业进度和结果查询
  • 前提条件 已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。 创建DLI队列时队列类型需要选择为“SQL队列”。 已创建包含Kafka组件的MRS安全集群。具体创建MRS集群的操作可以参考创建MRS集群。 本示例创建的MRS集群版本为:MRS 3.1.0。 本示例创建的MRS集群开启了Kerberos认证。 已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。 如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 数据源为云上的MRS、DWS时,网络互通需满足如下条件: i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。 配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。 本示例CDM集群的虚拟私有云、子网以及安全组和创建的MRS集群保持一致。
  • 步骤二:数据迁移 配置CDM数据源连接。 配置源端MRS Hive的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“MRS Hive”,单击“下一步”。 图3 创建MRS Hive数据源连接 配置源端MRS Hive的数据源连接,具体参数配置如下。 表1 MRS Hive数据源配置 参数 值 名称 自定义MRS Hive数据源名称。例如当前配置为:source_hive Manager IP 单击输入框旁边的“选择”按钮,选择当前MRS Hive集群即可自动关联出来Manager IP。 认证类型 如果当前MRS集群为普通集群则选择为SIMPLE,如果是MRS集群启用了Kerberos安全认证则选择为KERBEROS。 本示例选择为:KERBEROS。 Hive版本 根据当前创建MRS集群时候的Hive版本确定。当前Hive版本为3.1.0,则选择为:HIVE_3_X。 用户名 在3中创建的MRS Hive用户名。 密码 对应的MRS Hive用户名的密码。 其他参数保持默认即可。更多参数的详细说明可以参考CDM上配置Hive连接。 图4 CDM配置MRS Hive数据源 单击“保存”完成MRS Hive数据源配置。 配置目的端DLI的数据源连接。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在作业管理界面,选择“连接管理”,单击“新建连接”,连接器类型选择“数据湖探索(DLI)”,单击“下一步”。 图5 创建DLI数据源连接 配置目的端DLI数据源连接连接参数。具体参数配置可以参考在CDM上配置DLI连接。 图6 配置DLI数据源连接参数 配置完成后,单击“保存”完成DLI数据源配置。 创建CDM迁移作业。 登录CDM控制台,选择“集群管理”,选择已创建的CDM集群,在操作列选择“作业管理”。 在“作业管理”界面,选择“表/文件迁移”,单击“新建作业”。 在新建作业界面,配置当前作业配置信息,具体参数参考如下: 图7 新建CDM作业作业配置 作业名称:自定义数据迁移的作业名称。例如,当前定义为:hive_to_dli。 源端作业配置,具体参考如下: 表2 源端作业配置 参数名 参数值 源连接名称 选择1.a中已创建的数据源名称。 数据库名称 选择MRS Hive待迁移的数据库名称。例如当前待迁移的表数据数据库为“default”。 表名 待建议Hive数据表名。当前示例为在DLI上创建数据库和表中的“user_info”表。 读取方式 当前示例选择为:HDFS。具体参数含义如下: 包括HDFS和JDBC两种读取方式。默认为HDFS方式,如果没有使用WHERE条件做数据过滤及在字段映射页面添加新字段的需求,选择HDFS方式即可。 HDFS文件方式读取数据时,性能较好,但不支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。 JDBC方式读取数据时,支持使用WHERE条件做数据过滤及在字段映射页面添加新字段。 更多参数的详细配置可以参考:CDM配置Hive源端参数。 目的端作业配置,具体参考如下: 表3 目的端作业配置 参数名 参数值 目的连接名称 选择1.b已创建的DLI数据源连接。 资源队列 选择已创建的DLI SQL类型的队列。 数据库名称 选择DLI下已创建的数据库。当前示例为在DLI上创建数据库和表中创建的数据库名,即为“testdb”。 表名 选择DLI下已创建的表名。当前示例为在DLI上创建数据库和表中创建的表名,即为“user_info”。 导入前清空数据 选择导入前是否清空目的表的数据。当前示例选择为“否”。 如果设置为是,任务启动前会清除目标表中数据。 更多参数的详细配置可以参考:CDM配置DLI目的端参数。 单击“下一步”,进入到字段映射界面,CDM会自动匹配源和目的字段。 如果字段映射顺序不匹配,可通过拖拽字段调整。 如果选择在目的端自动创建类型,这里还需要配置每个类型的字段类型、字段名称。 CDM支持迁移过程中转换字段内容 图8 字段映射 单击“下一步”配置任务参数,一般情况下全部保持默认即可。 该步骤用户可以配置如下可选功能: 作业失败重试:如果作业执行失败,可选择是否自动重试,这里保持默认值“不重试”。 作业分组:选择作业所属的分组,默认分组为“DEFAULT”。在CDM“作业管理”界面,支持作业分组显示、按组批量启动作业、按分组导出作业等操作。 是否定时执行:如果需要配置作业定时自动执行,请参见配置定时任务。这里保持默认值“否”。 抽取并发数:设置同时执行的抽取任务数。这里保持默认值“1”。 是否写入脏数据:如果需要将作业执行过程中处理失败的数据、或者被清洗过滤掉的数据写入OBS中,以便后面查看,可通过该参数配置,写入脏数据前需要先配置好OBS连接。这里保持默认值“否”即可,不记录脏数据。 单击“保存并运行”,回到作业管理界面,在作业管理界面可查看作业执行进度和结果。 图9 迁移作业进度和结果查询
  • 前提条件 已创建DLI的SQL队列。创建DLI队列的操作可以参考创建DLI队列。 创建DLI队列时队列类型需要选择为“SQL队列”。 已创建包含Hive组件的MRS安全集群。创建MRS集群的操作详细可以参考创建MRS集群。 本示例创建的MRS集群和各组件版本如下: MRS集群版本:MRS 3.1.0 Hive版本:3.1.0 Hadoop版本:3.1.1 本示例创建MRS集群时开启了Kerberos认证。 已创建CDM迁移集群。创建CDM集群的操作可以参考创建CDM集群。 如果目标数据源为云下的数据库,则需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP、CDM云上安全组出方向放通云下数据源所在的主机、数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 数据源为云上的MRS、DWS等服务时,网络互通需满足如下条件: i. CDM集群与云上服务处于不同区域的情况下,需要通过公网或者专线打通网络。通过公网互通时,需确保CDM集群已绑定EIP,数据源所在的主机可以访问公网且防火墙规则已开放连接端口。 ii. CDM集群与云上服务同区域情况下,同虚拟私有云、同子网、同安全组的不同实例默认网络互通;如果同虚拟私有云但是子网或安全组不同,还需配置路由规则及安全组规则。 配置路由规则请参见如何配置路由规则章节,配置安全组规则请参见如何配置安全组规则章节。 iii. 此外,您还必须确保该云服务的实例与CDM集群所属的企业项目必须相同,如果不同,需要修改工作空间的企业项目。 本示例CDM集群的虚拟私有云、子网以及安全组和MRS集群保持一致。
  • 相关操作 了解更多使用DLI委托获取访问凭据的开发指南请参考表1。 表1 DLI委托权限配置场景开发指南 类型 操作指导 说明 Flink作业场景 Flink Opensource SQL使用DEW管理访问凭据 Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导,将Flink作业的输出数据写入到Mysql或DWS时,在connector中设置账号、密码等属性。 Flink Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Flink作业委托临时凭证 DLI提供了一个通用接口,可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 本操作介绍获取Flink作业委托临时凭证的操作方法。 Spark作业场景 Spark Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Spark作业委托临时凭证 本操作介绍获取Spark Jar作业委托临时凭证的操作方法。
共100000条