操作手册
【实践】基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析。
场景简介
本场景以GitHub公开事件数据为例,通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(本文以DataV为例),实现海量数据实时分析的通用架构与核心步骤。
示例架构
搭建实时数仓时,Flink可对待处理数据进行实时清洗,完成后Hologres可直接读取Flink中的数据,并对接BI分析工具将数据实时展示在大屏中,示例架构如图所示。
背景知识
本场景主要涉及以下云产品和服务:
Hologres是阿里云自研一站式实时数仓,统一数据平台架构,支持海量结构化/半结构化数据的实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议),无缝对接主流BI工具,支持OLAP查询、即席分析、在线服务、向量计算多个场景,分析性能打破TPC-H世界记录,与MaxCompute、Flink、DataWorks深度融合,提供离在线一体化全栈数仓解决方案。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,具备实时应用的作业开发、数据调试、运行与监控、自动调优、智能诊断等全生命周期能力。内核引擎100%兼容Apache Flink,2倍性能提升,拥有FlinkCDC、动态CEP等企业级增值功能,内置丰富上下游连接器,助力企业构建高效、稳定和强大的实时数据应用。
数据可视化DataV是阿里云数据可视化应用搭建平台,旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。
前提条件
本实验需要您使用阿里云账号开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
在本实验中,如果您领取全部的免费试用资源,将不会产生费用。如果您的阿里云账号没有免费试用资源,实验预计产生费用20元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建专有网络VPC和交换机
为确保后续任务的网络连通,请务必保证Hologres、OSS、Flink使用同⼀个VPC。
在实验室页面右侧的操作区中,勾选我已阅读并同意《阿里云云起实践平台服务协议》,单击开始实操。
登录专有网络管理控制台。
在左侧导航栏中,单击专有网络。
在专有网络页⾯,在右上角切换⾄华东2(上海)地域,单击创建专有网络。
在创建专有网络页⾯,根据下方参数说明配置1个专有网络(VPC)和2台交换机,然后单击确定。更多关于创建专有网络和交换机信息,详情请参见创建和管理专有网络。
说明创建的两台交换机,其中一台可用区E的交换机为创建Hologres时使用,另外一台可用区B的交换机为创建Flink时使用。
配置项
说明
配置项
说明
专有网络
地域
选择华东2(上海)。
名称
自定义名称。
IPv4网段
选择手动输入IPv4地址段。
输入IPv4网段
输入IPv4网段,建议您使用RFC私网地址作为专有网络的网段如
10.0.0.0/8
,172.16.0.0/12
,192.168.0.0/16
。交换机
名称
自定义名称。
可用区
选择上海可用区E。
IPv4网段
自定义IPv4网段。
交换机
名称
自定义名称。
可用区
选择上海可用区B。
IPv4网段
自定义IPv4网段。
在创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID、实例名称等信息。
领取实时数仓Hologres免费试用
如果您的阿里云账号有领取实时数仓Hologres的免费试用资格,请您根据下方操作进行领取。免费试用包括32核或8核规格,以32核为例,运行1小时消耗32个CU*H,5000CU*H约可免费试用156个小时。资源包耗尽将自动转按量付费,详情请参见按量付费。
如果您的阿里云账号已领取过实时数仓Hologres免费试用资格,请您前往Hologres购买页,创建Hologres实例,并会产生一定的费用,详情请参见购买Hologres和按量付费。创建Hologres实例时的相关配置,其中商品类型请选择独享实例(按量付费),实例类型选择通用型,其余配置请参考本小节内容。
在实时数仓Hologres卡片下,单击立即试用。
在实时数仓Hologres面板,根据如下参数说明进行配置,未提及的参数保持默认即可,单击立即试用。
配置项
说明
配置项
说明
地域
选择华东2(上海)。
本实验中,Hologres、OSS、Flink需要在同一地域。
计算资源
选择32核128GB(计算节点数量:2)。
专有网络(VPC)
选择您创建的专有网络VPC。
专有网络交换机
选择可用区E的交换机。
实例名称
自定义实例名称。
服务关联角色
确认是否已开通相关服务角色,如没有请单击创建服务关联角色。
服务协议
阅读并勾选服务协议。
免费试用申请成功通过后,系统将会为您自动创建Hologres实例。登录实时数仓Hologres控制台,在实例列表页面,等待运行状态变为运行正常,即可正常使用。
领取对象存储OSS免费试用
前往对象存储OSS免费试用。
找到20GB 3个月规格的对象存储OSS卡片,单击立即试用。
在对象存储OSS面板,勾选服务协议,单击立即试用。
前往对象存储OSS控制台。
说明如果您没有开通过OSS服务,系统会提示您开通OSS服务,请按照页面提示开通OSS服务。
在左侧导航栏中,单击Bucket列表。
在Bucket列表页面,单击创建Bucket。
在创建Bucket页面,自定义Bucket名称,地域选择华东2(上海),存储类型选择标准存储,存储冗余类型同城冗余存储(推荐),其他配置保持默认即可,单击确定。
说明本实验中,Hologres、OSS、Flink需要在同一地域。
领取实时计算Flink免费试用
在实时计算Flink卡片下,单击立即试用。
在Flink开通页面,单击上方提示框中的领取免费的资源抵扣包,领取Flink资源抵扣包。
在Flink资源抵扣包页面,确认相关信息后,单击确认订单,根据页面提示完成领取。
领取完毕后,在Flink开通页面,刷新此页面后根据配置说明完成参数配置,然后单击立即试用,并根据页面提示,完成阿里云实时计算Flink版工作空间创建。
参数
说明
教程配置
参数
说明
教程配置
付费模式
阿里云实时计算Flink版免费试用仅支持按量付费。
按量付费
地域
本实验中,Hologres、OSS、Flink需要在同一地域。
华东2(上海)
可用区
选择任意一可用区。
可用区B
资源抵扣包
可用于抵扣中国内地公有云地域(目前仅支持上海,杭州,北京,深圳,张家口区域)按量付费模式用量,自购买资源包日起有效期三个月。领取资源包后,单击刷新按钮,即可更新此参数。
其中,本教程示例不适用于张家口地域。
5000CUH
您需要领取对象存储OSS资源抵扣包进行抵扣(即点击所给链接,单击对应产品卡片上的立即试用,在确认并了解相关信息后,根据页面提示申请试用),否则将会产生额外费用。
如果您的对象存储OSS资源抵扣包已使用完毕或无领取资格,开通Flink试用后,将正常收取费用,计费详情请参见按量付费。
确认领取后,选中
专有网络
选择您已创建的专有网络。
选择与实时数仓Hologres同一专有网络。
虚拟交换机
每个Flink作业的Task Manager和Job Manager实例都会占用一个IP,您需要至少选择1个虚拟交换机。
如果当前无可用虚拟交换机,请在当前地域当前可用区下进行创建,详情请参见创建和管理专有网络。
选择可用区B的交换机。
工作空间名称
每个工作空间的计算资源隔离,开发控制台相互独立。
创建成功后不可修改。
flink-test
OSS存储
OSS用于存储作业系统检查点、作业快照、日志和JAR包等信息。新建OSS存储的具体操作,请参见开通OSS服务。
不推荐对选择的Bucket开启非默认策略,例如多版本、合规保留等,可能会导致Flink作业异常。
选中您需要使用的OSS Bucket名称。
监控服务
默认使用免费监控服务,如果您选择按量付费Prometheus监控服务(为您提供商业版Prometheus监控能力),则会正常进行收费,计费详情请参见按量计费。
免费监控服务
工作空间创建需要约5~10分钟,请耐心等待。5~10分钟后,请在实时计算控制台Flink全托管页签,刷新页面查看工作空间状态,当工作空间状态为运行中时,即可进入下一步。
创建Hologres内部表
初始化Hologres环境。
登录Hologres控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击实例列表。
在实例列表页面,单击实例ID。
在实例详情页面,单击登录实例,进入HoloWeb。
在元数据管理页签,单击新建库。
在新建数据库对话框中,参考如下说明配置,单击确认。
配置项
说明
配置项
说明
实例名
选择在哪个Hologres实例上创建数据库,默认展示当前已登录实例的名称。
数据库名称
在本实验中,数据库名称设置为
holo_tutorial
。数据库名称
选择默认的SPM。更多关于权限策略的说明,请参见:
SPM:简单权限模型,该权限模型授权是以DB为粒度,划分admin(管理员)、developer(开发者)、writer(读写者)以及viewer(分析师)四种⻆⾊,您可以通过少量的权限管理函数,即可对DB中的对象进行⽅便且安全的权限管理。
SLPM:基于Schema级别的简单权限模型,该权限模型以为Schema为粒度,划分<db> .admin(DB管理员)、<db>.<schema>.developer(开发者)、<db>.<schema>.writer(读写者)以及 <db>.<schema>.viewer(分析师),相⽐于简单权限模型更为细粒度。
专家:Hologres兼容PostgreSQL,使用与Postgres完全⼀致的权限系统。
立即登录
选择是。
在顶部菜单栏中,单击SQL编辑器。
在SQL编辑器页面,单击左上⻆的
图标,新建SQL查询。
新建Hologres内部表。
您需要先创建一个Hologres内部表并创建相应的索引,用于后续数据实时写入。
将如下命令复制并粘贴至临时Query查询页签中,单击执行,创建Hologres内部表hologres_dataset_github_event.hologres_github_event,后续会将数据实时写入至该表中。
说明本实验以实时写入Github公开事件中今日最活跃项目数据为例,需提前创建的内部表示例代码如下。
-- 新建schema用于创建内表并导入数据 CREATE SCHEMA IF NOT EXISTS hologres_dataset_github_event; DROP TABLE IF EXISTS hologres_dataset_github_event.hologres_github_event; BEGIN; CREATE TABLE hologres_dataset_github_event.hologres_github_event ( id text, created_at_bigint bigint, created_at timestamp with time zone NOT NULL, type text, actor_id text, actor_login text, repo_id text, repo_name text, org text, org_login text ); CALL set_table_property ('hologres_dataset_github_event.hologres_github_event', 'distribution_key', 'id'); CALL set_table_property ('hologres_dataset_github_event.hologres_github_event', 'event_time_column', 'created_at'); CALL set_table_property ('hologres_dataset_github_event.hologres_github_event', 'clustering_key', 'created_at'); COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.id IS '事件ID'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.created_at_bigint IS '事件发生时间戳'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.created_at IS '事件发生时间'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.type IS '事件类型'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.actor_id IS '事件发起人ID'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.actor_login IS '事件发起人登录名'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.repo_id IS 'repoID'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.repo_name IS 'repo名称'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.org IS 'repo所属组织ID'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.org_login IS 'repo所属组织名称'; COMMIT;
通过Flink实时写入数据至Hologres
前往实时计算控制台。
在页面顶部菜单栏中,地域切换至华东2(上海),然后单击目标工作空间右侧操作列下的控制台。
在左侧导航栏,选择运维中心 > Session管理。
在Session集群页面,单击创建Session集群。
在创建Session集群页面,根据如下说明配置Session集群,未提及的参数保持默认值即可,然后单击创建Session集群。
配置项
说明
教程配置
配置项
说明
教程配置
名称
Session集群名称。
flink-sql-test-session
状态
设置当前集群的期望运行状态:
STOPPED:当集群配置完成后保持停止状态,同样会停止所有在运行中的作业。
RUNNING:当集群配置完成后保持运行状态。
RUNNING
引擎版本
Session集群引擎版本号。
vvr-6.0.7-flink-1.15
Task Managers数量
默认与并行度保持一致。
4
在集群总览页签,当Session集群状态(页面上方集群名称旁边)从启动中变为运行中后,您可以进入后续步骤。
创建SQL作业。
在左侧导航栏,选择数据开发 > ETL。
在页面顶部,单击新建。
在新建作业草稿对话框中,选择空白的流作业草稿,单击下一步。
在新建作业草稿对话框中,根据如下说明填写作业配置信息,然后单击创建。
作业参数
说明
教程配置
作业参数
说明
教程配置
文件名称
作业的名称。
flink-sql-test
存储位置
指定该作业的代码文件所属的文件夹。默认存放在作业草稿目录。
默认作业草稿
引擎版本
选择作业的引擎版本,需要和Session集群引擎版本号一致。
vvr-6.0.7-flink-1.15
复制如下代码到作业开发文本编辑区。
说明本实验的Flink SQL作业示例代码如下,其中SLS的project、endpoint参数值需要修改,填入对应Region的固定值。
CREATE TEMPORARY TABLE sls_input ( id STRING, -- 每个事件的唯一ID。 created_at BIGINT, -- 事件时间,单位秒。 created_at_ts as TO_TIMESTAMP(created_at * 1000), -- 事件时间戳(当前会话时区下的时间戳,如:Asia/Shanghai)。 type STRING, -- Github事件类型,如:ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。 actor_id STRING, -- Github用户ID。 actor_login STRING, -- Github用户名。 repo_id STRING, -- Github仓库ID。 repo_name STRING, -- Github仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。 org STRING, -- Github组织ID。 org_login STRING -- Github组织名,如: apache,google,alibaba等。 ) WITH ( 'connector' = 'sls', -- 实时采集的Github事件存放在阿里云SLS中。 'project' = 'github-events-shanghai', -- 存放公开数据的SLS项目。例如'github-events-shanghai'。 'endPoint' = '<yourSlsEndpoint>', -- 公开数据仅限VVP通过私网地址访问。例如'https://cn-shanghai-intranet.log.aliyuncs.com'。 'logStore' = 'realtime-github-events', -- 存放公开数据的SLS logStore。 'accessId' = 'LTAI5tNF1rP8PKVyYjr9TKgh', -- 仅有内置数据集只读权限的AK,参见Flink教程。 'accessKey' = 'FDgsh6fjSmkbFsx083tN6HOiqNVWTP', -- 仅有内置数据集只读权限的SK,参见Flink教程。 'batchGetSize' = '500' -- 批量读取数据,每批最多拉取500条。 ); CREATE TEMPORARY TABLE hologres_sink ( id STRING, created_at_bigint BIGINT, created_at TIMESTAMP, type STRING, actor_id STRING, actor_login STRING, repo_id STRING, repo_name STRING, org STRING, org_login STRING ) WITH ( 'connector' = 'hologres', 'dbname' = 'holo db name', --Hologres的数据库名称 'tablename' = 'schema_name.table_name', --Hologres用于接收数据的表名称 'username' = 'access id', --当前阿里云账号的AccessKey ID 'password' = 'access key', --当前阿里云账号的AccessKey Secret 'endpoint' = 'holo vpc endpoint', --当前Hologres实例VPC网络的Endpoint 'jdbcretrycount' = '1', --连接故障时的重试次数 'partitionrouter' = 'true', --是否写入分区表 'createparttable' = 'true', --是否自动创建分区 'mutatetype' = 'insertorignore' --数据写入模式 ); INSERT INTO hologres_sink SELECT * FROM sls_input WHERE id IS NOT NULL AND created_at_ts IS NOT NULL AND created_at_ts >= date_add(CURRENT_DATE, - 1);
按照实际地域配置创建表sls_input语句的WITH参数中的project和endPoint(本实验以上海地域为例),其他参数保持默认值,无需修改。
地域
参数
说明
地域
参数
说明
北京
project
github-events-beijing
endPoint
https://cn-beijing-intranet.log.aliyuncs.com
杭州
project
github-events-hangzhou
endPoint
https://cn-hangzhou-intranet.log.aliyuncs.com
上海
project
github-events-shanghai
endPoint
https://cn-shanghai-intranet.log.aliyuncs.com
深圳
project
github-events-shenzhen
endPoint
https://cn-shenzhen-intranet.log.aliyuncs.com
按照实际配置创建表hologres_sink语句的WITH参数中的dbname、tablename 、username、password、endpoint。
说明本实验中,dbname填写
holo_tutorial
,tablename填写hologres_dataset_github_event.hologres_github_event
,username和password填写您的阿里云账号的AccessKey ID和AccessKey Secret,endpoint填写Hologres实例的指定VPC域名,您可以在Hologres控制台的实例详情页面的网络信息区域查看到。在作业页面右上角,单击部署。
在部署新版本对话框中,单击确定。
在左侧导航栏中,选择运维中心 > 作业运维。
在作业运维页面,单击目标作业右侧操作列下的启动。
在作业启动面板,选择无状态启动,单击启动。
状态变为运行中时,表示您成功启动作业。
查询实时数据
切换至Hologres的SQL编辑器页签。
在Hologres中通过内部表查询今日最活跃项目。
在临时Query查询页签,执行如下命令,查询今日最活跃项目。
SELECT repo_name, COUNT(*) AS events FROM hologres_dataset_github_event.hologres_github_event WHERE created_at >= CURRENT_DATE GROUP BY repo_name ORDER BY events DESC LIMIT 5;
(可选)通过DataV搭建实时大屏
您可以通过DataV的数据大屏模板,基于Hologres数据源来快速搭建GitHub事件数据实时大屏。
创建阿里云AccessKey
重要在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,单击创建AccessKey。
根据界面提示完成安全验证。
在创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定。
登录DataV控制台。
根据页面指引,选择您需要开通的版本。
重要如果您的阿里云账号有DataV试用版本资格,请您先领取试用版本。
如果您的阿里云账号没有DataV试用版本资格,请您开通公共云版本或本地部署版本。其中,公共云版本中的个人版不支持Hologres数据源接入,请勿开通此版本。公共云版本或本地部署版本的费用问题,详情请参见计费方式。
若您已开通DataV,请您跳过此步骤。
创建Hologres数据源。
将数据所在的Hologres实例和数据库创建为DataV的数据源,详情请参见DataV。
在左侧导航栏中,选择数据准备 > 数据源。
在数据源页面,单击新建数据源。
在添加数据源面板中,根据如下说明配置参数信息新增Hologres数据源,并单击确定。
参数
说明
参数
说明
类型
实时数仓Hologres
网络
内网
华东2
VPC ID
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC ID。
VPC实例ID
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC实例ID。
名称
自定义名称。
域名
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC域名,填写时需要去掉
:80
。用户名
输入创建的AccessKey ID。
密码
输入创建的AccessKey Secret。
端口
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC域名中获取端⼝。例如:80。
数据库
输入上述已创建的Hologres数据库名称,本实验以
holo_tutorial
为例。
创建可视化应用。
在左侧导航栏,单击未分组。
在未分组页面,单击创建PC端看板。
在创建看板页面,选择使用Hologres实时分析GitHub事件数据模板,单击创建看板。
在创建看板对话框中,输入看板名称后,单击创建看板。
在已创建的看板页面中,依次双击画布中的数字,并在右侧数据源页签中,数据源类型选择实时数仓Hologress,选择已添加的Hologres数据源。
以左上角的今日公开事件总数为例:
双击今日公开事件总数对应的数字框,单击右侧数据源,选择数据源类型为实时数仓Hologres,选择已有数据源为您已创建的数据源。
说明如果您在Hologres中的表名和Schema与本实验相同,则不需修改SQL。
修改完成后,数据响应结果自动刷新,大屏中成功展示实时数据。
按照上述示例步骤,更新大屏中所有的数据源和表名,该看板一共有15处地方的数据源需要修改为Hologres数据源。,需更新组件及更新后效果如下图所示。
所有数字涉及的数据源都选择完成后,单击看板右上⻆的预览,即可获取实时更新的数据大屏预览链 接(正式发布需要升级DataV⾼级版本)。最终效果如下图所示。
清理及后续
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。
实时计算Flink。
登录实时计算控制台。
在页面顶部菜单栏中,地域切换至华东2(上海),然后选择目标工作空间右侧操作列下的更多 > 释放资源。
在对话框中,单击确定。
删除实时数仓Hologres。
登录Hologres控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击实例列表。
在实例列表页面,找到创建的Hologres实例,单击右侧运行状态下的停机。
Hologres实例停机后,单击右侧运行状态下的删除。
对象存储OSS。
前往对象存储OSS控制台。
在左侧导航栏中,单击Bucket列表。
在Bucket列表页面,单击目标Bucket名称。
在文件列表页面,勾选所有的文件,单击彻底删除。
所有文件均已清除后,在左侧导航栏中,单击删除Bucket。
在删除Bucket页面,页面显示可以删除Bucket,当前Bucket资源为空的提示,然后单击立即删除。
在弹出对话框中,输入Bucket名称,单击确定。
删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的禁用。
在禁用对话框中,单击禁用。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的删除。
在删除对话框中,输入当前AccessKey的ID,单击删除。
删除DataV数据源。
登录DataV控制台。
在左侧导航栏中,选择数据准备 > 数据源。
在数据源页面,找到创建的数据源并删除。
删除VPC及交换机。
重要删除Flink之后后台会自动异步删除安全组,您需要等待大于20分钟,才能进行删除VPC及交换机的操作,否则删除VPC及交换机会报错。
登录专有网络。
在页面上方的菜单栏中,地域切换至华东2(上海)。
在专有网络页面,找到您创建的VPC,单击其右侧操作列下的删除。
在删除专有网络对话框中,勾选强制删除,单击确定。
删除相关资源后,单击结束实操。在结束实操对话框中,单击确定。
在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。