华为云用户手册

  • 响应示例 状态码: 200 成功 { "code": "IPDC.01020000", "message": "success", "datas": [ { "id": "739517047683162112", "creator": "public@ipdcenter203.huaweiapaas.com 2891572111", "modifier": "public@ipdcenter203.huaweiapaas.com 2891572111", "createTime": "2025-03-07T08:16:43.730+00:00", "lastUpdateTime": "2025-03-07T08:16:43.730+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "XDMUserGroup", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2023-10-31T07:44:53.458+00:00", "lastUpdateTime": "2023-10-31T07:44:53.458+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "nameEn": null, "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "XDMUserGroup", "groupcode": "GSK118", "nameEn": "testYhz202503071056", "descriptionEn": null, "name": "testYhz202503071056", "description": "testYhz202503071056", "disableFlag": false, "extId": "106", "employeeCount": 0, "employeeLimit": 5, "manager": null, "managerName": null, "parentId": null, "children": null, "level": 0, "parentCrumb": null } ], "totalCount": 1 } 状态码: 400 认证失败 { "reserve" : null, "error_code" : "AUTH-600001", "error_msg" : "" }
  • 响应示例 状态码: 200 成功 { "code": "IPDC.01020000", "message": "success", "datas": null, "totalCount": 1 } 状态码: 400 认证失败 { "reserve" : null, "error_code" : "AUTH-600001", "error_msg" : "" }
  • 请求示例 [ { "employeeLimit": 30, "manager": "manager01", "parentId": "743547113639518208", "name": "group01", "nameEn": ""group01", "groupcode": "GSK001", "description": "机机创建" } ]
  • 响应示例 状态码: 200 成功 { "code": "IPDC.01020000", "message": "success", "datas": [ { "id": "755756557492293632", "creator": "public@ipdcenter203.huaweiapaas.com 2891572111", "modifier": "public@ipdcenter203.huaweiapaas.com 2891572111", "createTime": "2025-04-21T03:46:44.584+00:00", "lastUpdateTime": "2025-04-21T03:46:44.584+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "XDMUserGroup", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2023-10-31T07:44:53.458+00:00", "lastUpdateTime": "2023-10-31T07:44:53.458+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "nameEn": null, "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "XDMUserGroup", "groupcode": "GSK7374421", "nameEn": "test7374421", "descriptionEn": null, "name": "test7374421", "description": "test7374421", "disableFlag": false } ], "totalCount": 1 } 状态码: 400 认证失败 { "reserve" : null, "error_code" : "AUTH-600001", "error_msg" : "" }
  • 请求示例 [ { "employeeLimit": 30, "manager": "manager01", "parentId": "743547113639518208", "name": "group01", "nameEn": ""group01", "groupcode": "GSK001", "description": "机机创建" } ]
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Authorization 是 String JWTToken 表2 请求Body参数 参数 是否必选 参数类型 描述 [数组元素] 是 Array of createGroupExt objects 创建部门请求 表3 createGroupExt 参数 是否必选 参数类型 描述 groupcode 是 String 部门编码(需唯一) name 是 String 部门名称 nameEn 是 String 部门英文名称 employeeLimit 否 Integer 人数限制,默认50 manager 否 String 部门管理员 parentId 否 String 父级部门
  • 响应示例 状态码: 200 成功 { "code": "IPDC.01020000", "message": "success", "datas": null, "totalCount": 2 } 状态码: 400 认证失败 { "reserve" : null, "error_code" : "AUTH-600001", "error_msg" : "" }
  • 响应示例 状态码: 200 成功 { "code": "IPDC.01020000", "message": "success", "datas": { "id": "739517047683162112", "creator": "public@ipdcenter203.huaweiapaas.com 2891572111", "modifier": "public@ipdcenter203.huaweiapaas.com 2891572111", "createTime": "2025-03-07T08:16:43.730+00:00", "lastUpdateTime": "2025-03-07T08:16:43.730+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "XDMUserGroup", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2023-10-31T07:44:53.458+00:00", "lastUpdateTime": "2023-10-31T07:44:53.458+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "nameEn": null, "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "XDMUserGroup", "groupcode": "GSK118", "nameEn": "testYhz202503071056", "descriptionEn": "hasChildren", "name": "testYhz202503071056", "description": "testYhz202503071056", "disableFlag": false, "extId": "106", "employeeCount": 0, "employeeLimit": 5, "manager": null, "managerName": null, "parentId": null, "children": [ { "id": "741608922581835776", "creator": "public@ipdcenter203.huaweiapaas.com 2891572111", "modifier": "public@ipdcenter203.huaweiapaas.com 2891572111", "createTime": "2025-03-13T02:49:05.571+00:00", "lastUpdateTime": "2025-03-13T02:49:05.571+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "XDMUserGroup", "tenant": { "id": "-1", "creator": "xdmAdmin", "modifier": "xdmAdmin", "createTime": "2023-10-31T07:44:53.458+00:00", "lastUpdateTime": "2023-10-31T07:44:53.458+00:00", "rdmVersion": 1, "rdmDeleteFlag": 0, "rdmExtensionType": "Tenant", "tenant": null, "className": "Tenant", "name": "basicTenant", "description": "默认租户", "kiaguid": null, "securityLevel": "internal", "nameEn": null, "code": "basicTenant", "disableFlag": false, "dataSource": "DefaultDataSource" }, "className": "XDMUserGroup", "groupcode": "GSK119", "nameEn": "testYhz202503131055", "descriptionEn": null, "name": "testYhz202503131055", "description": "testYhz202503131055", "disableFlag": false, "extId": "107", "employeeCount": 0, "employeeLimit": 5, "manager": null, "managerName": null, "parentId": "739517047683162112", "children": null, "level": 2, "parentCrumb": null } ], "level": 1, "parentCrumb": null }, "totalCount": null } 状态码: 400 认证失败 { "reserve" : null, "error_code" : "AUTH-600001", "error_msg" : "" }
  • 操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“通知订阅”,即可切换到“通知订阅”页面。 设置应用相关事件的通知,请根据实际情况单击(表示开启)/(表示关闭)进行设置。 站内 消息通知 :提供应用站内消息通知推送能力。 邮件通知:提供应用动态邮件推送能力,以发送邮件的形式,向应用创建者、执行者和已收藏该应用的成员发送应用动态。 钉钉:提供应用动态钉钉推送能力,填写URL地址,根据需要填写其他信息,并配置通知内容即可。 企业微信:提供应用动态企业微信推送能力,填写URL地址,根据需要填写其他信息,并配置通知内容即可。 飞书:提供应用动态飞书推送能力,填写URL地址,根据需要填写其他信息,并配置通知内容即可。 加签密钥:若钉钉机器人或飞书机器人,安全设置开启加签,请填写加签密钥。若未使用加签,无需填写加签密钥。 (可选)使用项目通知设置站内消息通知、邮件通知和第三方消息通知。 选择要设置的消息类型,如“站内消息通知”或“钉钉群聊天机器人”,打开对应的“使用项目通知设置”开关,项目通知设置将覆盖当前通知订阅,具体项目通知配置项可单击右上角“温馨提示”前往查看。 选择要设置的消息类型,如“站内消息通知”或“钉钉群聊天机器人”关闭对应的“使用项目通知设置”开关,当前通知订阅将不再自动同步项目通知设置,通知项恢复为同步项目通知前已配置的参数。 修改完所有信息,单击“保存”,保存该应用。
  • 步骤五:安装日志采集插件 在“日志接入”页面,选择左侧导航栏的“集群插件管理”。 在集群列表中单击待安装插件的集群所在行“操作”列的“安装插件”。 在“插件安装”页面配置安装参数,具体内容如下所示,配置完成后,单击“确定”。 插件安装会占用集群资源,可以根据业务日志量,调整container的requests大小,来控制集群的资源占用量,具体操作请参见如何调整纳管集群的资源占用量。 输入日志挂载路径:挂载到容器指定挂载点中的容器所在宿主机的文件目录,通常为宿主机上日志文件的hostpath目录。需要设置为单独的文件路径,不能设置为类似于/root、/home等包含有其他文件的目录,并且一个集群只能设置一个挂载路径。 需要对日志挂载路径执行chmod o+rx命令,确保日志采集容器的启动用户拥有该路径的访问权限。 选择主机:选择待安装插件的主机,默认全部勾选进行安装,可以去掉勾选不需要安装插件的主机,且当主机状态为“Active”时才可以正常安装插件。 选择日志配置组:选择日志配置组,安装插件并下发配置。
  • 步骤四:创建日志配置组 在“日志接入”页面,选择左侧导航栏的“日志配置组”。 单击“创建日志配置组”。 设置日志配置组参数,参数说明如表5所示,配置完成后,单击“确定”。 表5 日志配置组参数说明 参数名称 参数说明 日志配置组名称 自定义日志配置组名称。 安装方式 选择安装方式,推荐使用“DAEMONSET”。 命名空间 当安装方式为“DAEMONSET”时,需要配置服务日志命名空间。 命名空间为hostpath的下一级目录名称,该目录下48小时内有日志文件更新,才会拉取日志采集配置,必须为英文名。 日志项目 选择已创建的日志项目。 配置类型 选择配置类型,即创建日志采集配置时选择的配置类型,根据配置类型会过滤采集配置列表中的数据。 采集配置列表 选择需要下发的配置。
  • 步骤三:创建日志采集配置 在“日志接入”页面,选择左侧导航栏的“日志采集配置”。 单击“创建日志采集配置”。 配置日志采集参数,配置完成后,单击“确定”。 新创建的采集配置默认为草稿状态,展示在“草稿”页签下,当配置被微服务使用后,状态会更新为“已下发”,并展示到“已下发”页签下。 表4 日志采集配置参数说明 参数名称 参数说明 日志项目 选择已创建的日志项目,相同服务的不同日志使用同一个日志项目 日志空间 选择已创建的日志空间。选择日志空间时日志提取规则会展示日志空间定义的日志格式,采集的日志须满足对应格式。 配置名称 自定义日志采集配置名称。 配置类型 选择日志采集配置类型,建议选择“FILEBEAT”。 日志类型 输入采集日志类型。 日志路径 宿主机上的日志文件的绝对路径(业务容器通过hostpath挂载到宿主机上的路径)。 可使用通配符进行匹配。 注意避免同一台主机上下发的多个采集任务重复采集相同的日志文件,会导致filebeat进程异常。 日志TPS TPS表示单实例每秒日志条数,请准确填写,用于推荐资源自动计算。 日志模式 选择日志采集模式,是单行模式还是多行模式。 是否支持软连接 当填写的日志路径为链接路径时,需要开启支持软连接。 首行正则表达式 日志模式选择多行模式时,需要输入首行正则表达式。 日志提取规则 根据填写的配置参数会自动生成提取规则。
  • 步骤二:创建日志空间 在“日志接入”页面,选择左侧导航栏的“日志空间”。 单击“申请实时日志空间”。 根据界面提示填写日志空间参数。 配置实时日志空间信息,参数说明如表2所示,配置完成后,单击“下一步”。 表2 实时日志空间信息参数说明 参数名称 参数说明 空间名称 自定义日志空间名称,建议包含日志类型语义。 空间描述 输入日志空间描述,非必填项。 区域 选择需要接入日志的区域。 日志类型 选择需接入的日志类型,该日志空间中接入的日志数据“logType”字段会根据选择的日志类型生成。不同日志类型所对应的“logType”字段如下: 访问日志:AC CES S_ LOG 接口日志:INTERFACE_LOG 错误日志:ERROR_LOG 异常日志:EXCEPTION_LOG 安全日志:SAFE_LOG 资源日志:RESOURCE_LOG 运行日志:RUN_LOG 话单日志:CDR_LOG 指标日志:METRI CS _LOG GC日志:GC_LOG HCW日志:HCW_LOG 日志大小 预计一天的日志量,默认为1GB。 开启日志检索 如果需要使用日志检索功能,可以打开该开关,并创建导流任务将数据导流至ClickHouse表,创建导流任务后可以在“日志检索”页面查看日志。 如果创建时没有打开日志检索开关,后续编辑打开该开关,需要手动创建或绑定检索空间表。 单击该空间所在行“操作”列的,选择“日志空间表管理”并切换至“检索空间表”页签,单击右上角的“创建新空间表”或“选择已有空间表”,手动为该日志空间创建或绑定检索空间表,然后单击列表“操作”列的“上线”。 检索空间类型 选择ClickHouse。 原索引名称(ClickHouse) 可选择现有的ClickHouse,如果不填会自动生成。 配置实时日志字段信息,参数说明如表3所示,配置完成后,单击“下一步”。 表3 实时日志字段信息参数说明 参数名称 参数说明 自定义字段 必须接入的日志字段已默认勾选,可以勾选其他需要接入的日志字段,包括通用字段、容器字段和虚机字段。 清洗规则 选择日志清洗规则。 请优先使用算子清洗模式采样,通过配置解析脚本将原始日志清洗为业务需要的日志字段,算子清洗功能及使用样例请参见算子清洗功能介绍。原始日志采样清洗只适用于单纯采样,不需要清洗的场景。 如果创建时选择“无清洗”,后续编辑选择对日志进行清洗,需要手动创建或绑定异常存储空间表。 单击该空间所在行“操作”列的,选择“日志空间表管理”并切换至“异常存储空间表”页签,单击右上角的“创建新空间表”或“选择已有空间表”,手动为该日志空间创建或绑定异常存储空间表,然后单击列表“操作”列的“上线”。 日志样例 输入日志样例。 解析脚本 配置解析脚本,将日志样例清洗为字段显示,具体算子功能及使用样例请参见算子清洗功能介绍。 配置解析脚本时字段命名不支持使用中划线“-”,支持使用下划线“_”。 清洗字段 配置解析脚本后单击“测试解析脚本”,自动生成清洗字段,查看字段是否符合预期。 开启汇聚 选择是否开启日志汇集,如果日志量较大且不需要关注原始日志时可以进行日志汇集。 开启后会自动创建用于存储汇聚数据的Topic,同时需要配置汇集相关参数。 汇聚粒度 开启汇聚后,需要设置汇集粒度。支持分钟级和秒级数据汇聚。选择分钟级,每一分钟会生成一个统计点,选择秒级,每一秒会生成一个统计点。 汇聚时间戳 仅支持时间戳格式字段timestamp,获取当前计算的日志的时间。 时间戳格式 选择时间戳格式。支持秒、毫秒、纳秒级时间戳,获取当前计算的日志的时间格式。 汇聚维度 结合业务场景需要,选择日志是以哪些日志字段进行日志汇聚,支持多选。 汇聚度量 设置对日志字段以COUNT、SUM、MAX、MIN进行度量。 原始字段是日志中的字段,用来获取原始值;度量字段是用户自定义字段名,计算后,度量的值会赋值给该字段。 输出原始日志 选择是否需要输出原始日志。如果打开输出原始日志,原始日志也会上报。 日志字段确认,确认日志字段配置是否达到预期,已达到预期,单击“下一步”。 其中字段来源COMMON表示通用字段、CONTAINER表示容器字段、VM表示虚机字段。 申请日志空间共享,如果需要其他服务共用这个空间进行日志下发和日志检索,可以添加共享服务。配置完成后,单击“保存”。
  • Schema及Keyspace概念介绍 在MySQL类数据库中,Database是数据库对象的物理集合,不同的Database之间资源是完全隔离的(除部分共享对象之外)。每个Database都是一个独立的命名空间,用于存储和管理相关的数据库对象,如表、视图、函数等。Schema与Database在概念上非常接近,通常可以认为一个Database只包含一个Schema,且这个Schema的名称与Database的名称相同,这个Schema包含了该Database中所有的数据库对象。例如,在一个电商系统中,一个Database(或Schema)用于存储用户信息,另一个Database(或Schema)用于存储商品信息。 在 GaussDB 和RDS for PostgreSQL数据库中,Database提供了对资源的物理隔离和管理,Database通常用于表示一个完整的、独立的应用系统或业务环境。例如,一个电商系统可能使用一个单独的Database来存储其所有数据。在同一个Database内,不同的Schema可以用于表示不同的业务模块或功能区域。例如,在电商系统中,商品信息、用户信息、订单信息等可以分别存储在不同的Schema中。 在Cassandra数据库中,Keyspace(键空间)是最高级别的数据结构,在GeminiDB Cassandra接口中,Keyspace是用于保存列族,用户定义类型的对象。键空间相当于数据库,创建一个键空间即是创建了一个数据库。 在WiseDBA中,Keyspace的创建、同步、下线等操作与MySQL类数据库Schema的相应操作完全相同,为便于描述,下文统一以Schema为例进行介绍。 父主题: 在WiseDBA中创建和管理Schema
  • 录入账号 进入AppStage运维中心。 将鼠标悬停在右上角的账号,选择下拉列表中的“服务环境配置”,选择左侧导航栏的“账户列表”。 单击“录入账号”。 录入账号信息,具体参数如表1所示。 表1 账号信息参数 参数名称 参数说明 厂商 选择账号归属的云厂商。 账号ID 使用购买资源时注册账号的账号ID。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“我的凭证”,在“API凭证”页面查看。 账号名 使用购买资源时注册账号的账号名。 获取方式:在控制台,鼠标悬停在控制台右上角的用户名,选择下拉列表中的“我的凭证”,在“API凭证”页面查看。 纳管方式 AK-SK:通过AKSK获取管理员 IAM 操作权限,该IAM账号所属用户组需要拥有对应的权限,不同接入资源所需的权限不同,具体如表2所示,授权操作请参见用户组授权。 授权委托:将操作权限委托给AppStage,让AppStage以IAM身份使用其他云服务,代替IAM进行一些资源运维工作,具体操作请参见创建委托,其中委托的账号需要设置为AppStage平台账号“HIS_wiseEyes”。 用户ID 选择纳管方式为AK-SK时,显示此参数。在IAM中创建用户的用户ID。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“ 统一身份认证 ”,在“用户”页面单击列表中的用户名,在用户详情页面查看用户ID。 用户名 选择纳管方式为AK-SK时,显示此参数。在IAM中创建用户的用户名。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“统一身份认证”,在“用户”页面单击列表中的用户名,在用户详情页面查看用户名称。 AK 选择纳管方式为AK-SK时,显示此参数。输入用户的访问密钥ID。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“我的凭证”,在左侧导航栏单击“访问密钥”,在“访问密钥”页面查看AK。 SK 选择纳管方式为AK-SK时,显示此参数。输入用户的访问密钥。 SK只能在第一次创建的时候下载,之后都不能通过管理台查询。 授权委托名称 选择纳管方式为授权委托时,显示此参数。输入用户创建委托的名称。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“统一身份认证”,在左侧导航栏单击“委托”,在委托列表查看。 授权委托ID 选择纳管方式为授权委托时,显示此参数。输入用户创建委托的ID。 获取方式:鼠标悬停在控制台右上角的用户名,选择下拉列表中的“统一身份认证”,在左侧导航栏单击“委托”,在委托列表查看。 表2 权限说明 接入资源 服务 所需权限策略类型 所需权限 网络 弹性网络服务(ENS) 系统策略 VPC Administrator 网络管理员 VPCEndpoint Administrator VPC终端节点 服务使您可以将VPC私密的连接到支持的服务 ELB FullAccess 弹性负载均衡服务所有权限 CES Administrator 云监控服务 管理员 NAT FullAccess AT网关服务所有权限 Tenant Guest 云服务只读权限(除IAM权限) NAT Administrator NAT网关服务管理员 ELB ReadOnlyAccess 弹性负载均衡服务只读权限 ELB Administrator 弹性负载均衡服务ELB管理员 CBH 堡垒机 主机管理服务(VMS) 系统策略 CBH FullAccess 云堡垒机 所有权限 虚拟机 主机管理服务(VMS) 自定义策略 策略内容如下所示: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "bms:*:*", "deh:*:*", "ecs:*:*", "evs:*:*", "ims:*:*", "cce:*:*", "mrs:*:*", "bss:*:*", "vpc:*:*" ] } ] } CCE集群 弹性资源服务(ERS) 系统策略 CCE Administrator CCE集群及集群下所有资源的读写权限 SFS Administrator 弹性文件服务的操作权限 APM FullAccess 应用性能管理 服务的所有执行权限 OBS Administrator 对象存储服务 管理员 SWR Admin 容器镜像服务 的管理员权限 ELB Administrator 弹性负载均衡服务管理员 Server Administrator 服务器管理员 Tenant Guest 云服务只读权限(除IAM权限) 数据库 数据库治理(WiseDBA) 系统策略 不同数据库类型所需权限不同,具有如下: RDS(for MySQL) RDS FullAccess 关系型数据库服务所有权限 GeminiDB Cassandra GeminiDB FullAccess 分布式多模NoSQL数据库服务所有权限 GaussDB(for openGauss)/TaurusDB GaussDB FullAccess 云数据库GaussDB服务的所有执行权限 必选权限,无论使用哪种数据库,在数据库接入时都需要以下权限: DRS FullAccess 数据复制服务 所有权限 VPC ReadOnlyAccess 虚拟私有云的只读权限 CES告警 配置审计 (Config) 自定义策略 策略内容如下所示: { "Statement": [ { "Action": [ "rms:resources:list", "rms:resources:get" ], "Effect": "Allow" } ], "Version": "1.1" } 单击“确定”。
  • 前提条件 需要获取待纳管数据库的管理员账号及密码。 需要具备AppStage服务运维岗位权限、运维管理员权限或基础运维岗位权限,权限申请操作请参见申请权限。 已将弹性云服务器主机设置为执行机。 同VPC执行机:将待纳管的数据库所在VPC下的主机设置为执行机。 跨VPC执行机:将待纳管数据库的服务下所属其他VPC的主机设置为执行机。 数据库纳管时系统会优先使用该数据库同VPC下的执行机,如果同VPC下没有执行机,随机选择服务关联的其他VPC下的执行机。跨VPC时,需保证执行机所在VPC与待接入运维中心的数据库所在VPC网络互通。请参见对等连接和安全组,连通服务关联的所有VPC,放通数据库和服务下所有执行机的安全组。 纳管 GaussDB数据库 前,请参考安全和认证将华为云GaussDB数据库的password_encryption_type参数修改为0,表示采用md5方式对密码加密,然后参考重置GaussDB实例管理员密码重置密码。
  • 更多操作 您还可以对已安装的插件进行以下操作。 表3 插件管理操作 操作名称 操作步骤 升级插件 在插件列表,单击待升级的插件所在行“操作”列的“升级”。 回滚插件 在插件列表,单击待回滚的插件所在行“操作”列的“回滚”。Roll Back 删除插件 在插件列表,单击待删除的插件所在行“操作”列的“删除”。 导出资源内容 在插件列表,勾选待导出资源内容的插件,然后单击列表左上方的“导出资源内容”。
  • 资源接入运维中心 进入AppStage运维中心。 在顶部导航栏选择需要接入资源的服务。 单击“运维接入一站式地图”后的“接入引导”,如图1所示,进入“运维中心一站式接入流程”页面。 图1 接入引导 配置环境。 在公共配置区域,选择需要接入资源所属的账号及Region。 在配置环境区域,单击“创建环境”。 输入环境名称,选择用途并输入环境描述,然后单击“确定”,如图2所示。创建并启用环境,同时将环境与所选的公共配置关联。 图2 创建环境 单击“下一步:纳管VPC”。 纳管VPC。 在纳管VPC区域,单击“创建纳管”。 选择需要纳管的虚拟私有云(VPC),并选择终端节点子网,然后单击“确定”,纳管VPC并将VPC与所选环境关联。 纳管VPC自动创建的两个终端节点会产生费用,按终端节点实例的实际使用时长计费,如需查看费用账单请参见费用账单。 单击“下一步:纳管主机”。 纳管主机。 以Linux主机为例,介绍如何根据纳管主机指引完成首次纳管Linux主机。 为Linux主机手动安装OpsAgent。 单击CURL命令后的,复制安装命令。 使用root账号远程登录主机后,执行安装命令安装OpsAgent。 主机分配。勾选待纳管的主机,单击“主机分配”完成主机纳管,如图3所示。 图3 主机分配 设置执行机。单击已纳管的主机所在行后的“设置执行机”。 单击“下一步:纳管数据库”。 纳管数据库。 在纳管数据库区域,单击“新建纳管”。 配置纳管数据库相关参数,如图4所示,然后单击“确定”,完成数据库纳管。 图4 纳管数据库 单击“下一步:纳管容器集群”。 纳管容器集群。 在纳管容器集群区域,单击“新建纳管”。 选择需要纳管的华为云CCE集群,并输入集群别名。然后单击“确定”,完成容器集群纳管。 单击“完成”,完成所有资源接入。
  • 约束限制 当前仅部分区域的主机支持接入AppStage运维中心,包括华北-北京四、华南-广州、华东-上海一、华东-上海二和华北-乌兰察布一 ,如需接入其他区域的主机,请联系技术支持工程师。 当前仅支持x86类型主机安装OpsAgent并接入运维中心,不支持arm类型主机。支持接入的主机操作系统如表1所示,其余类型的主机无法接入运维中心。 表1 支持的主机操作系统 操作系统 系统版本 CentOS CentOS 7.2、CentOS 7.6、CentOS 7.8、CentOS 7.9、CentOS 8.2 Ubuntu Ubuntu 18.04、Ubuntu 20.04、Ubuntu 22.04 EulerOS EulerOS2.5、EulerOS2.9 Huawei Cloud EulerOS Huawei Cloud EulerOS 2.0 SUSE SUSE11、SUSE12、SUSE15、OpenSUSE 15.0
  • 前提条件 已创建VPC和子网,具体操作请参见创建虚拟私有云和子网。 已购买主机,具体操作请参见购买弹性 云服务器ECS 或购买裸金属服务器BMS。 已购买数据库实例,具体操作请参见购买TaurusDB实例、 购买GaussDB 实例、购买RDS for PostgreSQ L实例 、购买GeminiDB Cassandra实例或购买RDS for MySQL实例。 已购买CCE容器集群,具体操作请参见购买集群。 已获取基础运维岗位权限或运维管理员权限,权限申请操作请参见申请权限。 已完成基础信息配置。
  • 元数据 元数据可以在 DDL 中作为只读(虚拟)meta 列声明。 表3 元数据 Key 数据类型 说明 table_name STRING NOT NULL 当前记录所属的表名称。 database_name STRING NOT NULL 当前记录所属的库名称。 op_ts TIMESTAMP_LTZ(3) NOT NULL 当前记录表在数据库中更新的时间。 如果从表的快照而不是 binlog 读取记录,该值将始终为0。
  • 常见问题 Q:MySQL CDC源表不支持定义Watermark,怎么进行窗口聚合? A:可以采用非窗口聚合的方式,即将时间字段转换成窗口值,然后根据窗口值进行GROUP BY聚合。 例如:基于上述示例,统计每分钟的订单数,脚本如下(其中order_time为string类型,表示订单的时间)。 insert into printSink select DATE_FORMAT(order_time, 'yyyy-MM-dd HH:mm'), count(*) from mysqlCdcSource group by DATE_FORMAT(order_time, 'yyyy-MM-dd HH:mm');
  • 语法格式 create table mySqlCdcSource ( attr_name attr_type (',' attr_name attr_type)* (','PRIMARY KEY (attr_name, ...) NOT ENFORCED) ) with ( 'connector' = 'mysql-cdc', 'hostname' = 'mysqlHostname', 'username' = 'mysqlUsername', 'password' = 'mysqlPassword', 'database-name' = 'mysqlDatabaseName', 'table-name' = 'mysqlTableName' );
  • 注意事项 创建Flink OpenSource SQL作业时,在作业编辑界面的“运行参数”处,“Flink版本”需要选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。 认证用的username和password等硬编码到代码中或者明文存储都有很大的安全风险,建议使用DEW管理凭证。配置文件或者环境变量中密文存放,使用时解密,确保安全。Flink Opensource SQL使用DEW管理访问凭据 为每个Reader设置不同的Server ID 每个用于读取Binlog的MySQL客户端都应该有一个唯一的Server ID,确保MySQL服务器能够区分不同的客户端并维护各自的Binlog读取位置。 如果不同的作业共享相同的Server ID,可能会导致从错误的Binlog位置读取数据,从而引发数据不一致的问题。 可以通过SQL Hints为每个Source Reader分配唯一的Server ID,例如使用SELECT * FROM source_table /*+ OPTIONS('server-id'='5401-5404') */ ; 为4个Source Readers分配唯一的 Server ID。 设置MySQL会话超时时间 当为大型数据库创建初始一致快照时,您建立的连接可能会在读取表时碰到超时问题。您可以通过在MySQL侧配置 interactive_timeout 和 wait_timeout来解决此类问题。 interactive_timeout: 服务器在关闭交互连接之前等待活动的秒数。 更多信息请参考 MySQL Documentations. wait_timeout: 服务器在关闭非交互连接之前等待活动的秒数。 更多信息请参考 MySQL Documentations. 使用无主键表时的注意事项: 使用无主键表必须设置 scan.incremental.snapshot.chunk.key-column,且只能选择非空类型的一个字段。 配置 scan.incremental.snapshot.chunk.key-column 时,如果表中存在索引,请使用索引中的列来加快 select 度。 无主键表的处理语义由 scan.incremental.snapshot.chunk.key-column 指定的列的行为决定: 如果指定的列不存在更新操作,此时可以保证 Exactly once 语义。 如果指定的列存在更新操作,此时只能保证 At least once 语义。但可以结合下游,通过指定下游主键,结合幂等性操作来保证数据的正确性。 MySQL CDC源表暂不支持定义Watermark。如果您需要进行窗口聚合,请参考常见问题描述。 如果连接DWS、MySQL等支持upsert的sink源,需要在sink表的创建语句中定义主键,请参考示例中printSink建表语句。
  • 参数说明 表2 源表参数说明 参数 是否必选 默认值 数据类型 说明 connector 是 无 String connector类型,需配置为'mysql-cdc'。 hostname 是 无 String MySQL 数据库服务器的 IP 地址或主机名。 username 是 无 String 连接到 MySQL 数据库服务器时要使用的 MySQL 用户的名称。 password 是 无 String 连接 MySQL 数据库服务器时使用的密码。 database-name 是 无 String 要监视的 MySQL 服务器的数据库名称。 数据库名称还支持正则表达式,以监视多个与正则表达式匹配的表。 前缀匹配:^(test).* 匹配前缀为test的数据库名,例如test1、test2等。 后缀匹配:.*[p$] 匹配后缀为p的数据库名,例如cdcp、edcp等。 特定匹配:txc 匹配具体的数据库名。 table-name 是 无 String 需要监视的 MySQL 数据库的表名。表名支持正则表达式,以监视满足正则表达式的多个表。 说明: MySQL CDC 连接器在正则匹配表名时,会把用户填写的 database-name, table-name 通过字符串 `\\.` 连接成一个全路径的正则表达式,然后使用该正则表达式和 MySQL 数据库中表的全限定名进行正则匹配。 前缀匹配:^(test).* 匹配前缀为test的表名,例如test1、test2等。 后缀匹配:.*[p$] 匹配后缀为p的表名,例如cdcp、edcp等。 特定匹配:txc 匹配具体的表名。 port 否 3306 Integer MySQL 数据库服务器的整数端口号。 server-id 否 无 String 读取数据使用的 server id,server id 可以是个整数或者一个整数范围,比如 '5400' 或 '5400-5408'。 建议在 'scan.incremental.snapshot.enabled' 参数为启用时,配置成整数范围。 在当前 MySQL 集群中运行的所有 slave 节点,标记每个 salve 节点的 id 都必须是唯一的。 所以当连接器加入 MySQL 集群作为另一个 slave 节点(并且具有唯一 id 的情况下),它就可以读取 binlog。 默认情况下,连接器会在 5400 和 6400 之间生成一个随机数,但是我们建议用户明确指定 Server id。 scan.incremental.snapshot.enabled 否 true Boolean 增量快照是一种读取表快照的新机制,与旧的快照机制相比, 增量快照有许多优点,包括: 在快照读取期间,Source 支持并发读取 在快照读取期间,Source 支持进行 chunk 粒度的 checkpoint 在快照读取之前,Source 不需要数据库锁权限。 如果希望 Source 并行运行,则每个并行 Readers 都应该具有唯一的 Server id,所以 Server id 必须是类似 `5400-6400` 的范围,并且该范围必须大于并行度。 scan.incremental.snapshot.chunk.size 否 8096 Integer 表快照的块大小(行数),读取表的快照时,捕获的表被拆分为多个块。 scan.snapshot.fetch.size 否 1024 Integer 读取表快照时每次读取数据的最大条数。 scan.startup.mode 否 initial String MySQL CDC 消费者可选的启动模式, 合法的模式为 "initial","earliest-offset","latest-offset","specific-offset" 和 "timestamp"。 initial (默认):在第一次启动时对受监视的数据库表执行初始快照,并继续读取最新的 binlog。 earliest-offset:跳过快照阶段,从可读取的最早 binlog 位点开始读取。 latest-offset:首次启动时,从不对受监视的数据库表执行快照, 连接器仅从 binlog 的结尾处开始读取,这意味着连接器只能读取在连接器启动之后的数据更改。 specific-offset:跳过快照阶段,从指定的 binlog 位点开始读取。位点可通过 binlog 文件名和位置指定,或者在 GTID 在集群上启用时通过 GTID 集合指定。 timestamp:跳过快照阶段,从指定的时间戳开始读取 binlog 事件。 scan.startup.specific-offset.file 否 无 String 在 "specific-offset" 启动模式下,启动位点的 binlog 文件名。 scan.startup.specific-offset.pos 否 无 Long 在 "specific-offset" 启动模式下,启动位点的 binlog 文件位置。 scan.startup.specific-offset.gtid-set 否 无 String 在 "specific-offset" 启动模式下,启动位点的 GTID 集合。 scan.startup.specific-offset.skip-events 否 无 Long 在指定的启动位点后需要跳过的事件数量。 scan.startup.specific-offset.skip-rows 否 无 Long 在指定的启动位点后需要跳过的数据行数量。 server-time-zone 否 无 String 数据库服务器中的会话时区。 例如: "Asia/Shanghai". 它控制 MYSQL 中的时间戳类型如何转换为字符串。如果没有设置,则使用ZoneId.systemDefault()来确定服务器时区。 debezium.min.row. count.to.stream.result 否 1000 Integer 在快照操作期间,连接器将查询每个包含的表,以生成该表中所有行的读取事件。 此参数确定 MySQL 连接是否将表的所有结果拉入内存(速度很快,但需要大量内存), 或者结果是否需要流式传输(传输速度可能较慢,但适用于非常大的表)。 该值指定了在连接器对结果进行流式处理之前,表必须包含的最小行数,默认值为1000。 将此参数设置为`0`以跳过所有表大小检查,并始终在快照期间对所有结果进行流式处理。 connect.timeout 否 30s Duration 连接器在尝试连接到 MySQL 数据库服务器后超时前应等待的最长时间。 connect.max-retries 否 3 Integer 连接器应重试以建立 MySQL 数据库服务器连接的最大重试次数。 connection.pool.size 否 20 Integer 连接池大小。 jdbc.properties.* 否 无 String 传递自定义 JDBC URL 属性的选项。 用户可以传递自定义属性,如 'jdbc.properties.useSSL' = 'false'. heartbeat.interval 否 30s Duration 用于跟踪最新可用 binlog 偏移的发送心跳事件的间隔。 debezium.* 否 无 String 将 Debezium 的属性传递给 Debezium 嵌入式引擎,该引擎用于从 MySQL 服务器捕获数据更改。 例如: 'debezium.snapshot.mode' = 'never'. 查看更多关于 Debezium 的 MySQL 连接器属性。 scan.incremental.close-idle-reader.enabled 否 false Boolean 是否在快照结束后关闭空闲的 Reader。 此特性需要'execution.checkpointing.checkpoints-after-tasks-finish.enabled' 需要设置为 true。
  • 支持特性 增量快照读取 增量快照读取是一种读取表快照的新机制。与旧的快照机制相比,增量快照具有许多优点,包括: 在快照读取期间,Source 支持并发读取, 在快照读取期间,Source 支持进行 chunk 粒度的 checkpoint, 在快照读取之前,Source 不需要数据库锁权限。 如果希望 source 并行运行,则每个并行 reader 都应该具有唯一的 server id,因此server id的范围必须类似于 5400-6400, 且范围必须大于并行度。在增量快照读取过程中,MySQL CDC Source 首先通过表的主键将表划分成多个块(chunk), 然后 MySQL CDC Source 将多个块分配给多个 reader 以并行读取表的数据。 无锁算法 MySQL CDC source 使用 增量快照算法, 避免了数据库锁的使用,因此不需要 “RELOAD” 权限。 并发读取 增量快照读取提供了并行读取快照数据的能力。 全量阶段支持checkpoint 增量快照读取提供了在区块级别执行检查点的能力。它使用新的快照读取机制解决了以前版本中的检查点超时问题。
  • 前提条件 MySQL CDC要求MySQL版本为5.6,5.7或8.0.x。 with参数中字段只能使用单引号,不能使用双引号。 该场景作业需要 DLI 与MySQL建立增强型跨源连接,且用户可以根据实际所需设置相应安全组规则。 如何建立增强型跨源连接,请参考《 数据湖探索 用户指南》中增强型跨源连接章节。 如何设置安全组规则,请参见《虚拟私有云用户指南》中“安全组”章节。 MySQL已开启了Binlog,并且binlog_row_image设置为FULL。 已创建MySQL用户,并授予了SELECT、 SHOW DATABASES 、REPLICATION SLAVE和REPLICATION CLIENT权限。注意: 在 scan.incremental.snapshot.enabled 参数已启用时(默认情况下已启用)时,不再需要授予 reload 权限。 GRANT SELECT, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user' IDENTIFIED BY 'password';
  • 示例 使用DataGen connector产生数据,输出到Hudi的MOR表中(以订单日期作为分区字段),并使用HMS方式同步元数据到Hive 参考创建Flink OpenSource作业,创建flink opensource sql作业,输入以下作业脚本,提交运行作业。 注意:创建作业时,在作业编辑界面的“运行参数”处,“Flink版本”选择“1.15”,勾选“保存作业日志”并设置保存作业日志的OBS桶,方便后续查看作业日志。如下脚本中的加粗参数请根据实际环境修改。 create table orderSource ( order_id STRING, order_name STRING, order_time TIMESTAMP(3) ) with ( 'connector' = 'datagen' , 'rows-per-second'='100' ); CREATE TABLE huditest ( order_id STRING PRIMARY KEY NOT ENFORCED, order_name STRING, order_time TIMESTAMP(3), order_date String ) PARTITIONED BY (order_date) WITH ( 'connector' = 'hudi', 'path' = 'obs://bucket/dir', 'table.type' = 'MERGE_ON_READ', 'hoodie.datasource.write.recordkey.field' = 'order_id', 'write.precombine.field' = 'order_time', 'hive_sync.enable' = 'true', 'hive_sync.mode' = 'hms', 'hive_sync.table' = 'huditest', 'hive_sync.db' = 'dbtest' ); insert into huditest select order_id, order_name, order_time, DATE_FORMAT(order_time, 'yyyyMMdd') from orderSource; 在Spark SQL中执行下述语句,查看写入结果 SELECT * FROM dbtest.huditest where order_date = 'xx'
  • 语法格式 create table hudiSink ( attr_name attr_type (',' attr_name attr_type)* ) with ( 'connector' = 'hudi', 'path' = 'obs://xx', 'table.type' = 'MERGE_ON_READ', 'hoodie.datasource.write.recordkey.field' = 'xx', 'write.precombine.field' = 'xx', 'read.streaming.enabled' = 'true' ... );
  • 功能描述 Flink SQL作业写Hudi表。 Hudi是一种 数据湖 的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的能力以及消费变化数据的能力。支持多种计算引擎,提供IUD接口,在HDFS的数据集上提供了插入更新和增量拉取的功能。 表1 支持类别 类别 详情 支持Flink表类型 源表、结果表。 支持Hudi表类型 MOR表,COW表。 支持读写类型 批量读,批量写,流式读,流式写。 更多具体使用可参考开源社区文档:Hudi。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全